118 bool is_in(zoffset offset) const;
119 bool is_in(zaddress addr) const;
120
121 uintptr_t local_offset(zoffset offset) const;
122 uintptr_t local_offset(zoffset_end offset) const;
123 uintptr_t local_offset(zaddress addr) const;
124 uintptr_t local_offset(zaddress_unsafe addr) const;
125
126 zoffset global_offset(uintptr_t local_offset) const;
127
128 bool is_object_live(zaddress addr) const;
129 bool is_object_strongly_live(zaddress addr) const;
130
131 bool is_marked() const;
132 bool is_object_marked_live(zaddress addr) const;
133 bool is_object_marked_strong(zaddress addr) const;
134 bool is_object_marked(zaddress addr, bool finalizable) const;
135 bool mark_object(zaddress addr, bool finalizable, bool& inc_live);
136
137 void inc_live(uint32_t objects, size_t bytes);
138 uint32_t live_objects() const;
139 size_t live_bytes() const;
140
141 template <typename Function>
142 void object_iterate(Function function);
143
144 void remember(volatile zpointer* p);
145
146 // In-place relocation support
147 void clear_remset_bit_non_par_current(uintptr_t l_offset);
148 void clear_remset_range_non_par_current(uintptr_t l_offset, size_t size);
149 void swap_remset_bitmaps();
150
151 void remset_alloc();
152
153 ZBitMap::ReverseIterator remset_reverse_iterator_previous();
154 BitMap::Iterator remset_iterator_limited_current(uintptr_t l_offset, size_t size);
155 BitMap::Iterator remset_iterator_limited_previous(uintptr_t l_offset, size_t size);
156
157 zaddress_unsafe find_base_unsafe(volatile zpointer* p);
175
176 void clear_remset_previous();
177
178 void* remset_current();
179
180 zaddress alloc_object(size_t size);
181 zaddress alloc_object_atomic(size_t size);
182
183 bool undo_alloc_object(zaddress addr, size_t size);
184 bool undo_alloc_object_atomic(zaddress addr, size_t size);
185
186 void log_msg(const char* msg_format, ...) const ATTRIBUTE_PRINTF(2, 3);
187
188 void print_on_msg(outputStream* st, const char* msg) const;
189 void print_on(outputStream* st) const;
190 void print() const;
191
192 // Verification
193 bool was_remembered(volatile zpointer* p);
194 bool is_remembered(volatile zpointer* p);
195 void verify_live(uint32_t live_objects, size_t live_bytes, bool in_place) const;
196
197 void fatal_msg(const char* msg) const;
198 };
199
200 class ZPageClosure {
201 public:
202 virtual void do_page(const ZPage* page) = 0;
203 };
204
205 #endif // SHARE_GC_Z_ZPAGE_HPP
|
118 bool is_in(zoffset offset) const;
119 bool is_in(zaddress addr) const;
120
121 uintptr_t local_offset(zoffset offset) const;
122 uintptr_t local_offset(zoffset_end offset) const;
123 uintptr_t local_offset(zaddress addr) const;
124 uintptr_t local_offset(zaddress_unsafe addr) const;
125
126 zoffset global_offset(uintptr_t local_offset) const;
127
128 bool is_object_live(zaddress addr) const;
129 bool is_object_strongly_live(zaddress addr) const;
130
131 bool is_marked() const;
132 bool is_object_marked_live(zaddress addr) const;
133 bool is_object_marked_strong(zaddress addr) const;
134 bool is_object_marked(zaddress addr, bool finalizable) const;
135 bool mark_object(zaddress addr, bool finalizable, bool& inc_live);
136
137 void inc_live(uint32_t objects, size_t bytes);
138 void inc_will_expand(uint32_t objects);
139 uint32_t live_objects() const;
140 size_t live_bytes() const;
141
142 template <typename Function>
143 void object_iterate(Function function);
144
145 void remember(volatile zpointer* p);
146
147 // In-place relocation support
148 void clear_remset_bit_non_par_current(uintptr_t l_offset);
149 void clear_remset_range_non_par_current(uintptr_t l_offset, size_t size);
150 void swap_remset_bitmaps();
151
152 void remset_alloc();
153
154 ZBitMap::ReverseIterator remset_reverse_iterator_previous();
155 BitMap::Iterator remset_iterator_limited_current(uintptr_t l_offset, size_t size);
156 BitMap::Iterator remset_iterator_limited_previous(uintptr_t l_offset, size_t size);
157
158 zaddress_unsafe find_base_unsafe(volatile zpointer* p);
176
177 void clear_remset_previous();
178
179 void* remset_current();
180
181 zaddress alloc_object(size_t size);
182 zaddress alloc_object_atomic(size_t size);
183
184 bool undo_alloc_object(zaddress addr, size_t size);
185 bool undo_alloc_object_atomic(zaddress addr, size_t size);
186
187 void log_msg(const char* msg_format, ...) const ATTRIBUTE_PRINTF(2, 3);
188
189 void print_on_msg(outputStream* st, const char* msg) const;
190 void print_on(outputStream* st) const;
191 void print() const;
192
193 // Verification
194 bool was_remembered(volatile zpointer* p);
195 bool is_remembered(volatile zpointer* p);
196 void verify_live(uint32_t live_objects, size_t live_bytes, uint32_t no_move_expand_count, bool in_place) const;
197
198 void fatal_msg(const char* msg) const;
199 };
200
201 class ZPageClosure {
202 public:
203 virtual void do_page(const ZPage* page) = 0;
204 };
205
206 #endif // SHARE_GC_Z_ZPAGE_HPP
|