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_ptr_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
115 // Commit the given area of pages starting at start being size_in_pages large.
116 // Returns true if the given area is zero filled upon completion.
117 bool commit(size_t start_page, size_t size_in_pages);
118
119 // Uncommit the given area of pages starting at start being size_in_pages large.
120 void uncommit(size_t start_page, size_t size_in_pages);
121
122 void pretouch(size_t start_page, size_t size_in_pages, WorkGang* pretouch_gang = NULL);
123
|
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
115 // Commit the given area of pages starting at start being size_in_pages large.
116 // Returns true if the given area is zero filled upon completion.
117 bool commit(size_t start_page, size_t size_in_pages);
118
119 // Uncommit the given area of pages starting at start being size_in_pages large.
120 void uncommit(size_t start_page, size_t size_in_pages);
121
122 void pretouch(size_t start_page, size_t size_in_pages, WorkGang* pretouch_gang = NULL);
123
|