< prev index next >

src/share/vm/memory/barrierSet.hpp

Print this page
rev 7800 : [mq]: cleanupOopInlineHpp


 143   // Below count is the # array elements being written, starting
 144   // at the address "start", which may not necessarily be HeapWord-aligned
 145   inline void write_ref_array(HeapWord* start, size_t count);
 146 
 147   // Static versions, suitable for calling from generated code;
 148   // count is # array elements being written, starting with "start",
 149   // which may not necessarily be HeapWord-aligned.
 150   static void static_write_ref_array_pre(HeapWord* start, size_t count);
 151   static void static_write_ref_array_post(HeapWord* start, size_t count);
 152 
 153 protected:
 154   virtual void write_ref_array_work(MemRegion mr) = 0;
 155 public:
 156   virtual void write_prim_array(MemRegion mr) = 0;
 157 
 158   virtual void read_region(MemRegion mr) = 0;
 159 
 160   // (For efficiency reasons, this operation is specialized for certain
 161   // barrier types.  Semantically, it should be thought of as a call to the
 162   // virtual "_work" function below, which must implement the barrier.)
 163   inline void write_region(MemRegion mr);
 164 protected:
 165   virtual void write_region_work(MemRegion mr) = 0;
 166 public:
 167   // Inform the BarrierSet that the the covered heap region that starts
 168   // with "base" has been changed to have the given size (possibly from 0,
 169   // for initialization.)
 170   virtual void resize_covered_region(MemRegion new_region) = 0;
 171 
 172   // If the barrier set imposes any alignment restrictions on boundaries
 173   // within the heap, this function tells whether they are met.
 174   virtual bool is_aligned(HeapWord* addr) = 0;
 175 
 176   // Print a description of the memory for the barrier set
 177   virtual void print_on(outputStream* st) const = 0;
 178 };
 179 
 180 #endif // SHARE_VM_MEMORY_BARRIERSET_HPP


 143   // Below count is the # array elements being written, starting
 144   // at the address "start", which may not necessarily be HeapWord-aligned
 145   inline void write_ref_array(HeapWord* start, size_t count);
 146 
 147   // Static versions, suitable for calling from generated code;
 148   // count is # array elements being written, starting with "start",
 149   // which may not necessarily be HeapWord-aligned.
 150   static void static_write_ref_array_pre(HeapWord* start, size_t count);
 151   static void static_write_ref_array_post(HeapWord* start, size_t count);
 152 
 153 protected:
 154   virtual void write_ref_array_work(MemRegion mr) = 0;
 155 public:
 156   virtual void write_prim_array(MemRegion mr) = 0;
 157 
 158   virtual void read_region(MemRegion mr) = 0;
 159 
 160   // (For efficiency reasons, this operation is specialized for certain
 161   // barrier types.  Semantically, it should be thought of as a call to the
 162   // virtual "_work" function below, which must implement the barrier.)
 163   void write_region(MemRegion mr);
 164 protected:
 165   virtual void write_region_work(MemRegion mr) = 0;
 166 public:
 167   // Inform the BarrierSet that the the covered heap region that starts
 168   // with "base" has been changed to have the given size (possibly from 0,
 169   // for initialization.)
 170   virtual void resize_covered_region(MemRegion new_region) = 0;
 171 
 172   // If the barrier set imposes any alignment restrictions on boundaries
 173   // within the heap, this function tells whether they are met.
 174   virtual bool is_aligned(HeapWord* addr) = 0;
 175 
 176   // Print a description of the memory for the barrier set
 177   virtual void print_on(outputStream* st) const = 0;
 178 };
 179 
 180 #endif // SHARE_VM_MEMORY_BARRIERSET_HPP
< prev index next >