< prev index next >

src/hotspot/share/gc/shared/cardTable.hpp

Print this page

231                                          int reset_val);
232 
233   // Constants
234   enum SomePublicConstants {
235     card_shift                  = 9,
236     card_size                   = 1 << card_shift,
237     card_size_in_words          = card_size / sizeof(HeapWord)
238   };
239 
240   static CardValue clean_card_val()          { return clean_card; }
241   static CardValue dirty_card_val()          { return dirty_card; }
242   static CardValue precleaned_card_val()     { return precleaned_card; }
243   static intptr_t clean_card_row_val()   { return clean_card_row; }
244 
245   // Card marking array base (adjusted for heap low boundary)
246   // This would be the 0th element of _byte_map, if the heap started at 0x0.
247   // But since the heap starts at some higher address, this points to somewhere
248   // before the beginning of the actual _byte_map.
249   CardValue* byte_map_base() const { return _byte_map_base; }
250   bool scanned_concurrently() const { return _scanned_concurrently; }


251 
252   virtual bool is_in_young(oop obj) const = 0;
253 
254   // Print a description of the memory for the card table
255   virtual void print_on(outputStream* st) const;
256 
257   void verify();
258   void verify_guard();
259 
260   // val_equals -> it will check that all cards covered by mr equal val
261   // !val_equals -> it will check that all cards covered by mr do not equal val
262   void verify_region(MemRegion mr, CardValue val, bool val_equals) PRODUCT_RETURN;
263   void verify_not_dirty_region(MemRegion mr) PRODUCT_RETURN;
264   void verify_dirty_region(MemRegion mr) PRODUCT_RETURN;
265 };
266 
267 #endif // SHARE_GC_SHARED_CARDTABLE_HPP

231                                          int reset_val);
232 
233   // Constants
234   enum SomePublicConstants {
235     card_shift                  = 9,
236     card_size                   = 1 << card_shift,
237     card_size_in_words          = card_size / sizeof(HeapWord)
238   };
239 
240   static CardValue clean_card_val()          { return clean_card; }
241   static CardValue dirty_card_val()          { return dirty_card; }
242   static CardValue precleaned_card_val()     { return precleaned_card; }
243   static intptr_t clean_card_row_val()   { return clean_card_row; }
244 
245   // Card marking array base (adjusted for heap low boundary)
246   // This would be the 0th element of _byte_map, if the heap started at 0x0.
247   // But since the heap starts at some higher address, this points to somewhere
248   // before the beginning of the actual _byte_map.
249   CardValue* byte_map_base() const { return _byte_map_base; }
250   bool scanned_concurrently() const { return _scanned_concurrently; }
251   size_t byte_map_top_offset() const { return uintptr_t(_whole_heap.end()); }
252   size_t byte_map_bottom_offset() const { return uintptr_t(_whole_heap.start()); }
253 
254   virtual bool is_in_young(oop obj) const = 0;
255 
256   // Print a description of the memory for the card table
257   virtual void print_on(outputStream* st) const;
258 
259   void verify();
260   void verify_guard();
261 
262   // val_equals -> it will check that all cards covered by mr equal val
263   // !val_equals -> it will check that all cards covered by mr do not equal val
264   void verify_region(MemRegion mr, CardValue val, bool val_equals) PRODUCT_RETURN;
265   void verify_not_dirty_region(MemRegion mr) PRODUCT_RETURN;
266   void verify_dirty_region(MemRegion mr) PRODUCT_RETURN;
267 };
268 
269 #endif // SHARE_GC_SHARED_CARDTABLE_HPP
< prev index next >