< prev index next >

src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp

Print this page
rev 7525 : [mq]: noremset


  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP
  26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP
  27 
  28 #include "gc_implementation/g1/g1RegionToSpaceMapper.hpp"
  29 #include "memory/cardTableModRefBS.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "oops/oop.inline.hpp"
  32 #include "utilities/macros.hpp"
  33 
  34 class DirtyCardQueueSet;
  35 class G1SATBCardTableLoggingModRefBS;
  36 
  37 // This barrier is specialized to use a logging barrier to support
  38 // snapshot-at-the-beginning marking.
  39 
  40 class G1SATBCardTableModRefBS: public CardTableModRefBSForCTRS {
  41 protected:
  42   enum G1CardValues {
  43     g1_young_gen = CT_MR_BS_last_reserved << 1
  44   };
  45 
  46 public:
  47   static int g1_young_card_val()   { return g1_young_gen; }
  48 
  49   // Add "pre_val" to a set of objects that may have been disconnected from the
  50   // pre-marking object graph.
  51   static void enqueue(oop pre_val);
  52 
  53   G1SATBCardTableModRefBS(MemRegion whole_heap);
  54 
  55   bool is_a(BarrierSet::Name bsn) {
  56     return bsn == BarrierSet::G1SATBCT || CardTableModRefBS::is_a(bsn);
  57   }
  58 
  59   virtual bool has_write_ref_pre_barrier() { return true; }
  60 




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP
  26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP
  27 
  28 #include "gc_implementation/g1/g1RegionToSpaceMapper.hpp"
  29 #include "memory/cardTableModRefBS.hpp"
  30 #include "memory/memRegion.hpp"
  31 #include "oops/oop.inline.hpp"
  32 #include "utilities/macros.hpp"
  33 
  34 class DirtyCardQueueSet;
  35 class G1SATBCardTableLoggingModRefBS;
  36 
  37 // This barrier is specialized to use a logging barrier to support
  38 // snapshot-at-the-beginning marking.
  39 
  40 class G1SATBCardTableModRefBS: public CardTableModRefBS {
  41 protected:
  42   enum G1CardValues {
  43     g1_young_gen = CT_MR_BS_last_reserved << 1
  44   };
  45 
  46 public:
  47   static int g1_young_card_val()   { return g1_young_gen; }
  48 
  49   // Add "pre_val" to a set of objects that may have been disconnected from the
  50   // pre-marking object graph.
  51   static void enqueue(oop pre_val);
  52 
  53   G1SATBCardTableModRefBS(MemRegion whole_heap);
  54 
  55   bool is_a(BarrierSet::Name bsn) {
  56     return bsn == BarrierSet::G1SATBCT || CardTableModRefBS::is_a(bsn);
  57   }
  58 
  59   virtual bool has_write_ref_pre_barrier() { return true; }
  60 


< prev index next >