190 GenCollectedHeap,
191 ParallelScavengeHeap,
192 G1CollectedHeap
193 };
194
195 static inline size_t filler_array_max_size() {
196 return _filler_array_max_size;
197 }
198
199 virtual CollectedHeap::Name kind() const { return CollectedHeap::Abstract; }
200
201 /**
202 * Returns JNI error code JNI_ENOMEM if memory could not be allocated,
203 * and JNI_OK on success.
204 */
205 virtual jint initialize() = 0;
206
207 // In many heaps, there will be a need to perform some initialization activities
208 // after the Universe is fully formed, but before general heap allocation is allowed.
209 // This is the correct place to place such initialization methods.
210 virtual void post_initialize() = 0;
211
212 // Stop any onging concurrent work and prepare for exit.
213 virtual void stop() {}
214
215 void initialize_reserved_region(HeapWord *start, HeapWord *end);
216 MemRegion reserved_region() const { return _reserved; }
217 address base() const { return (address)reserved_region().start(); }
218
219 virtual size_t capacity() const = 0;
220 virtual size_t used() const = 0;
221
222 // Return "true" if the part of the heap that allocates Java
223 // objects has reached the maximal committed limit that it can
224 // reach, without a garbage collection.
225 virtual bool is_maximal_no_gc() const = 0;
226
227 // Support for java.lang.Runtime.maxMemory(): return the maximum amount of
228 // memory that the vm could make available for storing 'normal' java objects.
229 // This is based on the reserved address space, but should not include space
230 // that the vm uses internally for bookkeeping or temporary storage
|
190 GenCollectedHeap,
191 ParallelScavengeHeap,
192 G1CollectedHeap
193 };
194
195 static inline size_t filler_array_max_size() {
196 return _filler_array_max_size;
197 }
198
199 virtual CollectedHeap::Name kind() const { return CollectedHeap::Abstract; }
200
201 /**
202 * Returns JNI error code JNI_ENOMEM if memory could not be allocated,
203 * and JNI_OK on success.
204 */
205 virtual jint initialize() = 0;
206
207 // In many heaps, there will be a need to perform some initialization activities
208 // after the Universe is fully formed, but before general heap allocation is allowed.
209 // This is the correct place to place such initialization methods.
210 virtual void post_initialize();
211
212 // Stop any onging concurrent work and prepare for exit.
213 virtual void stop() {}
214
215 void initialize_reserved_region(HeapWord *start, HeapWord *end);
216 MemRegion reserved_region() const { return _reserved; }
217 address base() const { return (address)reserved_region().start(); }
218
219 virtual size_t capacity() const = 0;
220 virtual size_t used() const = 0;
221
222 // Return "true" if the part of the heap that allocates Java
223 // objects has reached the maximal committed limit that it can
224 // reach, without a garbage collection.
225 virtual bool is_maximal_no_gc() const = 0;
226
227 // Support for java.lang.Runtime.maxMemory(): return the maximum amount of
228 // memory that the vm could make available for storing 'normal' java objects.
229 // This is based on the reserved address space, but should not include space
230 // that the vm uses internally for bookkeeping or temporary storage
|