38 volatile uint32_t _seqnum;
39 volatile uint32_t _live_objects;
40 volatile size_t _live_bytes;
41 BitMap::bm_word_t _segment_live_bits;
42 BitMap::bm_word_t _segment_claim_bits;
43 ZBitMap _bitmap;
44 size_t _segment_shift;
45
46 const BitMapView segment_live_bits() const;
47 const BitMapView segment_claim_bits() const;
48
49 BitMapView segment_live_bits();
50 BitMapView segment_claim_bits();
51
52 BitMap::idx_t segment_size() const;
53
54 BitMap::idx_t segment_start(BitMap::idx_t segment) const;
55 BitMap::idx_t segment_end(BitMap::idx_t segment) const;
56
57 bool is_segment_live(BitMap::idx_t segment) const;
58 bool set_segment_live_atomic(BitMap::idx_t segment);
59
60 BitMap::idx_t first_live_segment() const;
61 BitMap::idx_t next_live_segment(BitMap::idx_t segment) const;
62 BitMap::idx_t index_to_segment(BitMap::idx_t index) const;
63
64 bool claim_segment(BitMap::idx_t segment);
65
66 void reset(size_t index);
67 void reset_segment(BitMap::idx_t segment);
68
69 void iterate_segment(ObjectClosure* cl, BitMap::idx_t segment, uintptr_t page_start, size_t page_object_alignment_shift);
70
71 public:
72 ZLiveMap(uint32_t size);
73
74 void reset();
75 void resize(uint32_t size);
76
77 bool is_marked() const;
78
79 uint32_t live_objects() const;
80 size_t live_bytes() const;
81
82 bool get(size_t index) const;
83 bool set_atomic(size_t index, bool finalizable, bool& inc_live);
84
85 void inc_live_atomic(uint32_t objects, size_t bytes);
86
87 void iterate(ObjectClosure* cl, uintptr_t page_start, size_t page_object_alignment_shift);
88 };
89
90 #endif // SHARE_GC_Z_ZLIVEMAP_HPP
|
38 volatile uint32_t _seqnum;
39 volatile uint32_t _live_objects;
40 volatile size_t _live_bytes;
41 BitMap::bm_word_t _segment_live_bits;
42 BitMap::bm_word_t _segment_claim_bits;
43 ZBitMap _bitmap;
44 size_t _segment_shift;
45
46 const BitMapView segment_live_bits() const;
47 const BitMapView segment_claim_bits() const;
48
49 BitMapView segment_live_bits();
50 BitMapView segment_claim_bits();
51
52 BitMap::idx_t segment_size() const;
53
54 BitMap::idx_t segment_start(BitMap::idx_t segment) const;
55 BitMap::idx_t segment_end(BitMap::idx_t segment) const;
56
57 bool is_segment_live(BitMap::idx_t segment) const;
58 bool set_segment_live(BitMap::idx_t segment);
59
60 BitMap::idx_t first_live_segment() const;
61 BitMap::idx_t next_live_segment(BitMap::idx_t segment) const;
62 BitMap::idx_t index_to_segment(BitMap::idx_t index) const;
63
64 bool claim_segment(BitMap::idx_t segment);
65
66 void reset(size_t index);
67 void reset_segment(BitMap::idx_t segment);
68
69 void iterate_segment(ObjectClosure* cl, BitMap::idx_t segment, uintptr_t page_start, size_t page_object_alignment_shift);
70
71 public:
72 ZLiveMap(uint32_t size);
73
74 void reset();
75 void resize(uint32_t size);
76
77 bool is_marked() const;
78
79 uint32_t live_objects() const;
80 size_t live_bytes() const;
81
82 bool get(size_t index) const;
83 bool set(size_t index, bool finalizable, bool& inc_live);
84
85 void inc_live(uint32_t objects, size_t bytes);
86
87 void iterate(ObjectClosure* cl, uintptr_t page_start, size_t page_object_alignment_shift);
88 };
89
90 #endif // SHARE_GC_Z_ZLIVEMAP_HPP
|