Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/runtime/gc/gctable.c
5990 views
1
/*******************************************************************************
2
* Copyright (c) 1991, 2021 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made available under
5
* the terms of the Eclipse Public License 2.0 which accompanies this
6
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
7
* or the Apache License, Version 2.0 which accompanies this distribution and
8
* is available at https://www.apache.org/licenses/LICENSE-2.0.
9
*
10
* This Source Code may also be made available under the following
11
* Secondary Licenses when the conditions for such availability set
12
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
13
* General Public License, version 2 with the GNU Classpath
14
* Exception [1] and GNU General Public License, version 2 with the
15
* OpenJDK Assembly Exception [2].
16
*
17
* [1] https://www.gnu.org/software/classpath/license.html
18
* [2] http://openjdk.java.net/legal/assembly-exception.html
19
*
20
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
21
*******************************************************************************/
22
23
#include "gc_internal.h"
24
#include "HeapIteratorAPI.h"
25
#include "modronapicore.hpp"
26
27
J9MemoryManagerFunctions MemoryManagerFunctions = {
28
J9AllocateIndexableObject,
29
J9AllocateObject,
30
J9AllocateIndexableObjectNoGC,
31
J9AllocateObjectNoGC,
32
J9WriteBarrierPost,
33
J9WriteBarrierBatch,
34
J9WriteBarrierPostClass,
35
J9WriteBarrierClassBatch,
36
allocateMemoryForSublistFragment,
37
j9gc_heap_free_memory,
38
j9gc_heap_total_memory,
39
j9gc_is_garbagecollection_disabled,
40
j9gc_allsupported_memorypools,
41
j9gc_allsupported_garbagecollectors,
42
j9gc_pool_name,
43
j9gc_garbagecollector_name,
44
j9gc_is_managedpool_by_collector,
45
j9gc_is_usagethreshold_supported,
46
j9gc_is_collectionusagethreshold_supported,
47
j9gc_is_local_collector,
48
j9gc_get_collector_id,
49
j9gc_pools_memory,
50
j9gc_pool_maxmemory,
51
j9gc_pool_memoryusage,
52
j9gc_get_gc_action,
53
j9gc_get_gc_cause,
54
j9gc_get_private_hook_interface,
55
gcStartupHeapManagement,
56
gcShutdownHeapManagement,
57
j9gc_jvmPhaseChange,
58
initializeMutatorModelJava,
59
cleanupMutatorModelJava,
60
#if defined(J9VM_GC_FINALIZATION)
61
j9gc_finalizer_startup,
62
j9gc_finalizer_shutdown,
63
j9gc_wait_for_reference_processing,
64
runFinalization,
65
#endif /* J9VM_GC_FINALIZATION */
66
#if defined(J9VM_GC_DYNAMIC_CLASS_UNLOADING)
67
forceClassLoaderUnload,
68
#endif /* J9VM_GC_DYNAMIC_CLASS_UNLOADING */
69
#if defined(J9VM_GC_FINALIZATION)
70
finalizeObjectCreated,
71
#endif /* J9VM_GC_FINALIZATION */
72
j9gc_ext_is_marked,
73
#if defined(J9VM_GC_BATCH_CLEAR_TLH)
74
allocateZeroedTLHPages,
75
isAllocateZeroedTLHPagesEnabled,
76
#endif /* J9VM_GC_BATCH_CLEAR_TLH */
77
isStaticObjectAllocateFlags,
78
getStaticObjectAllocateFlags,
79
j9gc_scavenger_enabled,
80
j9gc_concurrent_scavenger_enabled,
81
j9gc_software_read_barrier_enabled,
82
j9gc_hot_reference_field_required,
83
j9gc_max_hot_field_list_length,
84
#if defined(J9VM_GC_HEAP_CARD_TABLE)
85
j9gc_concurrent_getCardSize,
86
j9gc_concurrent_getHeapBase,
87
#endif /* J9VM_GC_HEAP_CARD_TABLE */
88
j9gc_modron_getWriteBarrierType,
89
j9gc_modron_getReadBarrierType,
90
queryGCStatus,
91
j9gc_flush_caches_for_walk,
92
j9gc_flush_nonAllocationCaches_for_walk,
93
j9gc_get_hook_interface,
94
j9gc_get_omr_hook_interface,
95
j9gc_get_overflow_safe_alloc_size,
96
getVerboseGCFunctionTable,
97
referenceArrayCopy,
98
/* TODO: disable this entrypoint once the JIT has been updated */
99
referenceArrayCopyIndex,
100
alwaysCallReferenceArrayCopyHelper,
101
j9gc_ext_reachable_objects_do,
102
j9gc_ext_reachable_from_object_do,
103
j9gc_jit_isInlineAllocationSupported,
104
J9WriteBarrierPre,
105
J9WriteBarrierPreClass,
106
J9ReadBarrier,
107
J9ReadBarrierClass,
108
j9gc_weakRoot_readObject,
109
j9gc_weakRoot_readObjectVM,
110
j9gc_ext_check_is_valid_heap_object,
111
#if defined(J9VM_GC_FINALIZATION)
112
j9gc_get_objects_pending_finalization_count,
113
#endif /* J9VM_GC_FINALIZATION */
114
j9gc_set_softmx,
115
j9gc_get_softmx,
116
j9gc_get_initial_heap_size,
117
j9gc_get_maximum_heap_size,
118
j9gc_objaccess_checkClassLive,
119
#if defined(J9VM_GC_OBJECT_ACCESS_BARRIER)
120
j9gc_objaccess_indexableReadI8,
121
j9gc_objaccess_indexableReadU8,
122
j9gc_objaccess_indexableReadI16,
123
j9gc_objaccess_indexableReadU16,
124
j9gc_objaccess_indexableReadI32,
125
j9gc_objaccess_indexableReadU32,
126
j9gc_objaccess_indexableReadI64,
127
j9gc_objaccess_indexableReadU64,
128
j9gc_objaccess_indexableReadObject,
129
j9gc_objaccess_indexableReadAddress,
130
j9gc_objaccess_indexableStoreI8,
131
j9gc_objaccess_indexableStoreU8,
132
j9gc_objaccess_indexableStoreI16,
133
j9gc_objaccess_indexableStoreU16,
134
j9gc_objaccess_indexableStoreI32,
135
j9gc_objaccess_indexableStoreU32,
136
j9gc_objaccess_indexableStoreI64,
137
j9gc_objaccess_indexableStoreU64,
138
#if !defined(J9VM_ENV_DATA64)
139
j9gc_objaccess_indexableStoreU64Split,
140
#endif /* !J9VM_ENV_DATA64 */
141
j9gc_objaccess_indexableStoreObject,
142
j9gc_objaccess_indexableStoreAddress,
143
j9gc_objaccess_mixedObjectReadI32,
144
j9gc_objaccess_mixedObjectReadU32,
145
j9gc_objaccess_mixedObjectReadI64,
146
j9gc_objaccess_mixedObjectReadU64,
147
j9gc_objaccess_mixedObjectReadObject,
148
j9gc_objaccess_mixedObjectReadAddress,
149
j9gc_objaccess_mixedObjectStoreI32,
150
j9gc_objaccess_mixedObjectStoreU32,
151
j9gc_objaccess_mixedObjectStoreI64,
152
j9gc_objaccess_mixedObjectStoreU64,
153
j9gc_objaccess_mixedObjectStoreObject,
154
j9gc_objaccess_mixedObjectStoreAddress,
155
#if !defined(J9VM_ENV_DATA64)
156
j9gc_objaccess_mixedObjectStoreU64Split,
157
#endif /* !J9VM_ENV_DATA64 */
158
j9gc_objaccess_mixedObjectCompareAndSwapInt,
159
j9gc_objaccess_mixedObjectCompareAndSwapLong,
160
j9gc_objaccess_mixedObjectCompareAndExchangeInt,
161
j9gc_objaccess_mixedObjectCompareAndExchangeLong,
162
j9gc_objaccess_staticReadI32,
163
j9gc_objaccess_staticReadU32,
164
j9gc_objaccess_staticReadI64,
165
j9gc_objaccess_staticReadU64,
166
j9gc_objaccess_staticReadObject,
167
j9gc_objaccess_staticReadAddress,
168
j9gc_objaccess_staticStoreI32,
169
j9gc_objaccess_staticStoreU32,
170
j9gc_objaccess_staticStoreI64,
171
j9gc_objaccess_staticStoreU64,
172
j9gc_objaccess_staticStoreObject,
173
j9gc_objaccess_staticStoreAddress,
174
#if !defined(J9VM_ENV_DATA64)
175
j9gc_objaccess_staticStoreU64Split,
176
#endif /* !J9VM_ENV_DATA64 */
177
j9gc_objaccess_storeObjectToInternalVMSlot,
178
j9gc_objaccess_readObjectFromInternalVMSlot,
179
j9gc_objaccess_getArrayObjectDataAddress,
180
j9gc_objaccess_getLockwordAddress,
181
j9gc_objaccess_cloneObject,
182
j9gc_objaccess_copyObjectFields,
183
j9gc_objaccess_copyObjectFieldsToFlattenedArrayElement,
184
j9gc_objaccess_copyObjectFieldsFromFlattenedArrayElement,
185
j9gc_objaccess_structuralCompareFlattenedObjects,
186
j9gc_objaccess_cloneIndexableObject,
187
j9gc_objaccess_asConstantPoolObject,
188
j9gc_objaccess_referenceGet,
189
j9gc_objaccess_referenceReprocess,
190
j9gc_objaccess_jniDeleteGlobalReference,
191
j9gc_objaccess_compareAndSwapObject,
192
j9gc_objaccess_staticCompareAndSwapObject,
193
j9gc_objaccess_compareAndExchangeObject,
194
j9gc_objaccess_staticCompareAndExchangeObject,
195
j9gc_objaccess_fillArrayOfObjects,
196
j9gc_objaccess_compressedPointersShift,
197
j9gc_objaccess_compressedPointersShadowHeapBase,
198
j9gc_objaccess_compressedPointersShadowHeapTop,
199
#endif /* J9VM_GC_OBJECT_ACCESS_BARRIER */
200
j9gc_get_gcmodestring,
201
j9gc_get_object_size_in_bytes,
202
j9gc_get_object_total_footprint_in_bytes,
203
j9gc_modron_global_collect,
204
j9gc_modron_global_collect_with_overrides,
205
j9gc_modron_local_collect,
206
j9gc_all_object_and_vm_slots_do,
207
j9mm_iterate_heaps,
208
j9mm_iterate_spaces,
209
j9mm_iterate_roots,
210
j9mm_iterate_regions,
211
j9mm_iterate_region_objects,
212
j9mm_find_region_for_pointer,
213
j9mm_iterate_object_slots,
214
j9mm_initialize_object_descriptor,
215
j9mm_iterate_all_objects,
216
j9gc_modron_isFeatureSupported,
217
j9gc_modron_getConfigurationValueForKey,
218
omrgc_get_version,
219
j9mm_abandon_object,
220
j9mm_get_guaranteed_nursery_range,
221
j9gc_arraylet_getLeafSize,
222
j9gc_arraylet_getLeafLogSize,
223
j9gc_set_allocation_sampling_interval,
224
j9gc_set_allocation_threshold,
225
j9gc_objaccess_recentlyAllocatedObject,
226
j9gc_objaccess_postStoreClassToClassLoader,
227
j9gc_objaccess_getObjectHashCode,
228
j9gc_createJavaLangString,
229
j9gc_createJavaLangStringWithUTFCache,
230
j9gc_internString,
231
#if defined(J9VM_GC_FINALIZATION)
232
j9gc_runFinalizersOnExit,
233
#endif /* J9VM_GC_FINALIZATION */
234
j9gc_objaccess_jniGetPrimitiveArrayCritical,
235
j9gc_objaccess_jniReleasePrimitiveArrayCritical,
236
j9gc_objaccess_jniGetStringCritical,
237
j9gc_objaccess_jniReleaseStringCritical,
238
j9gc_finalizer_completeFinalizersOnExit,
239
j9gc_get_CPU_times,
240
omrgc_walkLWNRLockTracePool,
241
#if defined(J9VM_GC_OBJECT_ACCESS_BARRIER)
242
j9gc_objaccess_staticCompareAndSwapInt,
243
j9gc_objaccess_staticCompareAndExchangeInt,
244
#if !defined(J9VM_ENV_DATA64)
245
j9gc_objaccess_mixedObjectCompareAndSwapLongSplit,
246
#endif /* !J9VM_ENV_DATA64 */
247
j9gc_objaccess_staticCompareAndSwapLong,
248
j9gc_objaccess_staticCompareAndExchangeLong,
249
#if !defined(J9VM_ENV_DATA64)
250
j9gc_objaccess_staticCompareAndSwapLongSplit,
251
#endif /* !J9VM_ENV_DATA64 */
252
#endif /* J9VM_GC_OBJECT_ACCESS_BARRIER */
253
j9gc_get_bytes_allocated_by_thread,
254
j9mm_iterate_all_ownable_synchronizer_objects,
255
ownableSynchronizerObjectCreated,
256
j9gc_notifyGCOfClassReplacement,
257
j9gc_get_jit_string_dedup_policy,
258
j9gc_stringHashFn,
259
j9gc_stringHashEqualFn,
260
j9gc_ensureLockedSynchronizersIntegrity
261
};
262
263