Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/hotspot/share/gc/z/zCollectedHeap.hpp
40960 views
1
/*
2
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
#ifndef SHARE_GC_Z_ZCOLLECTEDHEAP_HPP
25
#define SHARE_GC_Z_ZCOLLECTEDHEAP_HPP
26
27
#include "gc/shared/collectedHeap.hpp"
28
#include "gc/shared/softRefPolicy.hpp"
29
#include "gc/z/zBarrierSet.hpp"
30
#include "gc/z/zHeap.hpp"
31
#include "gc/z/zInitialize.hpp"
32
#include "gc/z/zRuntimeWorkers.hpp"
33
#include "memory/metaspace.hpp"
34
35
class ZDirector;
36
class ZDriver;
37
class ZStat;
38
39
class ZCollectedHeap : public CollectedHeap {
40
friend class VMStructs;
41
42
private:
43
SoftRefPolicy _soft_ref_policy;
44
ZBarrierSet _barrier_set;
45
ZInitialize _initialize;
46
ZHeap _heap;
47
ZDirector* _director;
48
ZDriver* _driver;
49
ZStat* _stat;
50
ZRuntimeWorkers _runtime_workers;
51
52
virtual HeapWord* allocate_new_tlab(size_t min_size,
53
size_t requested_size,
54
size_t* actual_size);
55
56
public:
57
static ZCollectedHeap* heap();
58
59
ZCollectedHeap();
60
virtual Name kind() const;
61
virtual const char* name() const;
62
virtual jint initialize();
63
virtual void initialize_serviceability();
64
virtual void stop();
65
66
virtual SoftRefPolicy* soft_ref_policy();
67
68
virtual size_t max_capacity() const;
69
virtual size_t capacity() const;
70
virtual size_t used() const;
71
virtual size_t unused() const;
72
73
virtual bool is_maximal_no_gc() const;
74
virtual bool is_in(const void* p) const;
75
76
virtual uint32_t hash_oop(oop obj) const;
77
78
virtual oop array_allocate(Klass* klass, int size, int length, bool do_zero, TRAPS);
79
virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded);
80
virtual MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data,
81
size_t size,
82
Metaspace::MetadataType mdtype);
83
virtual void collect(GCCause::Cause cause);
84
virtual void collect_as_vm_thread(GCCause::Cause cause);
85
virtual void do_full_collection(bool clear_all_soft_refs);
86
87
virtual size_t tlab_capacity(Thread* thr) const;
88
virtual size_t tlab_used(Thread* thr) const;
89
virtual size_t max_tlab_size() const;
90
virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
91
92
virtual bool uses_stack_watermark_barrier() const;
93
94
virtual GrowableArray<GCMemoryManager*> memory_managers();
95
virtual GrowableArray<MemoryPool*> memory_pools();
96
97
virtual void object_iterate(ObjectClosure* cl);
98
virtual ParallelObjectIterator* parallel_object_iterator(uint nworkers);
99
100
virtual void keep_alive(oop obj);
101
102
virtual void register_nmethod(nmethod* nm);
103
virtual void unregister_nmethod(nmethod* nm);
104
virtual void flush_nmethod(nmethod* nm);
105
virtual void verify_nmethod(nmethod* nmethod);
106
107
virtual WorkGang* safepoint_workers();
108
109
virtual void gc_threads_do(ThreadClosure* tc) const;
110
111
virtual VirtualSpaceSummary create_heap_space_summary();
112
113
virtual void safepoint_synchronize_begin();
114
virtual void safepoint_synchronize_end();
115
116
virtual void print_on(outputStream* st) const;
117
virtual void print_on_error(outputStream* st) const;
118
virtual void print_extended_on(outputStream* st) const;
119
virtual void print_tracing_info() const;
120
virtual bool print_location(outputStream* st, void* addr) const;
121
122
virtual void prepare_for_verify();
123
virtual void verify(VerifyOption option /* ignored */);
124
virtual bool is_oop(oop object) const;
125
virtual bool supports_concurrent_gc_breakpoints() const;
126
};
127
128
#endif // SHARE_GC_Z_ZCOLLECTEDHEAP_HPP
129
130