167 }
168
169 // Return the (conservative) maximum heap alignment
170 static size_t conservative_max_heap_alignment() {
171 return Generation::GenGrain;
172 }
173
174 size_t capacity() const;
175 size_t used() const;
176
177 // Save the "used_region" for both generations.
178 void save_used_regions();
179
180 size_t max_capacity() const;
181
182 HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded);
183
184 // We may support a shared contiguous allocation area, if the youngest
185 // generation does.
186 bool supports_inline_contig_alloc() const;
187 HeapWord** top_addr() const;
188 HeapWord** end_addr() const;
189
190 // Perform a full collection of the heap; intended for use in implementing
191 // "System.gc". This implies as full a collection as the CollectedHeap
192 // supports. Caller does not hold the Heap_lock on entry.
193 void collect(GCCause::Cause cause);
194
195 // The same as above but assume that the caller holds the Heap_lock.
196 void collect_locked(GCCause::Cause cause);
197
198 // Perform a full collection of generations up to and including max_generation.
199 // Mostly used for testing purposes. Caller does not hold the Heap_lock on entry.
200 void collect(GCCause::Cause cause, GenerationType max_generation);
201
202 // Returns "TRUE" iff "p" points into the committed areas of the heap.
203 // The methods is_in(), is_in_closed_subset() and is_in_youngest() may
204 // be expensive to compute in general, so, to prevent
205 // their inadvertent use in product jvm's, we restrict their use to
206 // assertion checking or verification only.
207 bool is_in(const void* p) const;
|
167 }
168
169 // Return the (conservative) maximum heap alignment
170 static size_t conservative_max_heap_alignment() {
171 return Generation::GenGrain;
172 }
173
174 size_t capacity() const;
175 size_t used() const;
176
177 // Save the "used_region" for both generations.
178 void save_used_regions();
179
180 size_t max_capacity() const;
181
182 HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded);
183
184 // We may support a shared contiguous allocation area, if the youngest
185 // generation does.
186 bool supports_inline_contig_alloc() const;
187 HeapWord* volatile* top_addr() const;
188 HeapWord** end_addr() const;
189
190 // Perform a full collection of the heap; intended for use in implementing
191 // "System.gc". This implies as full a collection as the CollectedHeap
192 // supports. Caller does not hold the Heap_lock on entry.
193 void collect(GCCause::Cause cause);
194
195 // The same as above but assume that the caller holds the Heap_lock.
196 void collect_locked(GCCause::Cause cause);
197
198 // Perform a full collection of generations up to and including max_generation.
199 // Mostly used for testing purposes. Caller does not hold the Heap_lock on entry.
200 void collect(GCCause::Cause cause, GenerationType max_generation);
201
202 // Returns "TRUE" iff "p" points into the committed areas of the heap.
203 // The methods is_in(), is_in_closed_subset() and is_in_youngest() may
204 // be expensive to compute in general, so, to prevent
205 // their inadvertent use in product jvm's, we restrict their use to
206 // assertion checking or verification only.
207 bool is_in(const void* p) const;
|