74 // Indicates whether the committed space should be executable.
75 bool _executable;
76
77 // Helper function for committing memory. Commit the given memory range by using
78 // _page_size pages as much as possible and the remainder with small sized pages.
79 void commit_internal(size_t start_page, size_t end_page);
80 // Commit num_pages pages of _page_size size starting from start. All argument
81 // checking has been performed.
82 void commit_preferred_pages(size_t start_page, size_t end_page);
83 // Commit space at the high end of the space that needs to be committed with small
84 // sized pages.
85 void commit_tail();
86
87 // Uncommit the given memory range.
88 void uncommit_internal(size_t start_page, size_t end_page);
89
90 // Pretouch the given memory range.
91 void pretouch_internal(size_t start_page, size_t end_page);
92
93 // Returns the index of the page which contains the given address.
94 uintptr_t addr_to_page_index(char* addr) const;
95 // Returns the address of the given page index.
96 char* page_start(size_t index) const;
97
98 // Is the given page index the last page?
99 bool is_last_page(size_t index) const { return index == (_committed.size() - 1); }
100 // Is the given page index the first after last page?
101 bool is_after_last_page(size_t index) const;
102 // Is the last page only partially covered by this space?
103 bool is_last_page_partial() const { return !is_aligned(_high_boundary, _page_size); }
104 // Returns the end address of the given page bounded by the reserved space.
105 char* bounded_end_addr(size_t end_page) const;
106
107 // Returns true if the entire area is backed by committed memory.
108 bool is_area_committed(size_t start_page, size_t size_in_pages) const;
109 // Returns true if the entire area is not backed by committed memory.
110 bool is_area_uncommitted(size_t start_page, size_t size_in_pages) const;
111
112 void initialize_with_page_size(ReservedSpace rs, size_t used_size, size_t page_size);
113 public:
114
|
74 // Indicates whether the committed space should be executable.
75 bool _executable;
76
77 // Helper function for committing memory. Commit the given memory range by using
78 // _page_size pages as much as possible and the remainder with small sized pages.
79 void commit_internal(size_t start_page, size_t end_page);
80 // Commit num_pages pages of _page_size size starting from start. All argument
81 // checking has been performed.
82 void commit_preferred_pages(size_t start_page, size_t end_page);
83 // Commit space at the high end of the space that needs to be committed with small
84 // sized pages.
85 void commit_tail();
86
87 // Uncommit the given memory range.
88 void uncommit_internal(size_t start_page, size_t end_page);
89
90 // Pretouch the given memory range.
91 void pretouch_internal(size_t start_page, size_t end_page);
92
93 // Returns the index of the page which contains the given address.
94 size_t addr_to_page_index(char* addr) const;
95 // Returns the address of the given page index.
96 char* page_start(size_t index) const;
97
98 // Is the given page index the last page?
99 bool is_last_page(size_t index) const { return index == (_committed.size() - 1); }
100 // Is the given page index the first after last page?
101 bool is_after_last_page(size_t index) const;
102 // Is the last page only partially covered by this space?
103 bool is_last_page_partial() const { return !is_aligned(_high_boundary, _page_size); }
104 // Returns the end address of the given page bounded by the reserved space.
105 char* bounded_end_addr(size_t end_page) const;
106
107 // Returns true if the entire area is backed by committed memory.
108 bool is_area_committed(size_t start_page, size_t size_in_pages) const;
109 // Returns true if the entire area is not backed by committed memory.
110 bool is_area_uncommitted(size_t start_page, size_t size_in_pages) const;
111
112 void initialize_with_page_size(ReservedSpace rs, size_t used_size, size_t page_size);
113 public:
114
|