< prev index next >

src/share/vm/memory/cardGeneration.hpp

Print this page
rev 7474 : imported patch separateCardGeneration
rev 7477 : imported patch move_stuff_up

@@ -29,10 +29,11 @@
 // and uses a card-size block-offset array to implement block_start.
 
 #include "memory/generation.hpp"
 
 class BlockOffsetSharedArray;
+class CompactibleSpace;
 
 class CardGeneration: public Generation {
   friend class VMStructs;
  protected:
   // This is shared with other generations.

@@ -52,30 +53,47 @@
   size_t _used_at_prologue;
 
   CardGeneration(ReservedSpace rs, size_t initial_byte_size, int level,
                  GenRemSet* remset);
 
+  virtual void assert_correct_size_change_locking() = 0;
+
+  virtual CompactibleSpace* space() const = 0;
+
  public:
 
   // Attempt to expand the generation by "bytes".  Expand by at a
   // minimum "expand_bytes".  Return true if some amount (not
   // necessarily the full "bytes") was done.
   virtual bool expand(size_t bytes, size_t expand_bytes);
 
   // Shrink generation with specified size
-  virtual void shrink(size_t bytes) = 0;
+  virtual void shrink(size_t bytes);
 
   virtual void compute_new_size();
 
   virtual void clear_remembered_set();
 
   virtual void invalidate_remembered_set();
 
   virtual void prepare_for_verify();
 
   // Grow generation with specified size (returns false if unable to grow)
-  virtual bool grow_by(size_t bytes) = 0;
+  bool grow_by(size_t bytes);
   // Grow generation to reserved size.
-  virtual bool grow_to_reserved() = 0;
+  bool grow_to_reserved();
+
+  size_t capacity() const;
+  size_t used() const;
+  size_t free() const;
+  MemRegion used_region() const;
+
+  void space_iterate(SpaceClosure* blk, bool usedOnly = false);
+
+  void younger_refs_iterate(OopsInGenClosure* blk);
+
+  bool is_in(const void* p) const;
+
+  CompactibleSpace* first_compaction_space() const;
 };
 
 #endif // SHARE_VM_MEMORY_CARDGENERATION_HPP
< prev index next >