source: main/trunk/greenstone2/common-src/indexers/java-windows-include/jvmti.h@ 26676

Last change on this file since 26676 was 26676, checked in by davidb, 11 years ago

The Java Windows JNI header files. Needed when cross-compiling on a Linux host (using mingw) to produce native Windows JNI dlls

  • Property svn:executable set to *
File size: 75.7 KB
Line 
1#ifdef USE_PRAGMA_IDENT_HDR
2#pragma ident "@(#)jvmtiLib.xsl 1.38 06/08/02 23:22:31 JVM"
3#endif
4/*
5 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
6 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
7 */
8
9 /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */
10
11
12 /* Include file for the Java(tm) Virtual Machine Tool Interface */
13
14#ifndef _JAVA_JVMTI_H_
15#define _JAVA_JVMTI_H_
16
17#include "jni.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23enum {
24 JVMTI_VERSION_1 = 0x30010000,
25 JVMTI_VERSION_1_0 = 0x30010000,
26 JVMTI_VERSION_1_1 = 0x30010100,
27
28 JVMTI_VERSION = 0x30000000 + (1 * 0x10000) + (1 * 0x100) + 102 /* version: 1.1.102 */
29};
30
31JNIEXPORT jint JNICALL
32Agent_OnLoad(JavaVM *vm, char *options, void *reserved);
33
34JNIEXPORT jint JNICALL
35Agent_OnAttach(JavaVM* vm, char* options, void* reserved);
36
37JNIEXPORT void JNICALL
38Agent_OnUnload(JavaVM *vm);
39
40 /* Forward declaration of the environment */
41
42struct _jvmtiEnv;
43
44struct jvmtiInterface_1_;
45
46#ifdef __cplusplus
47typedef _jvmtiEnv jvmtiEnv;
48#else
49typedef const struct jvmtiInterface_1_ *jvmtiEnv;
50#endif /* __cplusplus */
51
52/* Derived Base Types */
53
54typedef jobject jthread;
55typedef jobject jthreadGroup;
56typedef jlong jlocation;
57struct _jrawMonitorID;
58typedef struct _jrawMonitorID *jrawMonitorID;
59typedef struct JNINativeInterface_ jniNativeInterface;
60
61 /* Constants */
62
63
64 /* Thread State Flags */
65
66enum {
67 JVMTI_THREAD_STATE_ALIVE = 0x0001,
68 JVMTI_THREAD_STATE_TERMINATED = 0x0002,
69 JVMTI_THREAD_STATE_RUNNABLE = 0x0004,
70 JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400,
71 JVMTI_THREAD_STATE_WAITING = 0x0080,
72 JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010,
73 JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020,
74 JVMTI_THREAD_STATE_SLEEPING = 0x0040,
75 JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100,
76 JVMTI_THREAD_STATE_PARKED = 0x0200,
77 JVMTI_THREAD_STATE_SUSPENDED = 0x100000,
78 JVMTI_THREAD_STATE_INTERRUPTED = 0x200000,
79 JVMTI_THREAD_STATE_IN_NATIVE = 0x400000,
80 JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000,
81 JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000,
82 JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000
83};
84
85 /* java.lang.Thread.State Conversion Masks */
86
87enum {
88 JVMTI_JAVA_LANG_THREAD_STATE_MASK = JVMTI_THREAD_STATE_TERMINATED | JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT,
89 JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0,
90 JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED,
91 JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE,
92 JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER,
93 JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY,
94 JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT
95};
96
97 /* Thread Priority Constants */
98
99enum {
100 JVMTI_THREAD_MIN_PRIORITY = 1,
101 JVMTI_THREAD_NORM_PRIORITY = 5,
102 JVMTI_THREAD_MAX_PRIORITY = 10
103};
104
105 /* Heap Filter Flags */
106
107enum {
108 JVMTI_HEAP_FILTER_TAGGED = 0x4,
109 JVMTI_HEAP_FILTER_UNTAGGED = 0x8,
110 JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10,
111 JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20
112};
113
114 /* Heap Visit Control Flags */
115
116enum {
117 JVMTI_VISIT_OBJECTS = 0x100,
118 JVMTI_VISIT_ABORT = 0x8000
119};
120
121 /* Heap Reference Enumeration */
122
123typedef enum {
124 JVMTI_HEAP_REFERENCE_CLASS = 1,
125 JVMTI_HEAP_REFERENCE_FIELD = 2,
126 JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT = 3,
127 JVMTI_HEAP_REFERENCE_CLASS_LOADER = 4,
128 JVMTI_HEAP_REFERENCE_SIGNERS = 5,
129 JVMTI_HEAP_REFERENCE_PROTECTION_DOMAIN = 6,
130 JVMTI_HEAP_REFERENCE_INTERFACE = 7,
131 JVMTI_HEAP_REFERENCE_STATIC_FIELD = 8,
132 JVMTI_HEAP_REFERENCE_CONSTANT_POOL = 9,
133 JVMTI_HEAP_REFERENCE_SUPERCLASS = 10,
134 JVMTI_HEAP_REFERENCE_JNI_GLOBAL = 21,
135 JVMTI_HEAP_REFERENCE_SYSTEM_CLASS = 22,
136 JVMTI_HEAP_REFERENCE_MONITOR = 23,
137 JVMTI_HEAP_REFERENCE_STACK_LOCAL = 24,
138 JVMTI_HEAP_REFERENCE_JNI_LOCAL = 25,
139 JVMTI_HEAP_REFERENCE_THREAD = 26,
140 JVMTI_HEAP_REFERENCE_OTHER = 27
141} jvmtiHeapReferenceKind;
142
143 /* Primitive Type Enumeration */
144
145typedef enum {
146 JVMTI_PRIMITIVE_TYPE_BOOLEAN = 90,
147 JVMTI_PRIMITIVE_TYPE_BYTE = 66,
148 JVMTI_PRIMITIVE_TYPE_CHAR = 67,
149 JVMTI_PRIMITIVE_TYPE_SHORT = 83,
150 JVMTI_PRIMITIVE_TYPE_INT = 73,
151 JVMTI_PRIMITIVE_TYPE_LONG = 74,
152 JVMTI_PRIMITIVE_TYPE_FLOAT = 70,
153 JVMTI_PRIMITIVE_TYPE_DOUBLE = 68
154} jvmtiPrimitiveType;
155
156 /* Heap Object Filter Enumeration */
157
158typedef enum {
159 JVMTI_HEAP_OBJECT_TAGGED = 1,
160 JVMTI_HEAP_OBJECT_UNTAGGED = 2,
161 JVMTI_HEAP_OBJECT_EITHER = 3
162} jvmtiHeapObjectFilter;
163
164 /* Heap Root Kind Enumeration */
165
166typedef enum {
167 JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
168 JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
169 JVMTI_HEAP_ROOT_MONITOR = 3,
170 JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
171 JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
172 JVMTI_HEAP_ROOT_THREAD = 6,
173 JVMTI_HEAP_ROOT_OTHER = 7
174} jvmtiHeapRootKind;
175
176 /* Object Reference Enumeration */
177
178typedef enum {
179 JVMTI_REFERENCE_CLASS = 1,
180 JVMTI_REFERENCE_FIELD = 2,
181 JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
182 JVMTI_REFERENCE_CLASS_LOADER = 4,
183 JVMTI_REFERENCE_SIGNERS = 5,
184 JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
185 JVMTI_REFERENCE_INTERFACE = 7,
186 JVMTI_REFERENCE_STATIC_FIELD = 8,
187 JVMTI_REFERENCE_CONSTANT_POOL = 9
188} jvmtiObjectReferenceKind;
189
190 /* Iteration Control Enumeration */
191
192typedef enum {
193 JVMTI_ITERATION_CONTINUE = 1,
194 JVMTI_ITERATION_IGNORE = 2,
195 JVMTI_ITERATION_ABORT = 0
196} jvmtiIterationControl;
197
198 /* Class Status Flags */
199
200enum {
201 JVMTI_CLASS_STATUS_VERIFIED = 1,
202 JVMTI_CLASS_STATUS_PREPARED = 2,
203 JVMTI_CLASS_STATUS_INITIALIZED = 4,
204 JVMTI_CLASS_STATUS_ERROR = 8,
205 JVMTI_CLASS_STATUS_ARRAY = 16,
206 JVMTI_CLASS_STATUS_PRIMITIVE = 32
207};
208
209 /* Event Enable/Disable */
210
211typedef enum {
212 JVMTI_ENABLE = 1,
213 JVMTI_DISABLE = 0
214} jvmtiEventMode;
215
216 /* Extension Function/Event Parameter Types */
217
218typedef enum {
219 JVMTI_TYPE_JBYTE = 101,
220 JVMTI_TYPE_JCHAR = 102,
221 JVMTI_TYPE_JSHORT = 103,
222 JVMTI_TYPE_JINT = 104,
223 JVMTI_TYPE_JLONG = 105,
224 JVMTI_TYPE_JFLOAT = 106,
225 JVMTI_TYPE_JDOUBLE = 107,
226 JVMTI_TYPE_JBOOLEAN = 108,
227 JVMTI_TYPE_JOBJECT = 109,
228 JVMTI_TYPE_JTHREAD = 110,
229 JVMTI_TYPE_JCLASS = 111,
230 JVMTI_TYPE_JVALUE = 112,
231 JVMTI_TYPE_JFIELDID = 113,
232 JVMTI_TYPE_JMETHODID = 114,
233 JVMTI_TYPE_CCHAR = 115,
234 JVMTI_TYPE_CVOID = 116,
235 JVMTI_TYPE_JNIENV = 117
236} jvmtiParamTypes;
237
238 /* Extension Function/Event Parameter Kinds */
239
240typedef enum {
241 JVMTI_KIND_IN = 91,
242 JVMTI_KIND_IN_PTR = 92,
243 JVMTI_KIND_IN_BUF = 93,
244 JVMTI_KIND_ALLOC_BUF = 94,
245 JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
246 JVMTI_KIND_OUT = 96,
247 JVMTI_KIND_OUT_BUF = 97
248} jvmtiParamKind;
249
250 /* Timer Kinds */
251
252typedef enum {
253 JVMTI_TIMER_USER_CPU = 30,
254 JVMTI_TIMER_TOTAL_CPU = 31,
255 JVMTI_TIMER_ELAPSED = 32
256} jvmtiTimerKind;
257
258 /* Phases of execution */
259
260typedef enum {
261 JVMTI_PHASE_ONLOAD = 1,
262 JVMTI_PHASE_PRIMORDIAL = 2,
263 JVMTI_PHASE_START = 6,
264 JVMTI_PHASE_LIVE = 4,
265 JVMTI_PHASE_DEAD = 8
266} jvmtiPhase;
267
268 /* Version Interface Types */
269
270enum {
271 JVMTI_VERSION_INTERFACE_JNI = 0x00000000,
272 JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000
273};
274
275 /* Version Masks */
276
277enum {
278 JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000,
279 JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000,
280 JVMTI_VERSION_MASK_MINOR = 0x0000FF00,
281 JVMTI_VERSION_MASK_MICRO = 0x000000FF
282};
283
284 /* Version Shifts */
285
286enum {
287 JVMTI_VERSION_SHIFT_MAJOR = 16,
288 JVMTI_VERSION_SHIFT_MINOR = 8,
289 JVMTI_VERSION_SHIFT_MICRO = 0
290};
291
292 /* Verbose Flag Enumeration */
293
294typedef enum {
295 JVMTI_VERBOSE_OTHER = 0,
296 JVMTI_VERBOSE_GC = 1,
297 JVMTI_VERBOSE_CLASS = 2,
298 JVMTI_VERBOSE_JNI = 4
299} jvmtiVerboseFlag;
300
301 /* JLocation Format Enumeration */
302
303typedef enum {
304 JVMTI_JLOCATION_JVMBCI = 1,
305 JVMTI_JLOCATION_MACHINEPC = 2,
306 JVMTI_JLOCATION_OTHER = 0
307} jvmtiJlocationFormat;
308
309 /* Resource Exhaustion Flags */
310
311enum {
312 JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001,
313 JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002,
314 JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004
315};
316
317 /* Errors */
318
319typedef enum {
320 JVMTI_ERROR_NONE = 0,
321 JVMTI_ERROR_INVALID_THREAD = 10,
322 JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
323 JVMTI_ERROR_INVALID_PRIORITY = 12,
324 JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
325 JVMTI_ERROR_THREAD_SUSPENDED = 14,
326 JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
327 JVMTI_ERROR_INVALID_OBJECT = 20,
328 JVMTI_ERROR_INVALID_CLASS = 21,
329 JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
330 JVMTI_ERROR_INVALID_METHODID = 23,
331 JVMTI_ERROR_INVALID_LOCATION = 24,
332 JVMTI_ERROR_INVALID_FIELDID = 25,
333 JVMTI_ERROR_NO_MORE_FRAMES = 31,
334 JVMTI_ERROR_OPAQUE_FRAME = 32,
335 JVMTI_ERROR_TYPE_MISMATCH = 34,
336 JVMTI_ERROR_INVALID_SLOT = 35,
337 JVMTI_ERROR_DUPLICATE = 40,
338 JVMTI_ERROR_NOT_FOUND = 41,
339 JVMTI_ERROR_INVALID_MONITOR = 50,
340 JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
341 JVMTI_ERROR_INTERRUPT = 52,
342 JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
343 JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
344 JVMTI_ERROR_FAILS_VERIFICATION = 62,
345 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
346 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
347 JVMTI_ERROR_INVALID_TYPESTATE = 65,
348 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
349 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
350 JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
351 JVMTI_ERROR_NAMES_DONT_MATCH = 69,
352 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
353 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
354 JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
355 JVMTI_ERROR_NOT_AVAILABLE = 98,
356 JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
357 JVMTI_ERROR_NULL_POINTER = 100,
358 JVMTI_ERROR_ABSENT_INFORMATION = 101,
359 JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
360 JVMTI_ERROR_ILLEGAL_ARGUMENT = 103,
361 JVMTI_ERROR_NATIVE_METHOD = 104,
362 JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED = 106,
363 JVMTI_ERROR_OUT_OF_MEMORY = 110,
364 JVMTI_ERROR_ACCESS_DENIED = 111,
365 JVMTI_ERROR_WRONG_PHASE = 112,
366 JVMTI_ERROR_INTERNAL = 113,
367 JVMTI_ERROR_UNATTACHED_THREAD = 115,
368 JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
369 JVMTI_ERROR_MAX = 116
370} jvmtiError;
371
372 /* Event IDs */
373
374typedef enum {
375 JVMTI_MIN_EVENT_TYPE_VAL = 50,
376 JVMTI_EVENT_VM_INIT = 50,
377 JVMTI_EVENT_VM_DEATH = 51,
378 JVMTI_EVENT_THREAD_START = 52,
379 JVMTI_EVENT_THREAD_END = 53,
380 JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
381 JVMTI_EVENT_CLASS_LOAD = 55,
382 JVMTI_EVENT_CLASS_PREPARE = 56,
383 JVMTI_EVENT_VM_START = 57,
384 JVMTI_EVENT_EXCEPTION = 58,
385 JVMTI_EVENT_EXCEPTION_CATCH = 59,
386 JVMTI_EVENT_SINGLE_STEP = 60,
387 JVMTI_EVENT_FRAME_POP = 61,
388 JVMTI_EVENT_BREAKPOINT = 62,
389 JVMTI_EVENT_FIELD_ACCESS = 63,
390 JVMTI_EVENT_FIELD_MODIFICATION = 64,
391 JVMTI_EVENT_METHOD_ENTRY = 65,
392 JVMTI_EVENT_METHOD_EXIT = 66,
393 JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
394 JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
395 JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
396 JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
397 JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
398 JVMTI_EVENT_MONITOR_WAIT = 73,
399 JVMTI_EVENT_MONITOR_WAITED = 74,
400 JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
401 JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
402 JVMTI_EVENT_RESOURCE_EXHAUSTED = 80,
403 JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
404 JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
405 JVMTI_EVENT_OBJECT_FREE = 83,
406 JVMTI_EVENT_VM_OBJECT_ALLOC = 84,
407 JVMTI_MAX_EVENT_TYPE_VAL = 84
408} jvmtiEvent;
409
410
411 /* Pre-Declarations */
412struct _jvmtiThreadInfo;
413typedef struct _jvmtiThreadInfo jvmtiThreadInfo;
414struct _jvmtiMonitorStackDepthInfo;
415typedef struct _jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo;
416struct _jvmtiThreadGroupInfo;
417typedef struct _jvmtiThreadGroupInfo jvmtiThreadGroupInfo;
418struct _jvmtiFrameInfo;
419typedef struct _jvmtiFrameInfo jvmtiFrameInfo;
420struct _jvmtiStackInfo;
421typedef struct _jvmtiStackInfo jvmtiStackInfo;
422struct _jvmtiHeapReferenceInfoField;
423typedef struct _jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField;
424struct _jvmtiHeapReferenceInfoArray;
425typedef struct _jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray;
426struct _jvmtiHeapReferenceInfoConstantPool;
427typedef struct _jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool;
428struct _jvmtiHeapReferenceInfoStackLocal;
429typedef struct _jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal;
430struct _jvmtiHeapReferenceInfoJniLocal;
431typedef struct _jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal;
432struct _jvmtiHeapReferenceInfoReserved;
433typedef struct _jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved;
434union _jvmtiHeapReferenceInfo;
435typedef union _jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo;
436struct _jvmtiHeapCallbacks;
437typedef struct _jvmtiHeapCallbacks jvmtiHeapCallbacks;
438struct _jvmtiClassDefinition;
439typedef struct _jvmtiClassDefinition jvmtiClassDefinition;
440struct _jvmtiMonitorUsage;
441typedef struct _jvmtiMonitorUsage jvmtiMonitorUsage;
442struct _jvmtiLineNumberEntry;
443typedef struct _jvmtiLineNumberEntry jvmtiLineNumberEntry;
444struct _jvmtiLocalVariableEntry;
445typedef struct _jvmtiLocalVariableEntry jvmtiLocalVariableEntry;
446struct _jvmtiParamInfo;
447typedef struct _jvmtiParamInfo jvmtiParamInfo;
448struct _jvmtiExtensionFunctionInfo;
449typedef struct _jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo;
450struct _jvmtiExtensionEventInfo;
451typedef struct _jvmtiExtensionEventInfo jvmtiExtensionEventInfo;
452struct _jvmtiTimerInfo;
453typedef struct _jvmtiTimerInfo jvmtiTimerInfo;
454struct _jvmtiAddrLocationMap;
455typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap;
456
457 /* Function Types */
458
459typedef void (JNICALL *jvmtiStartFunction)
460 (jvmtiEnv* jvmti_env, JNIEnv* jni_env, void* arg);
461
462typedef jint (JNICALL *jvmtiHeapIterationCallback)
463 (jlong class_tag, jlong size, jlong* tag_ptr, jint length, void* user_data);
464
465typedef jint (JNICALL *jvmtiHeapReferenceCallback)
466 (jvmtiHeapReferenceKind reference_kind, const jvmtiHeapReferenceInfo* reference_info, jlong class_tag, jlong referrer_class_tag, jlong size, jlong* tag_ptr, jlong* referrer_tag_ptr, jint length, void* user_data);
467
468typedef jint (JNICALL *jvmtiPrimitiveFieldCallback)
469 (jvmtiHeapReferenceKind kind, const jvmtiHeapReferenceInfo* info, jlong object_class_tag, jlong* object_tag_ptr, jvalue value, jvmtiPrimitiveType value_type, void* user_data);
470
471typedef jint (JNICALL *jvmtiArrayPrimitiveValueCallback)
472 (jlong class_tag, jlong size, jlong* tag_ptr, jint element_count, jvmtiPrimitiveType element_type, const void* elements, void* user_data);
473
474typedef jint (JNICALL *jvmtiStringPrimitiveValueCallback)
475 (jlong class_tag, jlong size, jlong* tag_ptr, const jchar* value, jint value_length, void* user_data);
476
477typedef jint (JNICALL *jvmtiReservedCallback)
478 ();
479
480typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback)
481 (jlong class_tag, jlong size, jlong* tag_ptr, void* user_data);
482
483typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback)
484 (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, void* user_data);
485
486typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback)
487 (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void* user_data);
488
489typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback)
490 (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong referrer_tag, jint referrer_index, void* user_data);
491
492typedef jvmtiError (JNICALL *jvmtiExtensionFunction)
493 (jvmtiEnv* jvmti_env, ...);
494
495typedef void (JNICALL *jvmtiExtensionEvent)
496 (jvmtiEnv* jvmti_env, ...);
497
498
499 /* Structure Types */
500struct _jvmtiThreadInfo {
501 char* name;
502 jint priority;
503 jboolean is_daemon;
504 jthreadGroup thread_group;
505 jobject context_class_loader;
506};
507struct _jvmtiMonitorStackDepthInfo {
508 jobject monitor;
509 jint stack_depth;
510};
511struct _jvmtiThreadGroupInfo {
512 jthreadGroup parent;
513 char* name;
514 jint max_priority;
515 jboolean is_daemon;
516};
517struct _jvmtiFrameInfo {
518 jmethodID method;
519 jlocation location;
520};
521struct _jvmtiStackInfo {
522 jthread thread;
523 jint state;
524 jvmtiFrameInfo* frame_buffer;
525 jint frame_count;
526};
527struct _jvmtiHeapReferenceInfoField {
528 jint index;
529};
530struct _jvmtiHeapReferenceInfoArray {
531 jint index;
532};
533struct _jvmtiHeapReferenceInfoConstantPool {
534 jint index;
535};
536struct _jvmtiHeapReferenceInfoStackLocal {
537 jlong thread_tag;
538 jlong thread_id;
539 jint depth;
540 jmethodID method;
541 jlocation location;
542 jint slot;
543};
544struct _jvmtiHeapReferenceInfoJniLocal {
545 jlong thread_tag;
546 jlong thread_id;
547 jint depth;
548 jmethodID method;
549};
550struct _jvmtiHeapReferenceInfoReserved {
551 jlong reserved1;
552 jlong reserved2;
553 jlong reserved3;
554 jlong reserved4;
555 jlong reserved5;
556 jlong reserved6;
557 jlong reserved7;
558 jlong reserved8;
559};
560union _jvmtiHeapReferenceInfo {
561 jvmtiHeapReferenceInfoField field;
562 jvmtiHeapReferenceInfoArray array;
563 jvmtiHeapReferenceInfoConstantPool constant_pool;
564 jvmtiHeapReferenceInfoStackLocal stack_local;
565 jvmtiHeapReferenceInfoJniLocal jni_local;
566 jvmtiHeapReferenceInfoReserved other;
567};
568struct _jvmtiHeapCallbacks {
569 jvmtiHeapIterationCallback heap_iteration_callback;
570 jvmtiHeapReferenceCallback heap_reference_callback;
571 jvmtiPrimitiveFieldCallback primitive_field_callback;
572 jvmtiArrayPrimitiveValueCallback array_primitive_value_callback;
573 jvmtiStringPrimitiveValueCallback string_primitive_value_callback;
574 jvmtiReservedCallback reserved5;
575 jvmtiReservedCallback reserved6;
576 jvmtiReservedCallback reserved7;
577 jvmtiReservedCallback reserved8;
578 jvmtiReservedCallback reserved9;
579 jvmtiReservedCallback reserved10;
580 jvmtiReservedCallback reserved11;
581 jvmtiReservedCallback reserved12;
582 jvmtiReservedCallback reserved13;
583 jvmtiReservedCallback reserved14;
584 jvmtiReservedCallback reserved15;
585};
586struct _jvmtiClassDefinition {
587 jclass klass;
588 jint class_byte_count;
589 const unsigned char* class_bytes;
590};
591struct _jvmtiMonitorUsage {
592 jthread owner;
593 jint entry_count;
594 jint waiter_count;
595 jthread* waiters;
596 jint notify_waiter_count;
597 jthread* notify_waiters;
598};
599struct _jvmtiLineNumberEntry {
600 jlocation start_location;
601 jint line_number;
602};
603struct _jvmtiLocalVariableEntry {
604 jlocation start_location;
605 jint length;
606 char* name;
607 char* signature;
608 char* generic_signature;
609 jint slot;
610};
611struct _jvmtiParamInfo {
612 char* name;
613 jvmtiParamKind kind;
614 jvmtiParamTypes base_type;
615 jboolean null_ok;
616};
617struct _jvmtiExtensionFunctionInfo {
618 jvmtiExtensionFunction func;
619 char* id;
620 char* short_description;
621 jint param_count;
622 jvmtiParamInfo* params;
623 jint error_count;
624 jvmtiError* errors;
625};
626struct _jvmtiExtensionEventInfo {
627 jint extension_event_index;
628 char* id;
629 char* short_description;
630 jint param_count;
631 jvmtiParamInfo* params;
632};
633struct _jvmtiTimerInfo {
634 jlong max_value;
635 jboolean may_skip_forward;
636 jboolean may_skip_backward;
637 jvmtiTimerKind kind;
638 jlong reserved1;
639 jlong reserved2;
640};
641struct _jvmtiAddrLocationMap {
642 const void* start_address;
643 jlocation location;
644};
645
646typedef struct {
647 unsigned int can_tag_objects : 1;
648 unsigned int can_generate_field_modification_events : 1;
649 unsigned int can_generate_field_access_events : 1;
650 unsigned int can_get_bytecodes : 1;
651 unsigned int can_get_synthetic_attribute : 1;
652 unsigned int can_get_owned_monitor_info : 1;
653 unsigned int can_get_current_contended_monitor : 1;
654 unsigned int can_get_monitor_info : 1;
655 unsigned int can_pop_frame : 1;
656 unsigned int can_redefine_classes : 1;
657 unsigned int can_signal_thread : 1;
658 unsigned int can_get_source_file_name : 1;
659 unsigned int can_get_line_numbers : 1;
660 unsigned int can_get_source_debug_extension : 1;
661 unsigned int can_access_local_variables : 1;
662 unsigned int can_maintain_original_method_order : 1;
663 unsigned int can_generate_single_step_events : 1;
664 unsigned int can_generate_exception_events : 1;
665 unsigned int can_generate_frame_pop_events : 1;
666 unsigned int can_generate_breakpoint_events : 1;
667 unsigned int can_suspend : 1;
668 unsigned int can_redefine_any_class : 1;
669 unsigned int can_get_current_thread_cpu_time : 1;
670 unsigned int can_get_thread_cpu_time : 1;
671 unsigned int can_generate_method_entry_events : 1;
672 unsigned int can_generate_method_exit_events : 1;
673 unsigned int can_generate_all_class_hook_events : 1;
674 unsigned int can_generate_compiled_method_load_events : 1;
675 unsigned int can_generate_monitor_events : 1;
676 unsigned int can_generate_vm_object_alloc_events : 1;
677 unsigned int can_generate_native_method_bind_events : 1;
678 unsigned int can_generate_garbage_collection_events : 1;
679 unsigned int can_generate_object_free_events : 1;
680 unsigned int can_force_early_return : 1;
681 unsigned int can_get_owned_monitor_stack_depth_info : 1;
682 unsigned int can_get_constant_pool : 1;
683 unsigned int can_set_native_method_prefix : 1;
684 unsigned int can_retransform_classes : 1;
685 unsigned int can_retransform_any_class : 1;
686 unsigned int can_generate_resource_exhaustion_heap_events : 1;
687 unsigned int can_generate_resource_exhaustion_threads_events : 1;
688 unsigned int : 7;
689 unsigned int : 16;
690 unsigned int : 16;
691 unsigned int : 16;
692 unsigned int : 16;
693 unsigned int : 16;
694} jvmtiCapabilities;
695
696
697 /* Event Definitions */
698
699typedef void (JNICALL *jvmtiEventReserved)(void);
700
701
702typedef void (JNICALL *jvmtiEventBreakpoint)
703 (jvmtiEnv *jvmti_env,
704 JNIEnv* jni_env,
705 jthread thread,
706 jmethodID method,
707 jlocation location);
708
709typedef void (JNICALL *jvmtiEventClassFileLoadHook)
710 (jvmtiEnv *jvmti_env,
711 JNIEnv* jni_env,
712 jclass class_being_redefined,
713 jobject loader,
714 const char* name,
715 jobject protection_domain,
716 jint class_data_len,
717 const unsigned char* class_data,
718 jint* new_class_data_len,
719 unsigned char** new_class_data);
720
721typedef void (JNICALL *jvmtiEventClassLoad)
722 (jvmtiEnv *jvmti_env,
723 JNIEnv* jni_env,
724 jthread thread,
725 jclass klass);
726
727typedef void (JNICALL *jvmtiEventClassPrepare)
728 (jvmtiEnv *jvmti_env,
729 JNIEnv* jni_env,
730 jthread thread,
731 jclass klass);
732
733typedef void (JNICALL *jvmtiEventCompiledMethodLoad)
734 (jvmtiEnv *jvmti_env,
735 jmethodID method,
736 jint code_size,
737 const void* code_addr,
738 jint map_length,
739 const jvmtiAddrLocationMap* map,
740 const void* compile_info);
741
742typedef void (JNICALL *jvmtiEventCompiledMethodUnload)
743 (jvmtiEnv *jvmti_env,
744 jmethodID method,
745 const void* code_addr);
746
747typedef void (JNICALL *jvmtiEventDataDumpRequest)
748 (jvmtiEnv *jvmti_env);
749
750typedef void (JNICALL *jvmtiEventDynamicCodeGenerated)
751 (jvmtiEnv *jvmti_env,
752 const char* name,
753 const void* address,
754 jint length);
755
756typedef void (JNICALL *jvmtiEventException)
757 (jvmtiEnv *jvmti_env,
758 JNIEnv* jni_env,
759 jthread thread,
760 jmethodID method,
761 jlocation location,
762 jobject exception,
763 jmethodID catch_method,
764 jlocation catch_location);
765
766typedef void (JNICALL *jvmtiEventExceptionCatch)
767 (jvmtiEnv *jvmti_env,
768 JNIEnv* jni_env,
769 jthread thread,
770 jmethodID method,
771 jlocation location,
772 jobject exception);
773
774typedef void (JNICALL *jvmtiEventFieldAccess)
775 (jvmtiEnv *jvmti_env,
776 JNIEnv* jni_env,
777 jthread thread,
778 jmethodID method,
779 jlocation location,
780 jclass field_klass,
781 jobject object,
782 jfieldID field);
783
784typedef void (JNICALL *jvmtiEventFieldModification)
785 (jvmtiEnv *jvmti_env,
786 JNIEnv* jni_env,
787 jthread thread,
788 jmethodID method,
789 jlocation location,
790 jclass field_klass,
791 jobject object,
792 jfieldID field,
793 char signature_type,
794 jvalue new_value);
795
796typedef void (JNICALL *jvmtiEventFramePop)
797 (jvmtiEnv *jvmti_env,
798 JNIEnv* jni_env,
799 jthread thread,
800 jmethodID method,
801 jboolean was_popped_by_exception);
802
803typedef void (JNICALL *jvmtiEventGarbageCollectionFinish)
804 (jvmtiEnv *jvmti_env);
805
806typedef void (JNICALL *jvmtiEventGarbageCollectionStart)
807 (jvmtiEnv *jvmti_env);
808
809typedef void (JNICALL *jvmtiEventMethodEntry)
810 (jvmtiEnv *jvmti_env,
811 JNIEnv* jni_env,
812 jthread thread,
813 jmethodID method);
814
815typedef void (JNICALL *jvmtiEventMethodExit)
816 (jvmtiEnv *jvmti_env,
817 JNIEnv* jni_env,
818 jthread thread,
819 jmethodID method,
820 jboolean was_popped_by_exception,
821 jvalue return_value);
822
823typedef void (JNICALL *jvmtiEventMonitorContendedEnter)
824 (jvmtiEnv *jvmti_env,
825 JNIEnv* jni_env,
826 jthread thread,
827 jobject object);
828
829typedef void (JNICALL *jvmtiEventMonitorContendedEntered)
830 (jvmtiEnv *jvmti_env,
831 JNIEnv* jni_env,
832 jthread thread,
833 jobject object);
834
835typedef void (JNICALL *jvmtiEventMonitorWait)
836 (jvmtiEnv *jvmti_env,
837 JNIEnv* jni_env,
838 jthread thread,
839 jobject object,
840 jlong timeout);
841
842typedef void (JNICALL *jvmtiEventMonitorWaited)
843 (jvmtiEnv *jvmti_env,
844 JNIEnv* jni_env,
845 jthread thread,
846 jobject object,
847 jboolean timed_out);
848
849typedef void (JNICALL *jvmtiEventNativeMethodBind)
850 (jvmtiEnv *jvmti_env,
851 JNIEnv* jni_env,
852 jthread thread,
853 jmethodID method,
854 void* address,
855 void** new_address_ptr);
856
857typedef void (JNICALL *jvmtiEventObjectFree)
858 (jvmtiEnv *jvmti_env,
859 jlong tag);
860
861typedef void (JNICALL *jvmtiEventResourceExhausted)
862 (jvmtiEnv *jvmti_env,
863 JNIEnv* jni_env,
864 jint flags,
865 const void* reserved,
866 const char* description);
867
868typedef void (JNICALL *jvmtiEventSingleStep)
869 (jvmtiEnv *jvmti_env,
870 JNIEnv* jni_env,
871 jthread thread,
872 jmethodID method,
873 jlocation location);
874
875typedef void (JNICALL *jvmtiEventThreadEnd)
876 (jvmtiEnv *jvmti_env,
877 JNIEnv* jni_env,
878 jthread thread);
879
880typedef void (JNICALL *jvmtiEventThreadStart)
881 (jvmtiEnv *jvmti_env,
882 JNIEnv* jni_env,
883 jthread thread);
884
885typedef void (JNICALL *jvmtiEventVMDeath)
886 (jvmtiEnv *jvmti_env,
887 JNIEnv* jni_env);
888
889typedef void (JNICALL *jvmtiEventVMInit)
890 (jvmtiEnv *jvmti_env,
891 JNIEnv* jni_env,
892 jthread thread);
893
894typedef void (JNICALL *jvmtiEventVMObjectAlloc)
895 (jvmtiEnv *jvmti_env,
896 JNIEnv* jni_env,
897 jthread thread,
898 jobject object,
899 jclass object_klass,
900 jlong size);
901
902typedef void (JNICALL *jvmtiEventVMStart)
903 (jvmtiEnv *jvmti_env,
904 JNIEnv* jni_env);
905
906 /* Event Callback Structure */
907
908typedef struct {
909 /* 50 : VM Initialization Event */
910 jvmtiEventVMInit VMInit;
911 /* 51 : VM Death Event */
912 jvmtiEventVMDeath VMDeath;
913 /* 52 : Thread Start */
914 jvmtiEventThreadStart ThreadStart;
915 /* 53 : Thread End */
916 jvmtiEventThreadEnd ThreadEnd;
917 /* 54 : Class File Load Hook */
918 jvmtiEventClassFileLoadHook ClassFileLoadHook;
919 /* 55 : Class Load */
920 jvmtiEventClassLoad ClassLoad;
921 /* 56 : Class Prepare */
922 jvmtiEventClassPrepare ClassPrepare;
923 /* 57 : VM Start Event */
924 jvmtiEventVMStart VMStart;
925 /* 58 : Exception */
926 jvmtiEventException Exception;
927 /* 59 : Exception Catch */
928 jvmtiEventExceptionCatch ExceptionCatch;
929 /* 60 : Single Step */
930 jvmtiEventSingleStep SingleStep;
931 /* 61 : Frame Pop */
932 jvmtiEventFramePop FramePop;
933 /* 62 : Breakpoint */
934 jvmtiEventBreakpoint Breakpoint;
935 /* 63 : Field Access */
936 jvmtiEventFieldAccess FieldAccess;
937 /* 64 : Field Modification */
938 jvmtiEventFieldModification FieldModification;
939 /* 65 : Method Entry */
940 jvmtiEventMethodEntry MethodEntry;
941 /* 66 : Method Exit */
942 jvmtiEventMethodExit MethodExit;
943 /* 67 : Native Method Bind */
944 jvmtiEventNativeMethodBind NativeMethodBind;
945 /* 68 : Compiled Method Load */
946 jvmtiEventCompiledMethodLoad CompiledMethodLoad;
947 /* 69 : Compiled Method Unload */
948 jvmtiEventCompiledMethodUnload CompiledMethodUnload;
949 /* 70 : Dynamic Code Generated */
950 jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
951 /* 71 : Data Dump Request */
952 jvmtiEventDataDumpRequest DataDumpRequest;
953 /* 72 */
954 jvmtiEventReserved reserved72;
955 /* 73 : Monitor Wait */
956 jvmtiEventMonitorWait MonitorWait;
957 /* 74 : Monitor Waited */
958 jvmtiEventMonitorWaited MonitorWaited;
959 /* 75 : Monitor Contended Enter */
960 jvmtiEventMonitorContendedEnter MonitorContendedEnter;
961 /* 76 : Monitor Contended Entered */
962 jvmtiEventMonitorContendedEntered MonitorContendedEntered;
963 /* 77 */
964 jvmtiEventReserved reserved77;
965 /* 78 */
966 jvmtiEventReserved reserved78;
967 /* 79 */
968 jvmtiEventReserved reserved79;
969 /* 80 : Resource Exhausted */
970 jvmtiEventResourceExhausted ResourceExhausted;
971 /* 81 : Garbage Collection Start */
972 jvmtiEventGarbageCollectionStart GarbageCollectionStart;
973 /* 82 : Garbage Collection Finish */
974 jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
975 /* 83 : Object Free */
976 jvmtiEventObjectFree ObjectFree;
977 /* 84 : VM Object Allocation */
978 jvmtiEventVMObjectAlloc VMObjectAlloc;
979} jvmtiEventCallbacks;
980
981
982 /* Function Interface */
983
984typedef struct jvmtiInterface_1_ {
985
986 /* 1 : RESERVED */
987 void *reserved1;
988
989 /* 2 : Set Event Notification Mode */
990 jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env,
991 jvmtiEventMode mode,
992 jvmtiEvent event_type,
993 jthread event_thread,
994 ...);
995
996 /* 3 : RESERVED */
997 void *reserved3;
998
999 /* 4 : Get All Threads */
1000 jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env,
1001 jint* threads_count_ptr,
1002 jthread** threads_ptr);
1003
1004 /* 5 : Suspend Thread */
1005 jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env,
1006 jthread thread);
1007
1008 /* 6 : Resume Thread */
1009 jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env,
1010 jthread thread);
1011
1012 /* 7 : Stop Thread */
1013 jvmtiError (JNICALL *StopThread) (jvmtiEnv* env,
1014 jthread thread,
1015 jobject exception);
1016
1017 /* 8 : Interrupt Thread */
1018 jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env,
1019 jthread thread);
1020
1021 /* 9 : Get Thread Info */
1022 jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env,
1023 jthread thread,
1024 jvmtiThreadInfo* info_ptr);
1025
1026 /* 10 : Get Owned Monitor Info */
1027 jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env,
1028 jthread thread,
1029 jint* owned_monitor_count_ptr,
1030 jobject** owned_monitors_ptr);
1031
1032 /* 11 : Get Current Contended Monitor */
1033 jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env,
1034 jthread thread,
1035 jobject* monitor_ptr);
1036
1037 /* 12 : Run Agent Thread */
1038 jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env,
1039 jthread thread,
1040 jvmtiStartFunction proc,
1041 const void* arg,
1042 jint priority);
1043
1044 /* 13 : Get Top Thread Groups */
1045 jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env,
1046 jint* group_count_ptr,
1047 jthreadGroup** groups_ptr);
1048
1049 /* 14 : Get Thread Group Info */
1050 jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env,
1051 jthreadGroup group,
1052 jvmtiThreadGroupInfo* info_ptr);
1053
1054 /* 15 : Get Thread Group Children */
1055 jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env,
1056 jthreadGroup group,
1057 jint* thread_count_ptr,
1058 jthread** threads_ptr,
1059 jint* group_count_ptr,
1060 jthreadGroup** groups_ptr);
1061
1062 /* 16 : Get Frame Count */
1063 jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env,
1064 jthread thread,
1065 jint* count_ptr);
1066
1067 /* 17 : Get Thread State */
1068 jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env,
1069 jthread thread,
1070 jint* thread_state_ptr);
1071
1072 /* 18 : Get Current Thread */
1073 jvmtiError (JNICALL *GetCurrentThread) (jvmtiEnv* env,
1074 jthread* thread_ptr);
1075
1076 /* 19 : Get Frame Location */
1077 jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env,
1078 jthread thread,
1079 jint depth,
1080 jmethodID* method_ptr,
1081 jlocation* location_ptr);
1082
1083 /* 20 : Notify Frame Pop */
1084 jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env,
1085 jthread thread,
1086 jint depth);
1087
1088 /* 21 : Get Local Variable - Object */
1089 jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env,
1090 jthread thread,
1091 jint depth,
1092 jint slot,
1093 jobject* value_ptr);
1094
1095 /* 22 : Get Local Variable - Int */
1096 jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env,
1097 jthread thread,
1098 jint depth,
1099 jint slot,
1100 jint* value_ptr);
1101
1102 /* 23 : Get Local Variable - Long */
1103 jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv* env,
1104 jthread thread,
1105 jint depth,
1106 jint slot,
1107 jlong* value_ptr);
1108
1109 /* 24 : Get Local Variable - Float */
1110 jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv* env,
1111 jthread thread,
1112 jint depth,
1113 jint slot,
1114 jfloat* value_ptr);
1115
1116 /* 25 : Get Local Variable - Double */
1117 jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv* env,
1118 jthread thread,
1119 jint depth,
1120 jint slot,
1121 jdouble* value_ptr);
1122
1123 /* 26 : Set Local Variable - Object */
1124 jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv* env,
1125 jthread thread,
1126 jint depth,
1127 jint slot,
1128 jobject value);
1129
1130 /* 27 : Set Local Variable - Int */
1131 jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv* env,
1132 jthread thread,
1133 jint depth,
1134 jint slot,
1135 jint value);
1136
1137 /* 28 : Set Local Variable - Long */
1138 jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv* env,
1139 jthread thread,
1140 jint depth,
1141 jint slot,
1142 jlong value);
1143
1144 /* 29 : Set Local Variable - Float */
1145 jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv* env,
1146 jthread thread,
1147 jint depth,
1148 jint slot,
1149 jfloat value);
1150
1151 /* 30 : Set Local Variable - Double */
1152 jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv* env,
1153 jthread thread,
1154 jint depth,
1155 jint slot,
1156 jdouble value);
1157
1158 /* 31 : Create Raw Monitor */
1159 jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv* env,
1160 const char* name,
1161 jrawMonitorID* monitor_ptr);
1162
1163 /* 32 : Destroy Raw Monitor */
1164 jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv* env,
1165 jrawMonitorID monitor);
1166
1167 /* 33 : Raw Monitor Enter */
1168 jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv* env,
1169 jrawMonitorID monitor);
1170
1171 /* 34 : Raw Monitor Exit */
1172 jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv* env,
1173 jrawMonitorID monitor);
1174
1175 /* 35 : Raw Monitor Wait */
1176 jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv* env,
1177 jrawMonitorID monitor,
1178 jlong millis);
1179
1180 /* 36 : Raw Monitor Notify */
1181 jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv* env,
1182 jrawMonitorID monitor);
1183
1184 /* 37 : Raw Monitor Notify All */
1185 jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv* env,
1186 jrawMonitorID monitor);
1187
1188 /* 38 : Set Breakpoint */
1189 jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv* env,
1190 jmethodID method,
1191 jlocation location);
1192
1193 /* 39 : Clear Breakpoint */
1194 jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv* env,
1195 jmethodID method,
1196 jlocation location);
1197
1198 /* 40 : RESERVED */
1199 void *reserved40;
1200
1201 /* 41 : Set Field Access Watch */
1202 jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv* env,
1203 jclass klass,
1204 jfieldID field);
1205
1206 /* 42 : Clear Field Access Watch */
1207 jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv* env,
1208 jclass klass,
1209 jfieldID field);
1210
1211 /* 43 : Set Field Modification Watch */
1212 jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv* env,
1213 jclass klass,
1214 jfieldID field);
1215
1216 /* 44 : Clear Field Modification Watch */
1217 jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv* env,
1218 jclass klass,
1219 jfieldID field);
1220
1221 /* 45 : Is Modifiable Class */
1222 jvmtiError (JNICALL *IsModifiableClass) (jvmtiEnv* env,
1223 jclass klass,
1224 jboolean* is_modifiable_class_ptr);
1225
1226 /* 46 : Allocate */
1227 jvmtiError (JNICALL *Allocate) (jvmtiEnv* env,
1228 jlong size,
1229 unsigned char** mem_ptr);
1230
1231 /* 47 : Deallocate */
1232 jvmtiError (JNICALL *Deallocate) (jvmtiEnv* env,
1233 unsigned char* mem);
1234
1235 /* 48 : Get Class Signature */
1236 jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv* env,
1237 jclass klass,
1238 char** signature_ptr,
1239 char** generic_ptr);
1240
1241 /* 49 : Get Class Status */
1242 jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv* env,
1243 jclass klass,
1244 jint* status_ptr);
1245
1246 /* 50 : Get Source File Name */
1247 jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv* env,
1248 jclass klass,
1249 char** source_name_ptr);
1250
1251 /* 51 : Get Class Modifiers */
1252 jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv* env,
1253 jclass klass,
1254 jint* modifiers_ptr);
1255
1256 /* 52 : Get Class Methods */
1257 jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv* env,
1258 jclass klass,
1259 jint* method_count_ptr,
1260 jmethodID** methods_ptr);
1261
1262 /* 53 : Get Class Fields */
1263 jvmtiError (JNICALL *GetClassFields) (jvmtiEnv* env,
1264 jclass klass,
1265 jint* field_count_ptr,
1266 jfieldID** fields_ptr);
1267
1268 /* 54 : Get Implemented Interfaces */
1269 jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv* env,
1270 jclass klass,
1271 jint* interface_count_ptr,
1272 jclass** interfaces_ptr);
1273
1274 /* 55 : Is Interface */
1275 jvmtiError (JNICALL *IsInterface) (jvmtiEnv* env,
1276 jclass klass,
1277 jboolean* is_interface_ptr);
1278
1279 /* 56 : Is Array Class */
1280 jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv* env,
1281 jclass klass,
1282 jboolean* is_array_class_ptr);
1283
1284 /* 57 : Get Class Loader */
1285 jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv* env,
1286 jclass klass,
1287 jobject* classloader_ptr);
1288
1289 /* 58 : Get Object Hash Code */
1290 jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv* env,
1291 jobject object,
1292 jint* hash_code_ptr);
1293
1294 /* 59 : Get Object Monitor Usage */
1295 jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv* env,
1296 jobject object,
1297 jvmtiMonitorUsage* info_ptr);
1298
1299 /* 60 : Get Field Name (and Signature) */
1300 jvmtiError (JNICALL *GetFieldName) (jvmtiEnv* env,
1301 jclass klass,
1302 jfieldID field,
1303 char** name_ptr,
1304 char** signature_ptr,
1305 char** generic_ptr);
1306
1307 /* 61 : Get Field Declaring Class */
1308 jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv* env,
1309 jclass klass,
1310 jfieldID field,
1311 jclass* declaring_class_ptr);
1312
1313 /* 62 : Get Field Modifiers */
1314 jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv* env,
1315 jclass klass,
1316 jfieldID field,
1317 jint* modifiers_ptr);
1318
1319 /* 63 : Is Field Synthetic */
1320 jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv* env,
1321 jclass klass,
1322 jfieldID field,
1323 jboolean* is_synthetic_ptr);
1324
1325 /* 64 : Get Method Name (and Signature) */
1326 jvmtiError (JNICALL *GetMethodName) (jvmtiEnv* env,
1327 jmethodID method,
1328 char** name_ptr,
1329 char** signature_ptr,
1330 char** generic_ptr);
1331
1332 /* 65 : Get Method Declaring Class */
1333 jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv* env,
1334 jmethodID method,
1335 jclass* declaring_class_ptr);
1336
1337 /* 66 : Get Method Modifiers */
1338 jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv* env,
1339 jmethodID method,
1340 jint* modifiers_ptr);
1341
1342 /* 67 : RESERVED */
1343 void *reserved67;
1344
1345 /* 68 : Get Max Locals */
1346 jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv* env,
1347 jmethodID method,
1348 jint* max_ptr);
1349
1350 /* 69 : Get Arguments Size */
1351 jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv* env,
1352 jmethodID method,
1353 jint* size_ptr);
1354
1355 /* 70 : Get Line Number Table */
1356 jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv* env,
1357 jmethodID method,
1358 jint* entry_count_ptr,
1359 jvmtiLineNumberEntry** table_ptr);
1360
1361 /* 71 : Get Method Location */
1362 jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv* env,
1363 jmethodID method,
1364 jlocation* start_location_ptr,
1365 jlocation* end_location_ptr);
1366
1367 /* 72 : Get Local Variable Table */
1368 jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv* env,
1369 jmethodID method,
1370 jint* entry_count_ptr,
1371 jvmtiLocalVariableEntry** table_ptr);
1372
1373 /* 73 : Set Native Method Prefix */
1374 jvmtiError (JNICALL *SetNativeMethodPrefix) (jvmtiEnv* env,
1375 const char* prefix);
1376
1377 /* 74 : Set Native Method Prefixes */
1378 jvmtiError (JNICALL *SetNativeMethodPrefixes) (jvmtiEnv* env,
1379 jint prefix_count,
1380 char** prefixes);
1381
1382 /* 75 : Get Bytecodes */
1383 jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv* env,
1384 jmethodID method,
1385 jint* bytecode_count_ptr,
1386 unsigned char** bytecodes_ptr);
1387
1388 /* 76 : Is Method Native */
1389 jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv* env,
1390 jmethodID method,
1391 jboolean* is_native_ptr);
1392
1393 /* 77 : Is Method Synthetic */
1394 jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv* env,
1395 jmethodID method,
1396 jboolean* is_synthetic_ptr);
1397
1398 /* 78 : Get Loaded Classes */
1399 jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv* env,
1400 jint* class_count_ptr,
1401 jclass** classes_ptr);
1402
1403 /* 79 : Get Classloader Classes */
1404 jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv* env,
1405 jobject initiating_loader,
1406 jint* class_count_ptr,
1407 jclass** classes_ptr);
1408
1409 /* 80 : Pop Frame */
1410 jvmtiError (JNICALL *PopFrame) (jvmtiEnv* env,
1411 jthread thread);
1412
1413 /* 81 : Force Early Return - Object */
1414 jvmtiError (JNICALL *ForceEarlyReturnObject) (jvmtiEnv* env,
1415 jthread thread,
1416 jobject value);
1417
1418 /* 82 : Force Early Return - Int */
1419 jvmtiError (JNICALL *ForceEarlyReturnInt) (jvmtiEnv* env,
1420 jthread thread,
1421 jint value);
1422
1423 /* 83 : Force Early Return - Long */
1424 jvmtiError (JNICALL *ForceEarlyReturnLong) (jvmtiEnv* env,
1425 jthread thread,
1426 jlong value);
1427
1428 /* 84 : Force Early Return - Float */
1429 jvmtiError (JNICALL *ForceEarlyReturnFloat) (jvmtiEnv* env,
1430 jthread thread,
1431 jfloat value);
1432
1433 /* 85 : Force Early Return - Double */
1434 jvmtiError (JNICALL *ForceEarlyReturnDouble) (jvmtiEnv* env,
1435 jthread thread,
1436 jdouble value);
1437
1438 /* 86 : Force Early Return - Void */
1439 jvmtiError (JNICALL *ForceEarlyReturnVoid) (jvmtiEnv* env,
1440 jthread thread);
1441
1442 /* 87 : Redefine Classes */
1443 jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv* env,
1444 jint class_count,
1445 const jvmtiClassDefinition* class_definitions);
1446
1447 /* 88 : Get Version Number */
1448 jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv* env,
1449 jint* version_ptr);
1450
1451 /* 89 : Get Capabilities */
1452 jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv* env,
1453 jvmtiCapabilities* capabilities_ptr);
1454
1455 /* 90 : Get Source Debug Extension */
1456 jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv* env,
1457 jclass klass,
1458 char** source_debug_extension_ptr);
1459
1460 /* 91 : Is Method Obsolete */
1461 jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv* env,
1462 jmethodID method,
1463 jboolean* is_obsolete_ptr);
1464
1465 /* 92 : Suspend Thread List */
1466 jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv* env,
1467 jint request_count,
1468 const jthread* request_list,
1469 jvmtiError* results);
1470
1471 /* 93 : Resume Thread List */
1472 jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv* env,
1473 jint request_count,
1474 const jthread* request_list,
1475 jvmtiError* results);
1476
1477 /* 94 : RESERVED */
1478 void *reserved94;
1479
1480 /* 95 : RESERVED */
1481 void *reserved95;
1482
1483 /* 96 : RESERVED */
1484 void *reserved96;
1485
1486 /* 97 : RESERVED */
1487 void *reserved97;
1488
1489 /* 98 : RESERVED */
1490 void *reserved98;
1491
1492 /* 99 : RESERVED */
1493 void *reserved99;
1494
1495 /* 100 : Get All Stack Traces */
1496 jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv* env,
1497 jint max_frame_count,
1498 jvmtiStackInfo** stack_info_ptr,
1499 jint* thread_count_ptr);
1500
1501 /* 101 : Get Thread List Stack Traces */
1502 jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv* env,
1503 jint thread_count,
1504 const jthread* thread_list,
1505 jint max_frame_count,
1506 jvmtiStackInfo** stack_info_ptr);
1507
1508 /* 102 : Get Thread Local Storage */
1509 jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv* env,
1510 jthread thread,
1511 void** data_ptr);
1512
1513 /* 103 : Set Thread Local Storage */
1514 jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv* env,
1515 jthread thread,
1516 const void* data);
1517
1518 /* 104 : Get Stack Trace */
1519 jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv* env,
1520 jthread thread,
1521 jint start_depth,
1522 jint max_frame_count,
1523 jvmtiFrameInfo* frame_buffer,
1524 jint* count_ptr);
1525
1526 /* 105 : RESERVED */
1527 void *reserved105;
1528
1529 /* 106 : Get Tag */
1530 jvmtiError (JNICALL *GetTag) (jvmtiEnv* env,
1531 jobject object,
1532 jlong* tag_ptr);
1533
1534 /* 107 : Set Tag */
1535 jvmtiError (JNICALL *SetTag) (jvmtiEnv* env,
1536 jobject object,
1537 jlong tag);
1538
1539 /* 108 : Force Garbage Collection */
1540 jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv* env);
1541
1542 /* 109 : Iterate Over Objects Reachable From Object */
1543 jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv* env,
1544 jobject object,
1545 jvmtiObjectReferenceCallback object_reference_callback,
1546 const void* user_data);
1547
1548 /* 110 : Iterate Over Reachable Objects */
1549 jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv* env,
1550 jvmtiHeapRootCallback heap_root_callback,
1551 jvmtiStackReferenceCallback stack_ref_callback,
1552 jvmtiObjectReferenceCallback object_ref_callback,
1553 const void* user_data);
1554
1555 /* 111 : Iterate Over Heap */
1556 jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv* env,
1557 jvmtiHeapObjectFilter object_filter,
1558 jvmtiHeapObjectCallback heap_object_callback,
1559 const void* user_data);
1560
1561 /* 112 : Iterate Over Instances Of Class */
1562 jvmtiError (JNICALL *IterateOverInstancesOfClass) (jvmtiEnv* env,
1563 jclass klass,
1564 jvmtiHeapObjectFilter object_filter,
1565 jvmtiHeapObjectCallback heap_object_callback,
1566 const void* user_data);
1567
1568 /* 113 : RESERVED */
1569 void *reserved113;
1570
1571 /* 114 : Get Objects With Tags */
1572 jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv* env,
1573 jint tag_count,
1574 const jlong* tags,
1575 jint* count_ptr,
1576 jobject** object_result_ptr,
1577 jlong** tag_result_ptr);
1578
1579 /* 115 : Follow References */
1580 jvmtiError (JNICALL *FollowReferences) (jvmtiEnv* env,
1581 jint heap_filter,
1582 jclass klass,
1583 jobject initial_object,
1584 const jvmtiHeapCallbacks* callbacks,
1585 const void* user_data);
1586
1587 /* 116 : Iterate Through Heap */
1588 jvmtiError (JNICALL *IterateThroughHeap) (jvmtiEnv* env,
1589 jint heap_filter,
1590 jclass klass,
1591 const jvmtiHeapCallbacks* callbacks,
1592 const void* user_data);
1593
1594 /* 117 : RESERVED */
1595 void *reserved117;
1596
1597 /* 118 : RESERVED */
1598 void *reserved118;
1599
1600 /* 119 : RESERVED */
1601 void *reserved119;
1602
1603 /* 120 : Set JNI Function Table */
1604 jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv* env,
1605 const jniNativeInterface* function_table);
1606
1607 /* 121 : Get JNI Function Table */
1608 jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv* env,
1609 jniNativeInterface** function_table);
1610
1611 /* 122 : Set Event Callbacks */
1612 jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv* env,
1613 const jvmtiEventCallbacks* callbacks,
1614 jint size_of_callbacks);
1615
1616 /* 123 : Generate Events */
1617 jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv* env,
1618 jvmtiEvent event_type);
1619
1620 /* 124 : Get Extension Functions */
1621 jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv* env,
1622 jint* extension_count_ptr,
1623 jvmtiExtensionFunctionInfo** extensions);
1624
1625 /* 125 : Get Extension Events */
1626 jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv* env,
1627 jint* extension_count_ptr,
1628 jvmtiExtensionEventInfo** extensions);
1629
1630 /* 126 : Set Extension Event Callback */
1631 jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv* env,
1632 jint extension_event_index,
1633 jvmtiExtensionEvent callback);
1634
1635 /* 127 : Dispose Environment */
1636 jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv* env);
1637
1638 /* 128 : Get Error Name */
1639 jvmtiError (JNICALL *GetErrorName) (jvmtiEnv* env,
1640 jvmtiError error,
1641 char** name_ptr);
1642
1643 /* 129 : Get JLocation Format */
1644 jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv* env,
1645 jvmtiJlocationFormat* format_ptr);
1646
1647 /* 130 : Get System Properties */
1648 jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv* env,
1649 jint* count_ptr,
1650 char*** property_ptr);
1651
1652 /* 131 : Get System Property */
1653 jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv* env,
1654 const char* property,
1655 char** value_ptr);
1656
1657 /* 132 : Set System Property */
1658 jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv* env,
1659 const char* property,
1660 const char* value);
1661
1662 /* 133 : Get Phase */
1663 jvmtiError (JNICALL *GetPhase) (jvmtiEnv* env,
1664 jvmtiPhase* phase_ptr);
1665
1666 /* 134 : Get Current Thread CPU Timer Information */
1667 jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv* env,
1668 jvmtiTimerInfo* info_ptr);
1669
1670 /* 135 : Get Current Thread CPU Time */
1671 jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv* env,
1672 jlong* nanos_ptr);
1673
1674 /* 136 : Get Thread CPU Timer Information */
1675 jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv* env,
1676 jvmtiTimerInfo* info_ptr);
1677
1678 /* 137 : Get Thread CPU Time */
1679 jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv* env,
1680 jthread thread,
1681 jlong* nanos_ptr);
1682
1683 /* 138 : Get Timer Information */
1684 jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv* env,
1685 jvmtiTimerInfo* info_ptr);
1686
1687 /* 139 : Get Time */
1688 jvmtiError (JNICALL *GetTime) (jvmtiEnv* env,
1689 jlong* nanos_ptr);
1690
1691 /* 140 : Get Potential Capabilities */
1692 jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv* env,
1693 jvmtiCapabilities* capabilities_ptr);
1694
1695 /* 141 : RESERVED */
1696 void *reserved141;
1697
1698 /* 142 : Add Capabilities */
1699 jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv* env,
1700 const jvmtiCapabilities* capabilities_ptr);
1701
1702 /* 143 : Relinquish Capabilities */
1703 jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv* env,
1704 const jvmtiCapabilities* capabilities_ptr);
1705
1706 /* 144 : Get Available Processors */
1707 jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv* env,
1708 jint* processor_count_ptr);
1709
1710 /* 145 : Get Class Version Numbers */
1711 jvmtiError (JNICALL *GetClassVersionNumbers) (jvmtiEnv* env,
1712 jclass klass,
1713 jint* minor_version_ptr,
1714 jint* major_version_ptr);
1715
1716 /* 146 : Get Constant Pool */
1717 jvmtiError (JNICALL *GetConstantPool) (jvmtiEnv* env,
1718 jclass klass,
1719 jint* constant_pool_count_ptr,
1720 jint* constant_pool_byte_count_ptr,
1721 unsigned char** constant_pool_bytes_ptr);
1722
1723 /* 147 : Get Environment Local Storage */
1724 jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv* env,
1725 void** data_ptr);
1726
1727 /* 148 : Set Environment Local Storage */
1728 jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv* env,
1729 const void* data);
1730
1731 /* 149 : Add To Bootstrap Class Loader Search */
1732 jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv* env,
1733 const char* segment);
1734
1735 /* 150 : Set Verbose Flag */
1736 jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv* env,
1737 jvmtiVerboseFlag flag,
1738 jboolean value);
1739
1740 /* 151 : Add To System Class Loader Search */
1741 jvmtiError (JNICALL *AddToSystemClassLoaderSearch) (jvmtiEnv* env,
1742 const char* segment);
1743
1744 /* 152 : Retransform Classes */
1745 jvmtiError (JNICALL *RetransformClasses) (jvmtiEnv* env,
1746 jint class_count,
1747 const jclass* classes);
1748
1749 /* 153 : Get Owned Monitor Stack Depth Info */
1750 jvmtiError (JNICALL *GetOwnedMonitorStackDepthInfo) (jvmtiEnv* env,
1751 jthread thread,
1752 jint* monitor_info_count_ptr,
1753 jvmtiMonitorStackDepthInfo** monitor_info_ptr);
1754
1755 /* 154 : Get Object Size */
1756 jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv* env,
1757 jobject object,
1758 jlong* size_ptr);
1759
1760} jvmtiInterface_1;
1761
1762struct _jvmtiEnv {
1763 const struct jvmtiInterface_1_ *functions;
1764#ifdef __cplusplus
1765
1766
1767 jvmtiError Allocate(jlong size,
1768 unsigned char** mem_ptr) {
1769 return functions->Allocate(this, size, mem_ptr);
1770 }
1771
1772 jvmtiError Deallocate(unsigned char* mem) {
1773 return functions->Deallocate(this, mem);
1774 }
1775
1776 jvmtiError GetThreadState(jthread thread,
1777 jint* thread_state_ptr) {
1778 return functions->GetThreadState(this, thread, thread_state_ptr);
1779 }
1780
1781 jvmtiError GetCurrentThread(jthread* thread_ptr) {
1782 return functions->GetCurrentThread(this, thread_ptr);
1783 }
1784
1785 jvmtiError GetAllThreads(jint* threads_count_ptr,
1786 jthread** threads_ptr) {
1787 return functions->GetAllThreads(this, threads_count_ptr, threads_ptr);
1788 }
1789
1790 jvmtiError SuspendThread(jthread thread) {
1791 return functions->SuspendThread(this, thread);
1792 }
1793
1794 jvmtiError SuspendThreadList(jint request_count,
1795 const jthread* request_list,
1796 jvmtiError* results) {
1797 return functions->SuspendThreadList(this, request_count, request_list, results);
1798 }
1799
1800 jvmtiError ResumeThread(jthread thread) {
1801 return functions->ResumeThread(this, thread);
1802 }
1803
1804 jvmtiError ResumeThreadList(jint request_count,
1805 const jthread* request_list,
1806 jvmtiError* results) {
1807 return functions->ResumeThreadList(this, request_count, request_list, results);
1808 }
1809
1810 jvmtiError StopThread(jthread thread,
1811 jobject exception) {
1812 return functions->StopThread(this, thread, exception);
1813 }
1814
1815 jvmtiError InterruptThread(jthread thread) {
1816 return functions->InterruptThread(this, thread);
1817 }
1818
1819 jvmtiError GetThreadInfo(jthread thread,
1820 jvmtiThreadInfo* info_ptr) {
1821 return functions->GetThreadInfo(this, thread, info_ptr);
1822 }
1823
1824 jvmtiError GetOwnedMonitorInfo(jthread thread,
1825 jint* owned_monitor_count_ptr,
1826 jobject** owned_monitors_ptr) {
1827 return functions->GetOwnedMonitorInfo(this, thread, owned_monitor_count_ptr, owned_monitors_ptr);
1828 }
1829
1830 jvmtiError GetOwnedMonitorStackDepthInfo(jthread thread,
1831 jint* monitor_info_count_ptr,
1832 jvmtiMonitorStackDepthInfo** monitor_info_ptr) {
1833 return functions->GetOwnedMonitorStackDepthInfo(this, thread, monitor_info_count_ptr, monitor_info_ptr);
1834 }
1835
1836 jvmtiError GetCurrentContendedMonitor(jthread thread,
1837 jobject* monitor_ptr) {
1838 return functions->GetCurrentContendedMonitor(this, thread, monitor_ptr);
1839 }
1840
1841 jvmtiError RunAgentThread(jthread thread,
1842 jvmtiStartFunction proc,
1843 const void* arg,
1844 jint priority) {
1845 return functions->RunAgentThread(this, thread, proc, arg, priority);
1846 }
1847
1848 jvmtiError SetThreadLocalStorage(jthread thread,
1849 const void* data) {
1850 return functions->SetThreadLocalStorage(this, thread, data);
1851 }
1852
1853 jvmtiError GetThreadLocalStorage(jthread thread,
1854 void** data_ptr) {
1855 return functions->GetThreadLocalStorage(this, thread, data_ptr);
1856 }
1857
1858 jvmtiError GetTopThreadGroups(jint* group_count_ptr,
1859 jthreadGroup** groups_ptr) {
1860 return functions->GetTopThreadGroups(this, group_count_ptr, groups_ptr);
1861 }
1862
1863 jvmtiError GetThreadGroupInfo(jthreadGroup group,
1864 jvmtiThreadGroupInfo* info_ptr) {
1865 return functions->GetThreadGroupInfo(this, group, info_ptr);
1866 }
1867
1868 jvmtiError GetThreadGroupChildren(jthreadGroup group,
1869 jint* thread_count_ptr,
1870 jthread** threads_ptr,
1871 jint* group_count_ptr,
1872 jthreadGroup** groups_ptr) {
1873 return functions->GetThreadGroupChildren(this, group, thread_count_ptr, threads_ptr, group_count_ptr, groups_ptr);
1874 }
1875
1876 jvmtiError GetStackTrace(jthread thread,
1877 jint start_depth,
1878 jint max_frame_count,
1879 jvmtiFrameInfo* frame_buffer,
1880 jint* count_ptr) {
1881 return functions->GetStackTrace(this, thread, start_depth, max_frame_count, frame_buffer, count_ptr);
1882 }
1883
1884 jvmtiError GetAllStackTraces(jint max_frame_count,
1885 jvmtiStackInfo** stack_info_ptr,
1886 jint* thread_count_ptr) {
1887 return functions->GetAllStackTraces(this, max_frame_count, stack_info_ptr, thread_count_ptr);
1888 }
1889
1890 jvmtiError GetThreadListStackTraces(jint thread_count,
1891 const jthread* thread_list,
1892 jint max_frame_count,
1893 jvmtiStackInfo** stack_info_ptr) {
1894 return functions->GetThreadListStackTraces(this, thread_count, thread_list, max_frame_count, stack_info_ptr);
1895 }
1896
1897 jvmtiError GetFrameCount(jthread thread,
1898 jint* count_ptr) {
1899 return functions->GetFrameCount(this, thread, count_ptr);
1900 }
1901
1902 jvmtiError PopFrame(jthread thread) {
1903 return functions->PopFrame(this, thread);
1904 }
1905
1906 jvmtiError GetFrameLocation(jthread thread,
1907 jint depth,
1908 jmethodID* method_ptr,
1909 jlocation* location_ptr) {
1910 return functions->GetFrameLocation(this, thread, depth, method_ptr, location_ptr);
1911 }
1912
1913 jvmtiError NotifyFramePop(jthread thread,
1914 jint depth) {
1915 return functions->NotifyFramePop(this, thread, depth);
1916 }
1917
1918 jvmtiError ForceEarlyReturnObject(jthread thread,
1919 jobject value) {
1920 return functions->ForceEarlyReturnObject(this, thread, value);
1921 }
1922
1923 jvmtiError ForceEarlyReturnInt(jthread thread,
1924 jint value) {
1925 return functions->ForceEarlyReturnInt(this, thread, value);
1926 }
1927
1928 jvmtiError ForceEarlyReturnLong(jthread thread,
1929 jlong value) {
1930 return functions->ForceEarlyReturnLong(this, thread, value);
1931 }
1932
1933 jvmtiError ForceEarlyReturnFloat(jthread thread,
1934 jfloat value) {
1935 return functions->ForceEarlyReturnFloat(this, thread, value);
1936 }
1937
1938 jvmtiError ForceEarlyReturnDouble(jthread thread,
1939 jdouble value) {
1940 return functions->ForceEarlyReturnDouble(this, thread, value);
1941 }
1942
1943 jvmtiError ForceEarlyReturnVoid(jthread thread) {
1944 return functions->ForceEarlyReturnVoid(this, thread);
1945 }
1946
1947 jvmtiError FollowReferences(jint heap_filter,
1948 jclass klass,
1949 jobject initial_object,
1950 const jvmtiHeapCallbacks* callbacks,
1951 const void* user_data) {
1952 return functions->FollowReferences(this, heap_filter, klass, initial_object, callbacks, user_data);
1953 }
1954
1955 jvmtiError IterateThroughHeap(jint heap_filter,
1956 jclass klass,
1957 const jvmtiHeapCallbacks* callbacks,
1958 const void* user_data) {
1959 return functions->IterateThroughHeap(this, heap_filter, klass, callbacks, user_data);
1960 }
1961
1962 jvmtiError GetTag(jobject object,
1963 jlong* tag_ptr) {
1964 return functions->GetTag(this, object, tag_ptr);
1965 }
1966
1967 jvmtiError SetTag(jobject object,
1968 jlong tag) {
1969 return functions->SetTag(this, object, tag);
1970 }
1971
1972 jvmtiError GetObjectsWithTags(jint tag_count,
1973 const jlong* tags,
1974 jint* count_ptr,
1975 jobject** object_result_ptr,
1976 jlong** tag_result_ptr) {
1977 return functions->GetObjectsWithTags(this, tag_count, tags, count_ptr, object_result_ptr, tag_result_ptr);
1978 }
1979
1980 jvmtiError ForceGarbageCollection() {
1981 return functions->ForceGarbageCollection(this);
1982 }
1983
1984 jvmtiError IterateOverObjectsReachableFromObject(jobject object,
1985 jvmtiObjectReferenceCallback object_reference_callback,
1986 const void* user_data) {
1987 return functions->IterateOverObjectsReachableFromObject(this, object, object_reference_callback, user_data);
1988 }
1989
1990 jvmtiError IterateOverReachableObjects(jvmtiHeapRootCallback heap_root_callback,
1991 jvmtiStackReferenceCallback stack_ref_callback,
1992 jvmtiObjectReferenceCallback object_ref_callback,
1993 const void* user_data) {
1994 return functions->IterateOverReachableObjects(this, heap_root_callback, stack_ref_callback, object_ref_callback, user_data);
1995 }
1996
1997 jvmtiError IterateOverHeap(jvmtiHeapObjectFilter object_filter,
1998 jvmtiHeapObjectCallback heap_object_callback,
1999 const void* user_data) {
2000 return functions->IterateOverHeap(this, object_filter, heap_object_callback, user_data);
2001 }
2002
2003 jvmtiError IterateOverInstancesOfClass(jclass klass,
2004 jvmtiHeapObjectFilter object_filter,
2005 jvmtiHeapObjectCallback heap_object_callback,
2006 const void* user_data) {
2007 return functions->IterateOverInstancesOfClass(this, klass, object_filter, heap_object_callback, user_data);
2008 }
2009
2010 jvmtiError GetLocalObject(jthread thread,
2011 jint depth,
2012 jint slot,
2013 jobject* value_ptr) {
2014 return functions->GetLocalObject(this, thread, depth, slot, value_ptr);
2015 }
2016
2017 jvmtiError GetLocalInt(jthread thread,
2018 jint depth,
2019 jint slot,
2020 jint* value_ptr) {
2021 return functions->GetLocalInt(this, thread, depth, slot, value_ptr);
2022 }
2023
2024 jvmtiError GetLocalLong(jthread thread,
2025 jint depth,
2026 jint slot,
2027 jlong* value_ptr) {
2028 return functions->GetLocalLong(this, thread, depth, slot, value_ptr);
2029 }
2030
2031 jvmtiError GetLocalFloat(jthread thread,
2032 jint depth,
2033 jint slot,
2034 jfloat* value_ptr) {
2035 return functions->GetLocalFloat(this, thread, depth, slot, value_ptr);
2036 }
2037
2038 jvmtiError GetLocalDouble(jthread thread,
2039 jint depth,
2040 jint slot,
2041 jdouble* value_ptr) {
2042 return functions->GetLocalDouble(this, thread, depth, slot, value_ptr);
2043 }
2044
2045 jvmtiError SetLocalObject(jthread thread,
2046 jint depth,
2047 jint slot,
2048 jobject value) {
2049 return functions->SetLocalObject(this, thread, depth, slot, value);
2050 }
2051
2052 jvmtiError SetLocalInt(jthread thread,
2053 jint depth,
2054 jint slot,
2055 jint value) {
2056 return functions->SetLocalInt(this, thread, depth, slot, value);
2057 }
2058
2059 jvmtiError SetLocalLong(jthread thread,
2060 jint depth,
2061 jint slot,
2062 jlong value) {
2063 return functions->SetLocalLong(this, thread, depth, slot, value);
2064 }
2065
2066 jvmtiError SetLocalFloat(jthread thread,
2067 jint depth,
2068 jint slot,
2069 jfloat value) {
2070 return functions->SetLocalFloat(this, thread, depth, slot, value);
2071 }
2072
2073 jvmtiError SetLocalDouble(jthread thread,
2074 jint depth,
2075 jint slot,
2076 jdouble value) {
2077 return functions->SetLocalDouble(this, thread, depth, slot, value);
2078 }
2079
2080 jvmtiError SetBreakpoint(jmethodID method,
2081 jlocation location) {
2082 return functions->SetBreakpoint(this, method, location);
2083 }
2084
2085 jvmtiError ClearBreakpoint(jmethodID method,
2086 jlocation location) {
2087 return functions->ClearBreakpoint(this, method, location);
2088 }
2089
2090 jvmtiError SetFieldAccessWatch(jclass klass,
2091 jfieldID field) {
2092 return functions->SetFieldAccessWatch(this, klass, field);
2093 }
2094
2095 jvmtiError ClearFieldAccessWatch(jclass klass,
2096 jfieldID field) {
2097 return functions->ClearFieldAccessWatch(this, klass, field);
2098 }
2099
2100 jvmtiError SetFieldModificationWatch(jclass klass,
2101 jfieldID field) {
2102 return functions->SetFieldModificationWatch(this, klass, field);
2103 }
2104
2105 jvmtiError ClearFieldModificationWatch(jclass klass,
2106 jfieldID field) {
2107 return functions->ClearFieldModificationWatch(this, klass, field);
2108 }
2109
2110 jvmtiError GetLoadedClasses(jint* class_count_ptr,
2111 jclass** classes_ptr) {
2112 return functions->GetLoadedClasses(this, class_count_ptr, classes_ptr);
2113 }
2114
2115 jvmtiError GetClassLoaderClasses(jobject initiating_loader,
2116 jint* class_count_ptr,
2117 jclass** classes_ptr) {
2118 return functions->GetClassLoaderClasses(this, initiating_loader, class_count_ptr, classes_ptr);
2119 }
2120
2121 jvmtiError GetClassSignature(jclass klass,
2122 char** signature_ptr,
2123 char** generic_ptr) {
2124 return functions->GetClassSignature(this, klass, signature_ptr, generic_ptr);
2125 }
2126
2127 jvmtiError GetClassStatus(jclass klass,
2128 jint* status_ptr) {
2129 return functions->GetClassStatus(this, klass, status_ptr);
2130 }
2131
2132 jvmtiError GetSourceFileName(jclass klass,
2133 char** source_name_ptr) {
2134 return functions->GetSourceFileName(this, klass, source_name_ptr);
2135 }
2136
2137 jvmtiError GetClassModifiers(jclass klass,
2138 jint* modifiers_ptr) {
2139 return functions->GetClassModifiers(this, klass, modifiers_ptr);
2140 }
2141
2142 jvmtiError GetClassMethods(jclass klass,
2143 jint* method_count_ptr,
2144 jmethodID** methods_ptr) {
2145 return functions->GetClassMethods(this, klass, method_count_ptr, methods_ptr);
2146 }
2147
2148 jvmtiError GetClassFields(jclass klass,
2149 jint* field_count_ptr,
2150 jfieldID** fields_ptr) {
2151 return functions->GetClassFields(this, klass, field_count_ptr, fields_ptr);
2152 }
2153
2154 jvmtiError GetImplementedInterfaces(jclass klass,
2155 jint* interface_count_ptr,
2156 jclass** interfaces_ptr) {
2157 return functions->GetImplementedInterfaces(this, klass, interface_count_ptr, interfaces_ptr);
2158 }
2159
2160 jvmtiError GetClassVersionNumbers(jclass klass,
2161 jint* minor_version_ptr,
2162 jint* major_version_ptr) {
2163 return functions->GetClassVersionNumbers(this, klass, minor_version_ptr, major_version_ptr);
2164 }
2165
2166 jvmtiError GetConstantPool(jclass klass,
2167 jint* constant_pool_count_ptr,
2168 jint* constant_pool_byte_count_ptr,
2169 unsigned char** constant_pool_bytes_ptr) {
2170 return functions->GetConstantPool(this, klass, constant_pool_count_ptr, constant_pool_byte_count_ptr, constant_pool_bytes_ptr);
2171 }
2172
2173 jvmtiError IsInterface(jclass klass,
2174 jboolean* is_interface_ptr) {
2175 return functions->IsInterface(this, klass, is_interface_ptr);
2176 }
2177
2178 jvmtiError IsArrayClass(jclass klass,
2179 jboolean* is_array_class_ptr) {
2180 return functions->IsArrayClass(this, klass, is_array_class_ptr);
2181 }
2182
2183 jvmtiError IsModifiableClass(jclass klass,
2184 jboolean* is_modifiable_class_ptr) {
2185 return functions->IsModifiableClass(this, klass, is_modifiable_class_ptr);
2186 }
2187
2188 jvmtiError GetClassLoader(jclass klass,
2189 jobject* classloader_ptr) {
2190 return functions->GetClassLoader(this, klass, classloader_ptr);
2191 }
2192
2193 jvmtiError GetSourceDebugExtension(jclass klass,
2194 char** source_debug_extension_ptr) {
2195 return functions->GetSourceDebugExtension(this, klass, source_debug_extension_ptr);
2196 }
2197
2198 jvmtiError RetransformClasses(jint class_count,
2199 const jclass* classes) {
2200 return functions->RetransformClasses(this, class_count, classes);
2201 }
2202
2203 jvmtiError RedefineClasses(jint class_count,
2204 const jvmtiClassDefinition* class_definitions) {
2205 return functions->RedefineClasses(this, class_count, class_definitions);
2206 }
2207
2208 jvmtiError GetObjectSize(jobject object,
2209 jlong* size_ptr) {
2210 return functions->GetObjectSize(this, object, size_ptr);
2211 }
2212
2213 jvmtiError GetObjectHashCode(jobject object,
2214 jint* hash_code_ptr) {
2215 return functions->GetObjectHashCode(this, object, hash_code_ptr);
2216 }
2217
2218 jvmtiError GetObjectMonitorUsage(jobject object,
2219 jvmtiMonitorUsage* info_ptr) {
2220 return functions->GetObjectMonitorUsage(this, object, info_ptr);
2221 }
2222
2223 jvmtiError GetFieldName(jclass klass,
2224 jfieldID field,
2225 char** name_ptr,
2226 char** signature_ptr,
2227 char** generic_ptr) {
2228 return functions->GetFieldName(this, klass, field, name_ptr, signature_ptr, generic_ptr);
2229 }
2230
2231 jvmtiError GetFieldDeclaringClass(jclass klass,
2232 jfieldID field,
2233 jclass* declaring_class_ptr) {
2234 return functions->GetFieldDeclaringClass(this, klass, field, declaring_class_ptr);
2235 }
2236
2237 jvmtiError GetFieldModifiers(jclass klass,
2238 jfieldID field,
2239 jint* modifiers_ptr) {
2240 return functions->GetFieldModifiers(this, klass, field, modifiers_ptr);
2241 }
2242
2243 jvmtiError IsFieldSynthetic(jclass klass,
2244 jfieldID field,
2245 jboolean* is_synthetic_ptr) {
2246 return functions->IsFieldSynthetic(this, klass, field, is_synthetic_ptr);
2247 }
2248
2249 jvmtiError GetMethodName(jmethodID method,
2250 char** name_ptr,
2251 char** signature_ptr,
2252 char** generic_ptr) {
2253 return functions->GetMethodName(this, method, name_ptr, signature_ptr, generic_ptr);
2254 }
2255
2256 jvmtiError GetMethodDeclaringClass(jmethodID method,
2257 jclass* declaring_class_ptr) {
2258 return functions->GetMethodDeclaringClass(this, method, declaring_class_ptr);
2259 }
2260
2261 jvmtiError GetMethodModifiers(jmethodID method,
2262 jint* modifiers_ptr) {
2263 return functions->GetMethodModifiers(this, method, modifiers_ptr);
2264 }
2265
2266 jvmtiError GetMaxLocals(jmethodID method,
2267 jint* max_ptr) {
2268 return functions->GetMaxLocals(this, method, max_ptr);
2269 }
2270
2271 jvmtiError GetArgumentsSize(jmethodID method,
2272 jint* size_ptr) {
2273 return functions->GetArgumentsSize(this, method, size_ptr);
2274 }
2275
2276 jvmtiError GetLineNumberTable(jmethodID method,
2277 jint* entry_count_ptr,
2278 jvmtiLineNumberEntry** table_ptr) {
2279 return functions->GetLineNumberTable(this, method, entry_count_ptr, table_ptr);
2280 }
2281
2282 jvmtiError GetMethodLocation(jmethodID method,
2283 jlocation* start_location_ptr,
2284 jlocation* end_location_ptr) {
2285 return functions->GetMethodLocation(this, method, start_location_ptr, end_location_ptr);
2286 }
2287
2288 jvmtiError GetLocalVariableTable(jmethodID method,
2289 jint* entry_count_ptr,
2290 jvmtiLocalVariableEntry** table_ptr) {
2291 return functions->GetLocalVariableTable(this, method, entry_count_ptr, table_ptr);
2292 }
2293
2294 jvmtiError GetBytecodes(jmethodID method,
2295 jint* bytecode_count_ptr,
2296 unsigned char** bytecodes_ptr) {
2297 return functions->GetBytecodes(this, method, bytecode_count_ptr, bytecodes_ptr);
2298 }
2299
2300 jvmtiError IsMethodNative(jmethodID method,
2301 jboolean* is_native_ptr) {
2302 return functions->IsMethodNative(this, method, is_native_ptr);
2303 }
2304
2305 jvmtiError IsMethodSynthetic(jmethodID method,
2306 jboolean* is_synthetic_ptr) {
2307 return functions->IsMethodSynthetic(this, method, is_synthetic_ptr);
2308 }
2309
2310 jvmtiError IsMethodObsolete(jmethodID method,
2311 jboolean* is_obsolete_ptr) {
2312 return functions->IsMethodObsolete(this, method, is_obsolete_ptr);
2313 }
2314
2315 jvmtiError SetNativeMethodPrefix(const char* prefix) {
2316 return functions->SetNativeMethodPrefix(this, prefix);
2317 }
2318
2319 jvmtiError SetNativeMethodPrefixes(jint prefix_count,
2320 char** prefixes) {
2321 return functions->SetNativeMethodPrefixes(this, prefix_count, prefixes);
2322 }
2323
2324 jvmtiError CreateRawMonitor(const char* name,
2325 jrawMonitorID* monitor_ptr) {
2326 return functions->CreateRawMonitor(this, name, monitor_ptr);
2327 }
2328
2329 jvmtiError DestroyRawMonitor(jrawMonitorID monitor) {
2330 return functions->DestroyRawMonitor(this, monitor);
2331 }
2332
2333 jvmtiError RawMonitorEnter(jrawMonitorID monitor) {
2334 return functions->RawMonitorEnter(this, monitor);
2335 }
2336
2337 jvmtiError RawMonitorExit(jrawMonitorID monitor) {
2338 return functions->RawMonitorExit(this, monitor);
2339 }
2340
2341 jvmtiError RawMonitorWait(jrawMonitorID monitor,
2342 jlong millis) {
2343 return functions->RawMonitorWait(this, monitor, millis);
2344 }
2345
2346 jvmtiError RawMonitorNotify(jrawMonitorID monitor) {
2347 return functions->RawMonitorNotify(this, monitor);
2348 }
2349
2350 jvmtiError RawMonitorNotifyAll(jrawMonitorID monitor) {
2351 return functions->RawMonitorNotifyAll(this, monitor);
2352 }
2353
2354 jvmtiError SetJNIFunctionTable(const jniNativeInterface* function_table) {
2355 return functions->SetJNIFunctionTable(this, function_table);
2356 }
2357
2358 jvmtiError GetJNIFunctionTable(jniNativeInterface** function_table) {
2359 return functions->GetJNIFunctionTable(this, function_table);
2360 }
2361
2362 jvmtiError SetEventCallbacks(const jvmtiEventCallbacks* callbacks,
2363 jint size_of_callbacks) {
2364 return functions->SetEventCallbacks(this, callbacks, size_of_callbacks);
2365 }
2366
2367 jvmtiError SetEventNotificationMode(jvmtiEventMode mode,
2368 jvmtiEvent event_type,
2369 jthread event_thread,
2370 ...) {
2371 return functions->SetEventNotificationMode(this, mode, event_type, event_thread);
2372 }
2373
2374 jvmtiError GenerateEvents(jvmtiEvent event_type) {
2375 return functions->GenerateEvents(this, event_type);
2376 }
2377
2378 jvmtiError GetExtensionFunctions(jint* extension_count_ptr,
2379 jvmtiExtensionFunctionInfo** extensions) {
2380 return functions->GetExtensionFunctions(this, extension_count_ptr, extensions);
2381 }
2382
2383 jvmtiError GetExtensionEvents(jint* extension_count_ptr,
2384 jvmtiExtensionEventInfo** extensions) {
2385 return functions->GetExtensionEvents(this, extension_count_ptr, extensions);
2386 }
2387
2388 jvmtiError SetExtensionEventCallback(jint extension_event_index,
2389 jvmtiExtensionEvent callback) {
2390 return functions->SetExtensionEventCallback(this, extension_event_index, callback);
2391 }
2392
2393 jvmtiError GetPotentialCapabilities(jvmtiCapabilities* capabilities_ptr) {
2394 return functions->GetPotentialCapabilities(this, capabilities_ptr);
2395 }
2396
2397 jvmtiError AddCapabilities(const jvmtiCapabilities* capabilities_ptr) {
2398 return functions->AddCapabilities(this, capabilities_ptr);
2399 }
2400
2401 jvmtiError RelinquishCapabilities(const jvmtiCapabilities* capabilities_ptr) {
2402 return functions->RelinquishCapabilities(this, capabilities_ptr);
2403 }
2404
2405 jvmtiError GetCapabilities(jvmtiCapabilities* capabilities_ptr) {
2406 return functions->GetCapabilities(this, capabilities_ptr);
2407 }
2408
2409 jvmtiError GetCurrentThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) {
2410 return functions->GetCurrentThreadCpuTimerInfo(this, info_ptr);
2411 }
2412
2413 jvmtiError GetCurrentThreadCpuTime(jlong* nanos_ptr) {
2414 return functions->GetCurrentThreadCpuTime(this, nanos_ptr);
2415 }
2416
2417 jvmtiError GetThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) {
2418 return functions->GetThreadCpuTimerInfo(this, info_ptr);
2419 }
2420
2421 jvmtiError GetThreadCpuTime(jthread thread,
2422 jlong* nanos_ptr) {
2423 return functions->GetThreadCpuTime(this, thread, nanos_ptr);
2424 }
2425
2426 jvmtiError GetTimerInfo(jvmtiTimerInfo* info_ptr) {
2427 return functions->GetTimerInfo(this, info_ptr);
2428 }
2429
2430 jvmtiError GetTime(jlong* nanos_ptr) {
2431 return functions->GetTime(this, nanos_ptr);
2432 }
2433
2434 jvmtiError GetAvailableProcessors(jint* processor_count_ptr) {
2435 return functions->GetAvailableProcessors(this, processor_count_ptr);
2436 }
2437
2438 jvmtiError AddToBootstrapClassLoaderSearch(const char* segment) {
2439 return functions->AddToBootstrapClassLoaderSearch(this, segment);
2440 }
2441
2442 jvmtiError AddToSystemClassLoaderSearch(const char* segment) {
2443 return functions->AddToSystemClassLoaderSearch(this, segment);
2444 }
2445
2446 jvmtiError GetSystemProperties(jint* count_ptr,
2447 char*** property_ptr) {
2448 return functions->GetSystemProperties(this, count_ptr, property_ptr);
2449 }
2450
2451 jvmtiError GetSystemProperty(const char* property,
2452 char** value_ptr) {
2453 return functions->GetSystemProperty(this, property, value_ptr);
2454 }
2455
2456 jvmtiError SetSystemProperty(const char* property,
2457 const char* value) {
2458 return functions->SetSystemProperty(this, property, value);
2459 }
2460
2461 jvmtiError GetPhase(jvmtiPhase* phase_ptr) {
2462 return functions->GetPhase(this, phase_ptr);
2463 }
2464
2465 jvmtiError DisposeEnvironment() {
2466 return functions->DisposeEnvironment(this);
2467 }
2468
2469 jvmtiError SetEnvironmentLocalStorage(const void* data) {
2470 return functions->SetEnvironmentLocalStorage(this, data);
2471 }
2472
2473 jvmtiError GetEnvironmentLocalStorage(void** data_ptr) {
2474 return functions->GetEnvironmentLocalStorage(this, data_ptr);
2475 }
2476
2477 jvmtiError GetVersionNumber(jint* version_ptr) {
2478 return functions->GetVersionNumber(this, version_ptr);
2479 }
2480
2481 jvmtiError GetErrorName(jvmtiError error,
2482 char** name_ptr) {
2483 return functions->GetErrorName(this, error, name_ptr);
2484 }
2485
2486 jvmtiError SetVerboseFlag(jvmtiVerboseFlag flag,
2487 jboolean value) {
2488 return functions->SetVerboseFlag(this, flag, value);
2489 }
2490
2491 jvmtiError GetJLocationFormat(jvmtiJlocationFormat* format_ptr) {
2492 return functions->GetJLocationFormat(this, format_ptr);
2493 }
2494
2495#endif /* __cplusplus */
2496};
2497
2498
2499#ifdef __cplusplus
2500} /* extern "C" */
2501#endif /* __cplusplus */
2502
2503#endif /* !_JAVA_JVMTI_H_ */
2504
Note: See TracBrowser for help on using the repository browser.