90 static size_t mark_distance();
91 // Returns how many bytes (or bits) of the heap a single byte (or bit) of the
92 // mark bitmap corresponds to. This is the same as the mark distance above. static size_t heap_map_factor() {
93 static size_t heap_map_factor() {
94 return mark_distance();
95 }
96
97 MarkBitMap() : MarkBitMapRO(LogMinObjAlignment) {}
98
99 // Initializes the underlying BitMap to cover the given area.
100 void initialize(MemRegion heap, MemRegion bitmap);
101
102 // Write marks.
103 inline void mark(HeapWord* addr);
104 inline void clear(HeapWord* addr);
105 inline bool parMark(HeapWord* addr);
106
107 // Clear range. For larger regions, use *_large.
108 void clear_range(MemRegion mr);
109 void clear_range_large(MemRegion mr);
110 };
111
112 #endif // SHARE_VM_GC_SHARED_CMBITMAP_HPP
|
90 static size_t mark_distance();
91 // Returns how many bytes (or bits) of the heap a single byte (or bit) of the
92 // mark bitmap corresponds to. This is the same as the mark distance above. static size_t heap_map_factor() {
93 static size_t heap_map_factor() {
94 return mark_distance();
95 }
96
97 MarkBitMap() : MarkBitMapRO(LogMinObjAlignment) {}
98
99 // Initializes the underlying BitMap to cover the given area.
100 void initialize(MemRegion heap, MemRegion bitmap);
101
102 // Write marks.
103 inline void mark(HeapWord* addr);
104 inline void clear(HeapWord* addr);
105 inline bool parMark(HeapWord* addr);
106
107 // Clear range. For larger regions, use *_large.
108 void clear_range(MemRegion mr);
109 void clear_range_large(MemRegion mr);
110
111 // Copies a part of the 'other' bitmap into the corresponding part of this bitmap.
112 void copy_from(MarkBitMap* other, MemRegion mr);
113 };
114
115 #endif // SHARE_VM_GC_SHARED_CMBITMAP_HPP
|