< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.hpp

Print this page
rev 12906 : [mq]: gc_interface


  61 class CMSConcMarkingTask;
  62 class CMSGCAdaptivePolicyCounters;
  63 class CMSTracer;
  64 class ConcurrentGCTimer;
  65 class ConcurrentMarkSweepGeneration;
  66 class ConcurrentMarkSweepPolicy;
  67 class ConcurrentMarkSweepThread;
  68 class CompactibleFreeListSpace;
  69 class FreeChunk;
  70 class ParNewGeneration;
  71 class PromotionInfo;
  72 class ScanMarkedObjectsAgainCarefullyClosure;
  73 class TenuredGeneration;
  74 class SerialOldTracer;
  75 
  76 // A generic CMS bit map. It's the basis for both the CMS marking bit map
  77 // as well as for the mod union table (in each case only a subset of the
  78 // methods are used). This is essentially a wrapper around the BitMap class,
  79 // with one bit per (1<<_shifter) HeapWords. (i.e. for the marking bit map,
  80 // we have _shifter == 0. and for the mod union table we have
  81 // shifter == CardTableModRefBS::card_shift - LogHeapWordSize.)
  82 // XXX 64-bit issues in BitMap?
  83 class CMSBitMap VALUE_OBJ_CLASS_SPEC {
  84   friend class VMStructs;
  85 
  86   HeapWord*    _bmStartWord;   // base address of range covered by map
  87   size_t       _bmWordSize;    // map size (in #HeapWords covered)
  88   const int    _shifter;       // shifts to convert HeapWord to bit position
  89   VirtualSpace _virtual_space; // underlying the bit map
  90   BitMapView   _bm;            // the bit map itself
  91   Mutex* const _lock;          // mutex protecting _bm;
  92 
  93  public:
  94   // constructor
  95   CMSBitMap(int shifter, int mutex_rank, const char* mutex_name);
  96 
  97   // allocates the actual storage for the map
  98   bool allocate(MemRegion mr);
  99   // field getter
 100   Mutex* lock() const { return _lock; }
 101   // locking verifier convenience function




  61 class CMSConcMarkingTask;
  62 class CMSGCAdaptivePolicyCounters;
  63 class CMSTracer;
  64 class ConcurrentGCTimer;
  65 class ConcurrentMarkSweepGeneration;
  66 class ConcurrentMarkSweepPolicy;
  67 class ConcurrentMarkSweepThread;
  68 class CompactibleFreeListSpace;
  69 class FreeChunk;
  70 class ParNewGeneration;
  71 class PromotionInfo;
  72 class ScanMarkedObjectsAgainCarefullyClosure;
  73 class TenuredGeneration;
  74 class SerialOldTracer;
  75 
  76 // A generic CMS bit map. It's the basis for both the CMS marking bit map
  77 // as well as for the mod union table (in each case only a subset of the
  78 // methods are used). This is essentially a wrapper around the BitMap class,
  79 // with one bit per (1<<_shifter) HeapWords. (i.e. for the marking bit map,
  80 // we have _shifter == 0. and for the mod union table we have
  81 // shifter == CardTable::card_shift - LogHeapWordSize.)
  82 // XXX 64-bit issues in BitMap?
  83 class CMSBitMap VALUE_OBJ_CLASS_SPEC {
  84   friend class VMStructs;
  85 
  86   HeapWord*    _bmStartWord;   // base address of range covered by map
  87   size_t       _bmWordSize;    // map size (in #HeapWords covered)
  88   const int    _shifter;       // shifts to convert HeapWord to bit position
  89   VirtualSpace _virtual_space; // underlying the bit map
  90   BitMapView   _bm;            // the bit map itself
  91   Mutex* const _lock;          // mutex protecting _bm;
  92 
  93  public:
  94   // constructor
  95   CMSBitMap(int shifter, int mutex_rank, const char* mutex_name);
  96 
  97   // allocates the actual storage for the map
  98   bool allocate(MemRegion mr);
  99   // field getter
 100   Mutex* lock() const { return _lock; }
 101   // locking verifier convenience function


< prev index next >