23 */
24
25 #ifndef SHARE_MEMORY_VIRTUALSPACE_HPP
26 #define SHARE_MEMORY_VIRTUALSPACE_HPP
27
28 #include "memory/memRegion.hpp"
29 #include "utilities/globalDefinitions.hpp"
30
31 class outputStream;
32
33 // ReservedSpace is a data structure for reserving a contiguous address range.
34
35 class ReservedSpace {
36 friend class VMStructs;
37 protected:
38 char* _base;
39 size_t _size;
40 size_t _noaccess_prefix;
41 size_t _alignment;
42 bool _special;
43 int _fd_for_heap;
44 private:
45 bool _executable;
46
47 // ReservedSpace
48 ReservedSpace(char* base, size_t size, size_t alignment, bool special,
49 bool executable);
50 protected:
51 void initialize(size_t size, size_t alignment, bool large,
52 char* requested_address,
53 bool executable);
54
55 public:
56 // Constructor
57 ReservedSpace();
58 // Initialize the reserved space with the given size. If preferred_page_size
59 // is set, use this as minimum page size/alignment. This may waste some space
60 // if the given size is not aligned to that value, as the reservation will be
61 // aligned up to the final alignment in this case.
62 ReservedSpace(size_t size, size_t preferred_page_size = 0);
63 ReservedSpace(size_t size, size_t alignment, bool large,
|
23 */
24
25 #ifndef SHARE_MEMORY_VIRTUALSPACE_HPP
26 #define SHARE_MEMORY_VIRTUALSPACE_HPP
27
28 #include "memory/memRegion.hpp"
29 #include "utilities/globalDefinitions.hpp"
30
31 class outputStream;
32
33 // ReservedSpace is a data structure for reserving a contiguous address range.
34
35 class ReservedSpace {
36 friend class VMStructs;
37 protected:
38 char* _base;
39 size_t _size;
40 size_t _noaccess_prefix;
41 size_t _alignment;
42 bool _special;
43 int _fd;
44 private:
45 bool _executable;
46
47 // ReservedSpace
48 ReservedSpace(char* base, size_t size, size_t alignment, bool special,
49 bool executable);
50 protected:
51 void initialize(size_t size, size_t alignment, bool large,
52 char* requested_address,
53 bool executable);
54
55 public:
56 // Constructor
57 ReservedSpace();
58 // Initialize the reserved space with the given size. If preferred_page_size
59 // is set, use this as minimum page size/alignment. This may waste some space
60 // if the given size is not aligned to that value, as the reservation will be
61 // aligned up to the final alignment in this case.
62 ReservedSpace(size_t size, size_t preferred_page_size = 0);
63 ReservedSpace(size_t size, size_t alignment, bool large,
|