1 | /* |
2 | Copyright (c) 2002, 2019, 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 | /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ |
25 | |
26 | |
27 | |
28 | #ifndef GENERATED_JVMTIFILES_JVMTIENV_HPP |
29 | #define GENERATED_JVMTIFILES_JVMTIENV_HPP |
30 | |
31 | #include "prims/jvmtiEnvBase.hpp" |
32 | #include "prims/jvmtiImpl.hpp" |
33 | |
34 | enum { |
35 | JVMTI_INTERNAL_CAPABILITY_COUNT = 44 |
36 | }; |
37 | |
38 | |
39 | class JvmtiEnv : public JvmtiEnvBase { |
40 | |
41 | private: |
42 | |
43 | JvmtiEnv(jint version); |
44 | ~JvmtiEnv(); |
45 | |
46 | public: |
47 | |
48 | static JvmtiEnv* create_a_jvmti(jint version); |
49 | |
50 | |
51 | // Memory Management functions |
52 | jvmtiError Allocate(jlong size, unsigned char** mem_ptr); |
53 | jvmtiError Deallocate(unsigned char* mem); |
54 | |
55 | // Thread functions |
56 | jvmtiError GetThreadState(jthread thread, jint* thread_state_ptr); |
57 | jvmtiError GetCurrentThread(jthread* thread_ptr); |
58 | jvmtiError GetAllThreads(jint* threads_count_ptr, jthread** threads_ptr); |
59 | jvmtiError SuspendThread(JavaThread* java_thread); |
60 | jvmtiError SuspendThreadList(jint request_count, const jthread* request_list, jvmtiError* results); |
61 | jvmtiError ResumeThread(JavaThread* java_thread); |
62 | jvmtiError ResumeThreadList(jint request_count, const jthread* request_list, jvmtiError* results); |
63 | jvmtiError StopThread(JavaThread* java_thread, jobject exception); |
64 | jvmtiError InterruptThread(jthread thread); |
65 | jvmtiError GetThreadInfo(jthread thread, jvmtiThreadInfo* info_ptr); |
66 | jvmtiError GetOwnedMonitorInfo(JavaThread* java_thread, jint* owned_monitor_count_ptr, jobject** owned_monitors_ptr); |
67 | jvmtiError GetOwnedMonitorStackDepthInfo(JavaThread* java_thread, jint* monitor_info_count_ptr, jvmtiMonitorStackDepthInfo** monitor_info_ptr); |
68 | jvmtiError GetCurrentContendedMonitor(JavaThread* java_thread, jobject* monitor_ptr); |
69 | jvmtiError RunAgentThread(jthread thread, jvmtiStartFunction proc, const void* arg, jint priority); |
70 | jvmtiError SetThreadLocalStorage(JavaThread* java_thread, const void* data); |
71 | jvmtiError GetThreadLocalStorage(jthread thread, void** data_ptr); |
72 | |
73 | // Thread Group functions |
74 | jvmtiError GetTopThreadGroups(jint* group_count_ptr, jthreadGroup** groups_ptr); |
75 | jvmtiError GetThreadGroupInfo(jthreadGroup group, jvmtiThreadGroupInfo* info_ptr); |
76 | jvmtiError GetThreadGroupChildren(jthreadGroup group, jint* thread_count_ptr, jthread** threads_ptr, jint* group_count_ptr, jthreadGroup** groups_ptr); |
77 | |
78 | // Stack Frame functions |
79 | jvmtiError GetStackTrace(JavaThread* java_thread, jint start_depth, jint max_frame_count, jvmtiFrameInfo* frame_buffer, jint* count_ptr); |
80 | jvmtiError GetAllStackTraces(jint max_frame_count, jvmtiStackInfo** stack_info_ptr, jint* thread_count_ptr); |
81 | jvmtiError GetThreadListStackTraces(jint thread_count, const jthread* thread_list, jint max_frame_count, jvmtiStackInfo** stack_info_ptr); |
82 | jvmtiError GetFrameCount(JavaThread* java_thread, jint* count_ptr); |
83 | jvmtiError PopFrame(JavaThread* java_thread); |
84 | jvmtiError GetFrameLocation(JavaThread* java_thread, jint depth, jmethodID* method_ptr, jlocation* location_ptr); |
85 | jvmtiError NotifyFramePop(JavaThread* java_thread, jint depth); |
86 | |
87 | // Force Early Return functions |
88 | jvmtiError ForceEarlyReturnObject(JavaThread* java_thread, jobject value); |
89 | jvmtiError ForceEarlyReturnInt(JavaThread* java_thread, jint value); |
90 | jvmtiError ForceEarlyReturnLong(JavaThread* java_thread, jlong value); |
91 | jvmtiError ForceEarlyReturnFloat(JavaThread* java_thread, jfloat value); |
92 | jvmtiError ForceEarlyReturnDouble(JavaThread* java_thread, jdouble value); |
93 | jvmtiError ForceEarlyReturnVoid(JavaThread* java_thread); |
94 | |
95 | // Heap functions |
96 | jvmtiError FollowReferences(jint heap_filter, jclass klass, jobject initial_object, const jvmtiHeapCallbacks* callbacks, const void* user_data); |
97 | jvmtiError IterateThroughHeap(jint heap_filter, jclass klass, const jvmtiHeapCallbacks* callbacks, const void* user_data); |
98 | jvmtiError GetTag(jobject object, jlong* tag_ptr); |
99 | jvmtiError SetTag(jobject object, jlong tag); |
100 | jvmtiError GetObjectsWithTags(jint tag_count, const jlong* tags, jint* count_ptr, jobject** object_result_ptr, jlong** tag_result_ptr); |
101 | jvmtiError ForceGarbageCollection(); |
102 | |
103 | // Heap (1.0) functions |
104 | jvmtiError IterateOverObjectsReachableFromObject(jobject object, jvmtiObjectReferenceCallback object_reference_callback, const void* user_data); |
105 | jvmtiError IterateOverReachableObjects(jvmtiHeapRootCallback heap_root_callback, jvmtiStackReferenceCallback stack_ref_callback, jvmtiObjectReferenceCallback object_ref_callback, const void* user_data); |
106 | jvmtiError IterateOverHeap(jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void* user_data); |
107 | jvmtiError IterateOverInstancesOfClass(oop k_mirror, jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void* user_data); |
108 | |
109 | // Local Variable functions |
110 | jvmtiError GetLocalObject(JavaThread* java_thread, jint depth, jint slot, jobject* value_ptr); |
111 | jvmtiError GetLocalInstance(JavaThread* java_thread, jint depth, jobject* value_ptr); |
112 | jvmtiError GetLocalInt(JavaThread* java_thread, jint depth, jint slot, jint* value_ptr); |
113 | jvmtiError GetLocalLong(JavaThread* java_thread, jint depth, jint slot, jlong* value_ptr); |
114 | jvmtiError GetLocalFloat(JavaThread* java_thread, jint depth, jint slot, jfloat* value_ptr); |
115 | jvmtiError GetLocalDouble(JavaThread* java_thread, jint depth, jint slot, jdouble* value_ptr); |
116 | jvmtiError SetLocalObject(JavaThread* java_thread, jint depth, jint slot, jobject value); |
117 | jvmtiError SetLocalInt(JavaThread* java_thread, jint depth, jint slot, jint value); |
118 | jvmtiError SetLocalLong(JavaThread* java_thread, jint depth, jint slot, jlong value); |
119 | jvmtiError SetLocalFloat(JavaThread* java_thread, jint depth, jint slot, jfloat value); |
120 | jvmtiError SetLocalDouble(JavaThread* java_thread, jint depth, jint slot, jdouble value); |
121 | |
122 | // Breakpoint functions |
123 | jvmtiError SetBreakpoint(Method* method_oop, jlocation location); |
124 | jvmtiError ClearBreakpoint(Method* method_oop, jlocation location); |
125 | |
126 | // Watched Field functions |
127 | jvmtiError SetFieldAccessWatch(fieldDescriptor* fdesc_ptr); |
128 | jvmtiError ClearFieldAccessWatch(fieldDescriptor* fdesc_ptr); |
129 | jvmtiError SetFieldModificationWatch(fieldDescriptor* fdesc_ptr); |
130 | jvmtiError ClearFieldModificationWatch(fieldDescriptor* fdesc_ptr); |
131 | |
132 | // Module functions |
133 | jvmtiError GetAllModules(jint* module_count_ptr, jobject** modules_ptr); |
134 | jvmtiError GetNamedModule(jobject class_loader, const char* package_name, jobject* module_ptr); |
135 | jvmtiError AddModuleReads(jobject module, jobject to_module); |
136 | jvmtiError AddModuleExports(jobject module, const char* pkg_name, jobject to_module); |
137 | jvmtiError AddModuleOpens(jobject module, const char* pkg_name, jobject to_module); |
138 | jvmtiError AddModuleUses(jobject module, jclass service); |
139 | jvmtiError AddModuleProvides(jobject module, jclass service, jclass impl_class); |
140 | jvmtiError IsModifiableModule(jobject module, jboolean* is_modifiable_module_ptr); |
141 | |
142 | // Class functions |
143 | jvmtiError GetLoadedClasses(jint* class_count_ptr, jclass** classes_ptr); |
144 | jvmtiError GetClassLoaderClasses(jobject initiating_loader, jint* class_count_ptr, jclass** classes_ptr); |
145 | jvmtiError GetClassSignature(oop k_mirror, char** signature_ptr, char** generic_ptr); |
146 | jvmtiError GetClassStatus(oop k_mirror, jint* status_ptr); |
147 | jvmtiError GetSourceFileName(oop k_mirror, char** source_name_ptr); |
148 | jvmtiError GetClassModifiers(oop k_mirror, jint* modifiers_ptr); |
149 | jvmtiError GetClassMethods(oop k_mirror, jint* method_count_ptr, jmethodID** methods_ptr); |
150 | jvmtiError GetClassFields(oop k_mirror, jint* field_count_ptr, jfieldID** fields_ptr); |
151 | jvmtiError GetImplementedInterfaces(oop k_mirror, jint* interface_count_ptr, jclass** interfaces_ptr); |
152 | jvmtiError GetClassVersionNumbers(oop k_mirror, jint* minor_version_ptr, jint* major_version_ptr); |
153 | jvmtiError GetConstantPool(oop k_mirror, jint* constant_pool_count_ptr, jint* constant_pool_byte_count_ptr, unsigned char** constant_pool_bytes_ptr); |
154 | jvmtiError IsInterface(oop k_mirror, jboolean* is_interface_ptr); |
155 | jvmtiError IsArrayClass(oop k_mirror, jboolean* is_array_class_ptr); |
156 | jvmtiError IsModifiableClass(oop k_mirror, jboolean* is_modifiable_class_ptr); |
157 | jvmtiError GetClassLoader(oop k_mirror, jobject* classloader_ptr); |
158 | jvmtiError GetSourceDebugExtension(oop k_mirror, char** source_debug_extension_ptr); |
159 | jvmtiError RetransformClasses(jint class_count, const jclass* classes); |
160 | jvmtiError RedefineClasses(jint class_count, const jvmtiClassDefinition* class_definitions); |
161 | |
162 | // Object functions |
163 | jvmtiError GetObjectSize(jobject object, jlong* size_ptr); |
164 | jvmtiError GetObjectHashCode(jobject object, jint* hash_code_ptr); |
165 | jvmtiError GetObjectMonitorUsage(jobject object, jvmtiMonitorUsage* info_ptr); |
166 | |
167 | // Field functions |
168 | jvmtiError GetFieldName(fieldDescriptor* fdesc_ptr, char** name_ptr, char** signature_ptr, char** generic_ptr); |
169 | jvmtiError GetFieldDeclaringClass(fieldDescriptor* fdesc_ptr, jclass* declaring_class_ptr); |
170 | jvmtiError GetFieldModifiers(fieldDescriptor* fdesc_ptr, jint* modifiers_ptr); |
171 | jvmtiError IsFieldSynthetic(fieldDescriptor* fdesc_ptr, jboolean* is_synthetic_ptr); |
172 | |
173 | // Method functions |
174 | jvmtiError GetMethodName(Method* method_oop, char** name_ptr, char** signature_ptr, char** generic_ptr); |
175 | jvmtiError GetMethodDeclaringClass(Method* method_oop, jclass* declaring_class_ptr); |
176 | jvmtiError GetMethodModifiers(Method* method_oop, jint* modifiers_ptr); |
177 | jvmtiError GetMaxLocals(Method* method_oop, jint* max_ptr); |
178 | jvmtiError GetArgumentsSize(Method* method_oop, jint* size_ptr); |
179 | jvmtiError GetLineNumberTable(Method* method_oop, jint* entry_count_ptr, jvmtiLineNumberEntry** table_ptr); |
180 | jvmtiError GetMethodLocation(Method* method_oop, jlocation* start_location_ptr, jlocation* end_location_ptr); |
181 | jvmtiError GetLocalVariableTable(Method* method_oop, jint* entry_count_ptr, jvmtiLocalVariableEntry** table_ptr); |
182 | jvmtiError GetBytecodes(Method* method_oop, jint* bytecode_count_ptr, unsigned char** bytecodes_ptr); |
183 | jvmtiError IsMethodNative(Method* method_oop, jboolean* is_native_ptr); |
184 | jvmtiError IsMethodSynthetic(Method* method_oop, jboolean* is_synthetic_ptr); |
185 | jvmtiError IsMethodObsolete(Method* method_oop, jboolean* is_obsolete_ptr); |
186 | jvmtiError SetNativeMethodPrefix(const char* prefix); |
187 | jvmtiError SetNativeMethodPrefixes(jint prefix_count, char** prefixes); |
188 | |
189 | // Raw Monitor functions |
190 | jvmtiError CreateRawMonitor(const char* name, jrawMonitorID* monitor_ptr); |
191 | jvmtiError DestroyRawMonitor(JvmtiRawMonitor * rmonitor); |
192 | jvmtiError RawMonitorEnter(JvmtiRawMonitor * rmonitor); |
193 | jvmtiError RawMonitorExit(JvmtiRawMonitor * rmonitor); |
194 | jvmtiError RawMonitorWait(JvmtiRawMonitor * rmonitor, jlong millis); |
195 | jvmtiError RawMonitorNotify(JvmtiRawMonitor * rmonitor); |
196 | jvmtiError RawMonitorNotifyAll(JvmtiRawMonitor * rmonitor); |
197 | |
198 | // JNI Function Interception functions |
199 | jvmtiError SetJNIFunctionTable(const jniNativeInterface* function_table); |
200 | jvmtiError GetJNIFunctionTable(jniNativeInterface** function_table); |
201 | |
202 | // Event Management functions |
203 | jvmtiError SetEventCallbacks(const jvmtiEventCallbacks* callbacks, jint size_of_callbacks); |
204 | jvmtiError SetEventNotificationMode(jvmtiEventMode mode, jvmtiEvent event_type, jthread event_thread, ...); |
205 | jvmtiError GenerateEvents(jvmtiEvent event_type); |
206 | |
207 | // Extension Mechanism functions |
208 | jvmtiError GetExtensionFunctions(jint* extension_count_ptr, jvmtiExtensionFunctionInfo** extensions); |
209 | jvmtiError GetExtensionEvents(jint* extension_count_ptr, jvmtiExtensionEventInfo** extensions); |
210 | jvmtiError SetExtensionEventCallback(jint extension_event_index, jvmtiExtensionEvent callback); |
211 | |
212 | // Capability functions |
213 | jvmtiError GetPotentialCapabilities(jvmtiCapabilities* capabilities_ptr); |
214 | jvmtiError AddCapabilities(const jvmtiCapabilities* capabilities_ptr); |
215 | jvmtiError RelinquishCapabilities(const jvmtiCapabilities* capabilities_ptr); |
216 | jvmtiError GetCapabilities(jvmtiCapabilities* capabilities_ptr); |
217 | |
218 | // Timers functions |
219 | jvmtiError GetCurrentThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr); |
220 | jvmtiError GetCurrentThreadCpuTime(jlong* nanos_ptr); |
221 | jvmtiError GetThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr); |
222 | jvmtiError GetThreadCpuTime(JavaThread* java_thread, jlong* nanos_ptr); |
223 | jvmtiError GetTimerInfo(jvmtiTimerInfo* info_ptr); |
224 | jvmtiError GetTime(jlong* nanos_ptr); |
225 | jvmtiError GetAvailableProcessors(jint* processor_count_ptr); |
226 | |
227 | // Class Loader Search functions |
228 | jvmtiError AddToBootstrapClassLoaderSearch(const char* segment); |
229 | jvmtiError AddToSystemClassLoaderSearch(const char* segment); |
230 | |
231 | // System Properties functions |
232 | jvmtiError GetSystemProperties(jint* count_ptr, char*** property_ptr); |
233 | jvmtiError GetSystemProperty(const char* property, char** value_ptr); |
234 | jvmtiError SetSystemProperty(const char* property, const char* value_ptr); |
235 | |
236 | // General functions |
237 | jvmtiError GetPhase(jvmtiPhase* phase_ptr); |
238 | jvmtiError DisposeEnvironment(); |
239 | jvmtiError SetEnvironmentLocalStorage(const void* data); |
240 | jvmtiError GetEnvironmentLocalStorage(void** data_ptr); |
241 | jvmtiError GetVersionNumber(jint* version_ptr); |
242 | jvmtiError GetErrorName(jvmtiError error, char** name_ptr); |
243 | jvmtiError SetVerboseFlag(jvmtiVerboseFlag flag, jboolean value); |
244 | jvmtiError GetJLocationFormat(jvmtiJlocationFormat* format_ptr); |
245 | |
246 | // Heap Monitoring functions |
247 | jvmtiError SetHeapSamplingInterval(jint sampling_interval); |
248 | |
249 | }; |
250 | |
251 | #endif // GENERATED_JVMTIFILES_JVMTIENV_HPP |
252 | |