102 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
103
104 virtual void collect(GCCause::Cause cause);
105 virtual void do_full_collection(bool clear_all_soft_refs);
106
107 // Heap walking support
108 virtual void object_iterate(ObjectClosure* cl);
109
110 // Object pinning support: every object is implicitly pinned
111 virtual bool supports_object_pinning() const { return true; }
112 virtual oop pin_object(JavaThread* thread, oop obj) { return obj; }
113 virtual void unpin_object(JavaThread* thread, oop obj) { }
114
115 // No support for block parsing.
116 HeapWord* block_start(const void* addr) const { return NULL; }
117 bool block_is_obj(const HeapWord* addr) const { return false; }
118
119 // No GC threads
120 virtual void gc_threads_do(ThreadClosure* tc) const {}
121
122 // No nmethod handling
123 virtual void register_nmethod(nmethod* nm) {}
124 virtual void unregister_nmethod(nmethod* nm) {}
125 virtual void flush_nmethod(nmethod* nm) {}
126 virtual void verify_nmethod(nmethod* nm) {}
127
128 // No heap verification
129 virtual void prepare_for_verify() {}
130 virtual void verify(VerifyOption option) {}
131
132 MemRegion reserved_region() const { return _reserved; }
133 bool is_in_reserved(const void* addr) const { return _reserved.contains(addr); }
134
135 virtual void print_on(outputStream* st) const;
136 virtual void print_tracing_info() const;
137 virtual bool print_location(outputStream* st, void* addr) const;
138
139 private:
140 void print_heap_info(size_t used) const;
141 void print_metaspace_info() const;
142
143 };
144
145 #endif // SHARE_GC_EPSILON_EPSILONHEAP_HPP
|
102 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
103
104 virtual void collect(GCCause::Cause cause);
105 virtual void do_full_collection(bool clear_all_soft_refs);
106
107 // Heap walking support
108 virtual void object_iterate(ObjectClosure* cl);
109
110 // Object pinning support: every object is implicitly pinned
111 virtual bool supports_object_pinning() const { return true; }
112 virtual oop pin_object(JavaThread* thread, oop obj) { return obj; }
113 virtual void unpin_object(JavaThread* thread, oop obj) { }
114
115 // No support for block parsing.
116 HeapWord* block_start(const void* addr) const { return NULL; }
117 bool block_is_obj(const HeapWord* addr) const { return false; }
118
119 // No GC threads
120 virtual void gc_threads_do(ThreadClosure* tc) const {}
121
122 // Runs the given AbstractGangTask with the current active workers
123 // No workGang for EpsilonHeap, work serially with thread 0
124 virtual void run_task(AbstractGangTask* task) { task->work(0); }
125
126 // No nmethod handling
127 virtual void register_nmethod(nmethod* nm) {}
128 virtual void unregister_nmethod(nmethod* nm) {}
129 virtual void flush_nmethod(nmethod* nm) {}
130 virtual void verify_nmethod(nmethod* nm) {}
131
132 // No heap verification
133 virtual void prepare_for_verify() {}
134 virtual void verify(VerifyOption option) {}
135
136 MemRegion reserved_region() const { return _reserved; }
137 bool is_in_reserved(const void* addr) const { return _reserved.contains(addr); }
138
139 virtual void print_on(outputStream* st) const;
140 virtual void print_tracing_info() const;
141 virtual bool print_location(outputStream* st, void* addr) const;
142
143
144 private:
145 void print_heap_info(size_t used) const;
146 void print_metaspace_info() const;
147
148 };
149
150 #endif // SHARE_GC_EPSILON_EPSILONHEAP_HPP
|