BWAPI
|
00001 #ifdef USE_PRAGMA_IDENT_HDR 00002 #pragma ident "@(#)jvmtiLib.xsl 1.38 06/08/02 23:22:31 JVM" 00003 #endif 00004 /* 00005 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 00006 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 00007 */ 00008 00009 /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ 00010 00011 00012 /* Include file for the Java(tm) Virtual Machine Tool Interface */ 00013 00014 #ifndef _JAVA_JVMTI_H_ 00015 #define _JAVA_JVMTI_H_ 00016 00017 #include "jni.h" 00018 00019 #ifdef __cplusplus 00020 extern "C" { 00021 #endif 00022 00023 enum { 00024 JVMTI_VERSION_1 = 0x30010000, 00025 JVMTI_VERSION_1_0 = 0x30010000, 00026 JVMTI_VERSION_1_1 = 0x30010100, 00027 00028 JVMTI_VERSION = 0x30000000 + (1 * 0x10000) + (1 * 0x100) + 102 /* version: 1.1.102 */ 00029 }; 00030 00031 JNIEXPORT jint JNICALL 00032 Agent_OnLoad(JavaVM *vm, char *options, void *reserved); 00033 00034 JNIEXPORT jint JNICALL 00035 Agent_OnAttach(JavaVM* vm, char* options, void* reserved); 00036 00037 JNIEXPORT void JNICALL 00038 Agent_OnUnload(JavaVM *vm); 00039 00040 /* Forward declaration of the environment */ 00041 00042 struct _jvmtiEnv; 00043 00044 struct jvmtiInterface_1_; 00045 00046 #ifdef __cplusplus 00047 typedef _jvmtiEnv jvmtiEnv; 00048 #else 00049 typedef const struct jvmtiInterface_1_ *jvmtiEnv; 00050 #endif /* __cplusplus */ 00051 00052 /* Derived Base Types */ 00053 00054 typedef jobject jthread; 00055 typedef jobject jthreadGroup; 00056 typedef jlong jlocation; 00057 struct _jrawMonitorID; 00058 typedef struct _jrawMonitorID *jrawMonitorID; 00059 typedef struct JNINativeInterface_ jniNativeInterface; 00060 00061 /* Constants */ 00062 00063 00064 /* Thread State Flags */ 00065 00066 enum { 00067 JVMTI_THREAD_STATE_ALIVE = 0x0001, 00068 JVMTI_THREAD_STATE_TERMINATED = 0x0002, 00069 JVMTI_THREAD_STATE_RUNNABLE = 0x0004, 00070 JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400, 00071 JVMTI_THREAD_STATE_WAITING = 0x0080, 00072 JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010, 00073 JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020, 00074 JVMTI_THREAD_STATE_SLEEPING = 0x0040, 00075 JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100, 00076 JVMTI_THREAD_STATE_PARKED = 0x0200, 00077 JVMTI_THREAD_STATE_SUSPENDED = 0x100000, 00078 JVMTI_THREAD_STATE_INTERRUPTED = 0x200000, 00079 JVMTI_THREAD_STATE_IN_NATIVE = 0x400000, 00080 JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000, 00081 JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000, 00082 JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000 00083 }; 00084 00085 /* java.lang.Thread.State Conversion Masks */ 00086 00087 enum { 00088 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, 00089 JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0, 00090 JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED, 00091 JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE, 00092 JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER, 00093 JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY, 00094 JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT 00095 }; 00096 00097 /* Thread Priority Constants */ 00098 00099 enum { 00100 JVMTI_THREAD_MIN_PRIORITY = 1, 00101 JVMTI_THREAD_NORM_PRIORITY = 5, 00102 JVMTI_THREAD_MAX_PRIORITY = 10 00103 }; 00104 00105 /* Heap Filter Flags */ 00106 00107 enum { 00108 JVMTI_HEAP_FILTER_TAGGED = 0x4, 00109 JVMTI_HEAP_FILTER_UNTAGGED = 0x8, 00110 JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10, 00111 JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20 00112 }; 00113 00114 /* Heap Visit Control Flags */ 00115 00116 enum { 00117 JVMTI_VISIT_OBJECTS = 0x100, 00118 JVMTI_VISIT_ABORT = 0x8000 00119 }; 00120 00121 /* Heap Reference Enumeration */ 00122 00123 typedef enum { 00124 JVMTI_HEAP_REFERENCE_CLASS = 1, 00125 JVMTI_HEAP_REFERENCE_FIELD = 2, 00126 JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT = 3, 00127 JVMTI_HEAP_REFERENCE_CLASS_LOADER = 4, 00128 JVMTI_HEAP_REFERENCE_SIGNERS = 5, 00129 JVMTI_HEAP_REFERENCE_PROTECTION_DOMAIN = 6, 00130 JVMTI_HEAP_REFERENCE_INTERFACE = 7, 00131 JVMTI_HEAP_REFERENCE_STATIC_FIELD = 8, 00132 JVMTI_HEAP_REFERENCE_CONSTANT_POOL = 9, 00133 JVMTI_HEAP_REFERENCE_SUPERCLASS = 10, 00134 JVMTI_HEAP_REFERENCE_JNI_GLOBAL = 21, 00135 JVMTI_HEAP_REFERENCE_SYSTEM_CLASS = 22, 00136 JVMTI_HEAP_REFERENCE_MONITOR = 23, 00137 JVMTI_HEAP_REFERENCE_STACK_LOCAL = 24, 00138 JVMTI_HEAP_REFERENCE_JNI_LOCAL = 25, 00139 JVMTI_HEAP_REFERENCE_THREAD = 26, 00140 JVMTI_HEAP_REFERENCE_OTHER = 27 00141 } jvmtiHeapReferenceKind; 00142 00143 /* Primitive Type Enumeration */ 00144 00145 typedef enum { 00146 JVMTI_PRIMITIVE_TYPE_BOOLEAN = 90, 00147 JVMTI_PRIMITIVE_TYPE_BYTE = 66, 00148 JVMTI_PRIMITIVE_TYPE_CHAR = 67, 00149 JVMTI_PRIMITIVE_TYPE_SHORT = 83, 00150 JVMTI_PRIMITIVE_TYPE_INT = 73, 00151 JVMTI_PRIMITIVE_TYPE_LONG = 74, 00152 JVMTI_PRIMITIVE_TYPE_FLOAT = 70, 00153 JVMTI_PRIMITIVE_TYPE_DOUBLE = 68 00154 } jvmtiPrimitiveType; 00155 00156 /* Heap Object Filter Enumeration */ 00157 00158 typedef enum { 00159 JVMTI_HEAP_OBJECT_TAGGED = 1, 00160 JVMTI_HEAP_OBJECT_UNTAGGED = 2, 00161 JVMTI_HEAP_OBJECT_EITHER = 3 00162 } jvmtiHeapObjectFilter; 00163 00164 /* Heap Root Kind Enumeration */ 00165 00166 typedef enum { 00167 JVMTI_HEAP_ROOT_JNI_GLOBAL = 1, 00168 JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2, 00169 JVMTI_HEAP_ROOT_MONITOR = 3, 00170 JVMTI_HEAP_ROOT_STACK_LOCAL = 4, 00171 JVMTI_HEAP_ROOT_JNI_LOCAL = 5, 00172 JVMTI_HEAP_ROOT_THREAD = 6, 00173 JVMTI_HEAP_ROOT_OTHER = 7 00174 } jvmtiHeapRootKind; 00175 00176 /* Object Reference Enumeration */ 00177 00178 typedef enum { 00179 JVMTI_REFERENCE_CLASS = 1, 00180 JVMTI_REFERENCE_FIELD = 2, 00181 JVMTI_REFERENCE_ARRAY_ELEMENT = 3, 00182 JVMTI_REFERENCE_CLASS_LOADER = 4, 00183 JVMTI_REFERENCE_SIGNERS = 5, 00184 JVMTI_REFERENCE_PROTECTION_DOMAIN = 6, 00185 JVMTI_REFERENCE_INTERFACE = 7, 00186 JVMTI_REFERENCE_STATIC_FIELD = 8, 00187 JVMTI_REFERENCE_CONSTANT_POOL = 9 00188 } jvmtiObjectReferenceKind; 00189 00190 /* Iteration Control Enumeration */ 00191 00192 typedef enum { 00193 JVMTI_ITERATION_CONTINUE = 1, 00194 JVMTI_ITERATION_IGNORE = 2, 00195 JVMTI_ITERATION_ABORT = 0 00196 } jvmtiIterationControl; 00197 00198 /* Class Status Flags */ 00199 00200 enum { 00201 JVMTI_CLASS_STATUS_VERIFIED = 1, 00202 JVMTI_CLASS_STATUS_PREPARED = 2, 00203 JVMTI_CLASS_STATUS_INITIALIZED = 4, 00204 JVMTI_CLASS_STATUS_ERROR = 8, 00205 JVMTI_CLASS_STATUS_ARRAY = 16, 00206 JVMTI_CLASS_STATUS_PRIMITIVE = 32 00207 }; 00208 00209 /* Event Enable/Disable */ 00210 00211 typedef enum { 00212 JVMTI_ENABLE = 1, 00213 JVMTI_DISABLE = 0 00214 } jvmtiEventMode; 00215 00216 /* Extension Function/Event Parameter Types */ 00217 00218 typedef enum { 00219 JVMTI_TYPE_JBYTE = 101, 00220 JVMTI_TYPE_JCHAR = 102, 00221 JVMTI_TYPE_JSHORT = 103, 00222 JVMTI_TYPE_JINT = 104, 00223 JVMTI_TYPE_JLONG = 105, 00224 JVMTI_TYPE_JFLOAT = 106, 00225 JVMTI_TYPE_JDOUBLE = 107, 00226 JVMTI_TYPE_JBOOLEAN = 108, 00227 JVMTI_TYPE_JOBJECT = 109, 00228 JVMTI_TYPE_JTHREAD = 110, 00229 JVMTI_TYPE_JCLASS = 111, 00230 JVMTI_TYPE_JVALUE = 112, 00231 JVMTI_TYPE_JFIELDID = 113, 00232 JVMTI_TYPE_JMETHODID = 114, 00233 JVMTI_TYPE_CCHAR = 115, 00234 JVMTI_TYPE_CVOID = 116, 00235 JVMTI_TYPE_JNIENV = 117 00236 } jvmtiParamTypes; 00237 00238 /* Extension Function/Event Parameter Kinds */ 00239 00240 typedef enum { 00241 JVMTI_KIND_IN = 91, 00242 JVMTI_KIND_IN_PTR = 92, 00243 JVMTI_KIND_IN_BUF = 93, 00244 JVMTI_KIND_ALLOC_BUF = 94, 00245 JVMTI_KIND_ALLOC_ALLOC_BUF = 95, 00246 JVMTI_KIND_OUT = 96, 00247 JVMTI_KIND_OUT_BUF = 97 00248 } jvmtiParamKind; 00249 00250 /* Timer Kinds */ 00251 00252 typedef enum { 00253 JVMTI_TIMER_USER_CPU = 30, 00254 JVMTI_TIMER_TOTAL_CPU = 31, 00255 JVMTI_TIMER_ELAPSED = 32 00256 } jvmtiTimerKind; 00257 00258 /* Phases of execution */ 00259 00260 typedef enum { 00261 JVMTI_PHASE_ONLOAD = 1, 00262 JVMTI_PHASE_PRIMORDIAL = 2, 00263 JVMTI_PHASE_START = 6, 00264 JVMTI_PHASE_LIVE = 4, 00265 JVMTI_PHASE_DEAD = 8 00266 } jvmtiPhase; 00267 00268 /* Version Interface Types */ 00269 00270 enum { 00271 JVMTI_VERSION_INTERFACE_JNI = 0x00000000, 00272 JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000 00273 }; 00274 00275 /* Version Masks */ 00276 00277 enum { 00278 JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000, 00279 JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000, 00280 JVMTI_VERSION_MASK_MINOR = 0x0000FF00, 00281 JVMTI_VERSION_MASK_MICRO = 0x000000FF 00282 }; 00283 00284 /* Version Shifts */ 00285 00286 enum { 00287 JVMTI_VERSION_SHIFT_MAJOR = 16, 00288 JVMTI_VERSION_SHIFT_MINOR = 8, 00289 JVMTI_VERSION_SHIFT_MICRO = 0 00290 }; 00291 00292 /* Verbose Flag Enumeration */ 00293 00294 typedef enum { 00295 JVMTI_VERBOSE_OTHER = 0, 00296 JVMTI_VERBOSE_GC = 1, 00297 JVMTI_VERBOSE_CLASS = 2, 00298 JVMTI_VERBOSE_JNI = 4 00299 } jvmtiVerboseFlag; 00300 00301 /* JLocation Format Enumeration */ 00302 00303 typedef enum { 00304 JVMTI_JLOCATION_JVMBCI = 1, 00305 JVMTI_JLOCATION_MACHINEPC = 2, 00306 JVMTI_JLOCATION_OTHER = 0 00307 } jvmtiJlocationFormat; 00308 00309 /* Resource Exhaustion Flags */ 00310 00311 enum { 00312 JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001, 00313 JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002, 00314 JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004 00315 }; 00316 00317 /* Errors */ 00318 00319 typedef enum { 00320 JVMTI_ERROR_NONE = 0, 00321 JVMTI_ERROR_INVALID_THREAD = 10, 00322 JVMTI_ERROR_INVALID_THREAD_GROUP = 11, 00323 JVMTI_ERROR_INVALID_PRIORITY = 12, 00324 JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13, 00325 JVMTI_ERROR_THREAD_SUSPENDED = 14, 00326 JVMTI_ERROR_THREAD_NOT_ALIVE = 15, 00327 JVMTI_ERROR_INVALID_OBJECT = 20, 00328 JVMTI_ERROR_INVALID_CLASS = 21, 00329 JVMTI_ERROR_CLASS_NOT_PREPARED = 22, 00330 JVMTI_ERROR_INVALID_METHODID = 23, 00331 JVMTI_ERROR_INVALID_LOCATION = 24, 00332 JVMTI_ERROR_INVALID_FIELDID = 25, 00333 JVMTI_ERROR_NO_MORE_FRAMES = 31, 00334 JVMTI_ERROR_OPAQUE_FRAME = 32, 00335 JVMTI_ERROR_TYPE_MISMATCH = 34, 00336 JVMTI_ERROR_INVALID_SLOT = 35, 00337 JVMTI_ERROR_DUPLICATE = 40, 00338 JVMTI_ERROR_NOT_FOUND = 41, 00339 JVMTI_ERROR_INVALID_MONITOR = 50, 00340 JVMTI_ERROR_NOT_MONITOR_OWNER = 51, 00341 JVMTI_ERROR_INTERRUPT = 52, 00342 JVMTI_ERROR_INVALID_CLASS_FORMAT = 60, 00343 JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61, 00344 JVMTI_ERROR_FAILS_VERIFICATION = 62, 00345 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63, 00346 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64, 00347 JVMTI_ERROR_INVALID_TYPESTATE = 65, 00348 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66, 00349 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67, 00350 JVMTI_ERROR_UNSUPPORTED_VERSION = 68, 00351 JVMTI_ERROR_NAMES_DONT_MATCH = 69, 00352 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70, 00353 JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71, 00354 JVMTI_ERROR_UNMODIFIABLE_CLASS = 79, 00355 JVMTI_ERROR_NOT_AVAILABLE = 98, 00356 JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99, 00357 JVMTI_ERROR_NULL_POINTER = 100, 00358 JVMTI_ERROR_ABSENT_INFORMATION = 101, 00359 JVMTI_ERROR_INVALID_EVENT_TYPE = 102, 00360 JVMTI_ERROR_ILLEGAL_ARGUMENT = 103, 00361 JVMTI_ERROR_NATIVE_METHOD = 104, 00362 JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED = 106, 00363 JVMTI_ERROR_OUT_OF_MEMORY = 110, 00364 JVMTI_ERROR_ACCESS_DENIED = 111, 00365 JVMTI_ERROR_WRONG_PHASE = 112, 00366 JVMTI_ERROR_INTERNAL = 113, 00367 JVMTI_ERROR_UNATTACHED_THREAD = 115, 00368 JVMTI_ERROR_INVALID_ENVIRONMENT = 116, 00369 JVMTI_ERROR_MAX = 116 00370 } jvmtiError; 00371 00372 /* Event IDs */ 00373 00374 typedef enum { 00375 JVMTI_MIN_EVENT_TYPE_VAL = 50, 00376 JVMTI_EVENT_VM_INIT = 50, 00377 JVMTI_EVENT_VM_DEATH = 51, 00378 JVMTI_EVENT_THREAD_START = 52, 00379 JVMTI_EVENT_THREAD_END = 53, 00380 JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54, 00381 JVMTI_EVENT_CLASS_LOAD = 55, 00382 JVMTI_EVENT_CLASS_PREPARE = 56, 00383 JVMTI_EVENT_VM_START = 57, 00384 JVMTI_EVENT_EXCEPTION = 58, 00385 JVMTI_EVENT_EXCEPTION_CATCH = 59, 00386 JVMTI_EVENT_SINGLE_STEP = 60, 00387 JVMTI_EVENT_FRAME_POP = 61, 00388 JVMTI_EVENT_BREAKPOINT = 62, 00389 JVMTI_EVENT_FIELD_ACCESS = 63, 00390 JVMTI_EVENT_FIELD_MODIFICATION = 64, 00391 JVMTI_EVENT_METHOD_ENTRY = 65, 00392 JVMTI_EVENT_METHOD_EXIT = 66, 00393 JVMTI_EVENT_NATIVE_METHOD_BIND = 67, 00394 JVMTI_EVENT_COMPILED_METHOD_LOAD = 68, 00395 JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69, 00396 JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70, 00397 JVMTI_EVENT_DATA_DUMP_REQUEST = 71, 00398 JVMTI_EVENT_MONITOR_WAIT = 73, 00399 JVMTI_EVENT_MONITOR_WAITED = 74, 00400 JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75, 00401 JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76, 00402 JVMTI_EVENT_RESOURCE_EXHAUSTED = 80, 00403 JVMTI_EVENT_GARBAGE_COLLECTION_START = 81, 00404 JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82, 00405 JVMTI_EVENT_OBJECT_FREE = 83, 00406 JVMTI_EVENT_VM_OBJECT_ALLOC = 84, 00407 JVMTI_MAX_EVENT_TYPE_VAL = 84 00408 } jvmtiEvent; 00409 00410 00411 /* Pre-Declarations */ 00412 struct _jvmtiThreadInfo; 00413 typedef struct _jvmtiThreadInfo jvmtiThreadInfo; 00414 struct _jvmtiMonitorStackDepthInfo; 00415 typedef struct _jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo; 00416 struct _jvmtiThreadGroupInfo; 00417 typedef struct _jvmtiThreadGroupInfo jvmtiThreadGroupInfo; 00418 struct _jvmtiFrameInfo; 00419 typedef struct _jvmtiFrameInfo jvmtiFrameInfo; 00420 struct _jvmtiStackInfo; 00421 typedef struct _jvmtiStackInfo jvmtiStackInfo; 00422 struct _jvmtiHeapReferenceInfoField; 00423 typedef struct _jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField; 00424 struct _jvmtiHeapReferenceInfoArray; 00425 typedef struct _jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray; 00426 struct _jvmtiHeapReferenceInfoConstantPool; 00427 typedef struct _jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool; 00428 struct _jvmtiHeapReferenceInfoStackLocal; 00429 typedef struct _jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal; 00430 struct _jvmtiHeapReferenceInfoJniLocal; 00431 typedef struct _jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal; 00432 struct _jvmtiHeapReferenceInfoReserved; 00433 typedef struct _jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved; 00434 union _jvmtiHeapReferenceInfo; 00435 typedef union _jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo; 00436 struct _jvmtiHeapCallbacks; 00437 typedef struct _jvmtiHeapCallbacks jvmtiHeapCallbacks; 00438 struct _jvmtiClassDefinition; 00439 typedef struct _jvmtiClassDefinition jvmtiClassDefinition; 00440 struct _jvmtiMonitorUsage; 00441 typedef struct _jvmtiMonitorUsage jvmtiMonitorUsage; 00442 struct _jvmtiLineNumberEntry; 00443 typedef struct _jvmtiLineNumberEntry jvmtiLineNumberEntry; 00444 struct _jvmtiLocalVariableEntry; 00445 typedef struct _jvmtiLocalVariableEntry jvmtiLocalVariableEntry; 00446 struct _jvmtiParamInfo; 00447 typedef struct _jvmtiParamInfo jvmtiParamInfo; 00448 struct _jvmtiExtensionFunctionInfo; 00449 typedef struct _jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo; 00450 struct _jvmtiExtensionEventInfo; 00451 typedef struct _jvmtiExtensionEventInfo jvmtiExtensionEventInfo; 00452 struct _jvmtiTimerInfo; 00453 typedef struct _jvmtiTimerInfo jvmtiTimerInfo; 00454 struct _jvmtiAddrLocationMap; 00455 typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap; 00456 00457 /* Function Types */ 00458 00459 typedef void (JNICALL *jvmtiStartFunction) 00460 (jvmtiEnv* jvmti_env, JNIEnv* jni_env, void* arg); 00461 00462 typedef jint (JNICALL *jvmtiHeapIterationCallback) 00463 (jlong class_tag, jlong size, jlong* tag_ptr, jint length, void* user_data); 00464 00465 typedef jint (JNICALL *jvmtiHeapReferenceCallback) 00466 (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); 00467 00468 typedef jint (JNICALL *jvmtiPrimitiveFieldCallback) 00469 (jvmtiHeapReferenceKind kind, const jvmtiHeapReferenceInfo* info, jlong object_class_tag, jlong* object_tag_ptr, jvalue value, jvmtiPrimitiveType value_type, void* user_data); 00470 00471 typedef jint (JNICALL *jvmtiArrayPrimitiveValueCallback) 00472 (jlong class_tag, jlong size, jlong* tag_ptr, jint element_count, jvmtiPrimitiveType element_type, const void* elements, void* user_data); 00473 00474 typedef jint (JNICALL *jvmtiStringPrimitiveValueCallback) 00475 (jlong class_tag, jlong size, jlong* tag_ptr, const jchar* value, jint value_length, void* user_data); 00476 00477 typedef jint (JNICALL *jvmtiReservedCallback) 00478 (); 00479 00480 typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback) 00481 (jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); 00482 00483 typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback) 00484 (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); 00485 00486 typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback) 00487 (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void* user_data); 00488 00489 typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback) 00490 (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong referrer_tag, jint referrer_index, void* user_data); 00491 00492 typedef jvmtiError (JNICALL *jvmtiExtensionFunction) 00493 (jvmtiEnv* jvmti_env, ...); 00494 00495 typedef void (JNICALL *jvmtiExtensionEvent) 00496 (jvmtiEnv* jvmti_env, ...); 00497 00498 00499 /* Structure Types */ 00500 struct _jvmtiThreadInfo { 00501 char* name; 00502 jint priority; 00503 jboolean is_daemon; 00504 jthreadGroup thread_group; 00505 jobject context_class_loader; 00506 }; 00507 struct _jvmtiMonitorStackDepthInfo { 00508 jobject monitor; 00509 jint stack_depth; 00510 }; 00511 struct _jvmtiThreadGroupInfo { 00512 jthreadGroup parent; 00513 char* name; 00514 jint max_priority; 00515 jboolean is_daemon; 00516 }; 00517 struct _jvmtiFrameInfo { 00518 jmethodID method; 00519 jlocation location; 00520 }; 00521 struct _jvmtiStackInfo { 00522 jthread thread; 00523 jint state; 00524 jvmtiFrameInfo* frame_buffer; 00525 jint frame_count; 00526 }; 00527 struct _jvmtiHeapReferenceInfoField { 00528 jint index; 00529 }; 00530 struct _jvmtiHeapReferenceInfoArray { 00531 jint index; 00532 }; 00533 struct _jvmtiHeapReferenceInfoConstantPool { 00534 jint index; 00535 }; 00536 struct _jvmtiHeapReferenceInfoStackLocal { 00537 jlong thread_tag; 00538 jlong thread_id; 00539 jint depth; 00540 jmethodID method; 00541 jlocation location; 00542 jint slot; 00543 }; 00544 struct _jvmtiHeapReferenceInfoJniLocal { 00545 jlong thread_tag; 00546 jlong thread_id; 00547 jint depth; 00548 jmethodID method; 00549 }; 00550 struct _jvmtiHeapReferenceInfoReserved { 00551 jlong reserved1; 00552 jlong reserved2; 00553 jlong reserved3; 00554 jlong reserved4; 00555 jlong reserved5; 00556 jlong reserved6; 00557 jlong reserved7; 00558 jlong reserved8; 00559 }; 00560 union _jvmtiHeapReferenceInfo { 00561 jvmtiHeapReferenceInfoField field; 00562 jvmtiHeapReferenceInfoArray array; 00563 jvmtiHeapReferenceInfoConstantPool constant_pool; 00564 jvmtiHeapReferenceInfoStackLocal stack_local; 00565 jvmtiHeapReferenceInfoJniLocal jni_local; 00566 jvmtiHeapReferenceInfoReserved other; 00567 }; 00568 struct _jvmtiHeapCallbacks { 00569 jvmtiHeapIterationCallback heap_iteration_callback; 00570 jvmtiHeapReferenceCallback heap_reference_callback; 00571 jvmtiPrimitiveFieldCallback primitive_field_callback; 00572 jvmtiArrayPrimitiveValueCallback array_primitive_value_callback; 00573 jvmtiStringPrimitiveValueCallback string_primitive_value_callback; 00574 jvmtiReservedCallback reserved5; 00575 jvmtiReservedCallback reserved6; 00576 jvmtiReservedCallback reserved7; 00577 jvmtiReservedCallback reserved8; 00578 jvmtiReservedCallback reserved9; 00579 jvmtiReservedCallback reserved10; 00580 jvmtiReservedCallback reserved11; 00581 jvmtiReservedCallback reserved12; 00582 jvmtiReservedCallback reserved13; 00583 jvmtiReservedCallback reserved14; 00584 jvmtiReservedCallback reserved15; 00585 }; 00586 struct _jvmtiClassDefinition { 00587 jclass klass; 00588 jint class_byte_count; 00589 const unsigned char* class_bytes; 00590 }; 00591 struct _jvmtiMonitorUsage { 00592 jthread owner; 00593 jint entry_count; 00594 jint waiter_count; 00595 jthread* waiters; 00596 jint notify_waiter_count; 00597 jthread* notify_waiters; 00598 }; 00599 struct _jvmtiLineNumberEntry { 00600 jlocation start_location; 00601 jint line_number; 00602 }; 00603 struct _jvmtiLocalVariableEntry { 00604 jlocation start_location; 00605 jint length; 00606 char* name; 00607 char* signature; 00608 char* generic_signature; 00609 jint slot; 00610 }; 00611 struct _jvmtiParamInfo { 00612 char* name; 00613 jvmtiParamKind kind; 00614 jvmtiParamTypes base_type; 00615 jboolean null_ok; 00616 }; 00617 struct _jvmtiExtensionFunctionInfo { 00618 jvmtiExtensionFunction func; 00619 char* id; 00620 char* short_description; 00621 jint param_count; 00622 jvmtiParamInfo* params; 00623 jint error_count; 00624 jvmtiError* errors; 00625 }; 00626 struct _jvmtiExtensionEventInfo { 00627 jint extension_event_index; 00628 char* id; 00629 char* short_description; 00630 jint param_count; 00631 jvmtiParamInfo* params; 00632 }; 00633 struct _jvmtiTimerInfo { 00634 jlong max_value; 00635 jboolean may_skip_forward; 00636 jboolean may_skip_backward; 00637 jvmtiTimerKind kind; 00638 jlong reserved1; 00639 jlong reserved2; 00640 }; 00641 struct _jvmtiAddrLocationMap { 00642 const void* start_address; 00643 jlocation location; 00644 }; 00645 00646 typedef struct { 00647 unsigned int can_tag_objects : 1; 00648 unsigned int can_generate_field_modification_events : 1; 00649 unsigned int can_generate_field_access_events : 1; 00650 unsigned int can_get_bytecodes : 1; 00651 unsigned int can_get_synthetic_attribute : 1; 00652 unsigned int can_get_owned_monitor_info : 1; 00653 unsigned int can_get_current_contended_monitor : 1; 00654 unsigned int can_get_monitor_info : 1; 00655 unsigned int can_pop_frame : 1; 00656 unsigned int can_redefine_classes : 1; 00657 unsigned int can_signal_thread : 1; 00658 unsigned int can_get_source_file_name : 1; 00659 unsigned int can_get_line_numbers : 1; 00660 unsigned int can_get_source_debug_extension : 1; 00661 unsigned int can_access_local_variables : 1; 00662 unsigned int can_maintain_original_method_order : 1; 00663 unsigned int can_generate_single_step_events : 1; 00664 unsigned int can_generate_exception_events : 1; 00665 unsigned int can_generate_frame_pop_events : 1; 00666 unsigned int can_generate_breakpoint_events : 1; 00667 unsigned int can_suspend : 1; 00668 unsigned int can_redefine_any_class : 1; 00669 unsigned int can_get_current_thread_cpu_time : 1; 00670 unsigned int can_get_thread_cpu_time : 1; 00671 unsigned int can_generate_method_entry_events : 1; 00672 unsigned int can_generate_method_exit_events : 1; 00673 unsigned int can_generate_all_class_hook_events : 1; 00674 unsigned int can_generate_compiled_method_load_events : 1; 00675 unsigned int can_generate_monitor_events : 1; 00676 unsigned int can_generate_vm_object_alloc_events : 1; 00677 unsigned int can_generate_native_method_bind_events : 1; 00678 unsigned int can_generate_garbage_collection_events : 1; 00679 unsigned int can_generate_object_free_events : 1; 00680 unsigned int can_force_early_return : 1; 00681 unsigned int can_get_owned_monitor_stack_depth_info : 1; 00682 unsigned int can_get_constant_pool : 1; 00683 unsigned int can_set_native_method_prefix : 1; 00684 unsigned int can_retransform_classes : 1; 00685 unsigned int can_retransform_any_class : 1; 00686 unsigned int can_generate_resource_exhaustion_heap_events : 1; 00687 unsigned int can_generate_resource_exhaustion_threads_events : 1; 00688 unsigned int : 7; 00689 unsigned int : 16; 00690 unsigned int : 16; 00691 unsigned int : 16; 00692 unsigned int : 16; 00693 unsigned int : 16; 00694 } jvmtiCapabilities; 00695 00696 00697 /* Event Definitions */ 00698 00699 typedef void (JNICALL *jvmtiEventReserved)(void); 00700 00701 00702 typedef void (JNICALL *jvmtiEventBreakpoint) 00703 (jvmtiEnv *jvmti_env, 00704 JNIEnv* jni_env, 00705 jthread thread, 00706 jmethodID method, 00707 jlocation location); 00708 00709 typedef void (JNICALL *jvmtiEventClassFileLoadHook) 00710 (jvmtiEnv *jvmti_env, 00711 JNIEnv* jni_env, 00712 jclass class_being_redefined, 00713 jobject loader, 00714 const char* name, 00715 jobject protection_domain, 00716 jint class_data_len, 00717 const unsigned char* class_data, 00718 jint* new_class_data_len, 00719 unsigned char** new_class_data); 00720 00721 typedef void (JNICALL *jvmtiEventClassLoad) 00722 (jvmtiEnv *jvmti_env, 00723 JNIEnv* jni_env, 00724 jthread thread, 00725 jclass klass); 00726 00727 typedef void (JNICALL *jvmtiEventClassPrepare) 00728 (jvmtiEnv *jvmti_env, 00729 JNIEnv* jni_env, 00730 jthread thread, 00731 jclass klass); 00732 00733 typedef void (JNICALL *jvmtiEventCompiledMethodLoad) 00734 (jvmtiEnv *jvmti_env, 00735 jmethodID method, 00736 jint code_size, 00737 const void* code_addr, 00738 jint map_length, 00739 const jvmtiAddrLocationMap* map, 00740 const void* compile_info); 00741 00742 typedef void (JNICALL *jvmtiEventCompiledMethodUnload) 00743 (jvmtiEnv *jvmti_env, 00744 jmethodID method, 00745 const void* code_addr); 00746 00747 typedef void (JNICALL *jvmtiEventDataDumpRequest) 00748 (jvmtiEnv *jvmti_env); 00749 00750 typedef void (JNICALL *jvmtiEventDynamicCodeGenerated) 00751 (jvmtiEnv *jvmti_env, 00752 const char* name, 00753 const void* address, 00754 jint length); 00755 00756 typedef void (JNICALL *jvmtiEventException) 00757 (jvmtiEnv *jvmti_env, 00758 JNIEnv* jni_env, 00759 jthread thread, 00760 jmethodID method, 00761 jlocation location, 00762 jobject exception, 00763 jmethodID catch_method, 00764 jlocation catch_location); 00765 00766 typedef void (JNICALL *jvmtiEventExceptionCatch) 00767 (jvmtiEnv *jvmti_env, 00768 JNIEnv* jni_env, 00769 jthread thread, 00770 jmethodID method, 00771 jlocation location, 00772 jobject exception); 00773 00774 typedef void (JNICALL *jvmtiEventFieldAccess) 00775 (jvmtiEnv *jvmti_env, 00776 JNIEnv* jni_env, 00777 jthread thread, 00778 jmethodID method, 00779 jlocation location, 00780 jclass field_klass, 00781 jobject object, 00782 jfieldID field); 00783 00784 typedef void (JNICALL *jvmtiEventFieldModification) 00785 (jvmtiEnv *jvmti_env, 00786 JNIEnv* jni_env, 00787 jthread thread, 00788 jmethodID method, 00789 jlocation location, 00790 jclass field_klass, 00791 jobject object, 00792 jfieldID field, 00793 char signature_type, 00794 jvalue new_value); 00795 00796 typedef void (JNICALL *jvmtiEventFramePop) 00797 (jvmtiEnv *jvmti_env, 00798 JNIEnv* jni_env, 00799 jthread thread, 00800 jmethodID method, 00801 jboolean was_popped_by_exception); 00802 00803 typedef void (JNICALL *jvmtiEventGarbageCollectionFinish) 00804 (jvmtiEnv *jvmti_env); 00805 00806 typedef void (JNICALL *jvmtiEventGarbageCollectionStart) 00807 (jvmtiEnv *jvmti_env); 00808 00809 typedef void (JNICALL *jvmtiEventMethodEntry) 00810 (jvmtiEnv *jvmti_env, 00811 JNIEnv* jni_env, 00812 jthread thread, 00813 jmethodID method); 00814 00815 typedef void (JNICALL *jvmtiEventMethodExit) 00816 (jvmtiEnv *jvmti_env, 00817 JNIEnv* jni_env, 00818 jthread thread, 00819 jmethodID method, 00820 jboolean was_popped_by_exception, 00821 jvalue return_value); 00822 00823 typedef void (JNICALL *jvmtiEventMonitorContendedEnter) 00824 (jvmtiEnv *jvmti_env, 00825 JNIEnv* jni_env, 00826 jthread thread, 00827 jobject object); 00828 00829 typedef void (JNICALL *jvmtiEventMonitorContendedEntered) 00830 (jvmtiEnv *jvmti_env, 00831 JNIEnv* jni_env, 00832 jthread thread, 00833 jobject object); 00834 00835 typedef void (JNICALL *jvmtiEventMonitorWait) 00836 (jvmtiEnv *jvmti_env, 00837 JNIEnv* jni_env, 00838 jthread thread, 00839 jobject object, 00840 jlong timeout); 00841 00842 typedef void (JNICALL *jvmtiEventMonitorWaited) 00843 (jvmtiEnv *jvmti_env, 00844 JNIEnv* jni_env, 00845 jthread thread, 00846 jobject object, 00847 jboolean timed_out); 00848 00849 typedef void (JNICALL *jvmtiEventNativeMethodBind) 00850 (jvmtiEnv *jvmti_env, 00851 JNIEnv* jni_env, 00852 jthread thread, 00853 jmethodID method, 00854 void* address, 00855 void** new_address_ptr); 00856 00857 typedef void (JNICALL *jvmtiEventObjectFree) 00858 (jvmtiEnv *jvmti_env, 00859 jlong tag); 00860 00861 typedef void (JNICALL *jvmtiEventResourceExhausted) 00862 (jvmtiEnv *jvmti_env, 00863 JNIEnv* jni_env, 00864 jint flags, 00865 const void* reserved, 00866 const char* description); 00867 00868 typedef void (JNICALL *jvmtiEventSingleStep) 00869 (jvmtiEnv *jvmti_env, 00870 JNIEnv* jni_env, 00871 jthread thread, 00872 jmethodID method, 00873 jlocation location); 00874 00875 typedef void (JNICALL *jvmtiEventThreadEnd) 00876 (jvmtiEnv *jvmti_env, 00877 JNIEnv* jni_env, 00878 jthread thread); 00879 00880 typedef void (JNICALL *jvmtiEventThreadStart) 00881 (jvmtiEnv *jvmti_env, 00882 JNIEnv* jni_env, 00883 jthread thread); 00884 00885 typedef void (JNICALL *jvmtiEventVMDeath) 00886 (jvmtiEnv *jvmti_env, 00887 JNIEnv* jni_env); 00888 00889 typedef void (JNICALL *jvmtiEventVMInit) 00890 (jvmtiEnv *jvmti_env, 00891 JNIEnv* jni_env, 00892 jthread thread); 00893 00894 typedef void (JNICALL *jvmtiEventVMObjectAlloc) 00895 (jvmtiEnv *jvmti_env, 00896 JNIEnv* jni_env, 00897 jthread thread, 00898 jobject object, 00899 jclass object_klass, 00900 jlong size); 00901 00902 typedef void (JNICALL *jvmtiEventVMStart) 00903 (jvmtiEnv *jvmti_env, 00904 JNIEnv* jni_env); 00905 00906 /* Event Callback Structure */ 00907 00908 typedef struct { 00909 /* 50 : VM Initialization Event */ 00910 jvmtiEventVMInit VMInit; 00911 /* 51 : VM Death Event */ 00912 jvmtiEventVMDeath VMDeath; 00913 /* 52 : Thread Start */ 00914 jvmtiEventThreadStart ThreadStart; 00915 /* 53 : Thread End */ 00916 jvmtiEventThreadEnd ThreadEnd; 00917 /* 54 : Class File Load Hook */ 00918 jvmtiEventClassFileLoadHook ClassFileLoadHook; 00919 /* 55 : Class Load */ 00920 jvmtiEventClassLoad ClassLoad; 00921 /* 56 : Class Prepare */ 00922 jvmtiEventClassPrepare ClassPrepare; 00923 /* 57 : VM Start Event */ 00924 jvmtiEventVMStart VMStart; 00925 /* 58 : Exception */ 00926 jvmtiEventException Exception; 00927 /* 59 : Exception Catch */ 00928 jvmtiEventExceptionCatch ExceptionCatch; 00929 /* 60 : Single Step */ 00930 jvmtiEventSingleStep SingleStep; 00931 /* 61 : Frame Pop */ 00932 jvmtiEventFramePop FramePop; 00933 /* 62 : Breakpoint */ 00934 jvmtiEventBreakpoint Breakpoint; 00935 /* 63 : Field Access */ 00936 jvmtiEventFieldAccess FieldAccess; 00937 /* 64 : Field Modification */ 00938 jvmtiEventFieldModification FieldModification; 00939 /* 65 : Method Entry */ 00940 jvmtiEventMethodEntry MethodEntry; 00941 /* 66 : Method Exit */ 00942 jvmtiEventMethodExit MethodExit; 00943 /* 67 : Native Method Bind */ 00944 jvmtiEventNativeMethodBind NativeMethodBind; 00945 /* 68 : Compiled Method Load */ 00946 jvmtiEventCompiledMethodLoad CompiledMethodLoad; 00947 /* 69 : Compiled Method Unload */ 00948 jvmtiEventCompiledMethodUnload CompiledMethodUnload; 00949 /* 70 : Dynamic Code Generated */ 00950 jvmtiEventDynamicCodeGenerated DynamicCodeGenerated; 00951 /* 71 : Data Dump Request */ 00952 jvmtiEventDataDumpRequest DataDumpRequest; 00953 /* 72 */ 00954 jvmtiEventReserved reserved72; 00955 /* 73 : Monitor Wait */ 00956 jvmtiEventMonitorWait MonitorWait; 00957 /* 74 : Monitor Waited */ 00958 jvmtiEventMonitorWaited MonitorWaited; 00959 /* 75 : Monitor Contended Enter */ 00960 jvmtiEventMonitorContendedEnter MonitorContendedEnter; 00961 /* 76 : Monitor Contended Entered */ 00962 jvmtiEventMonitorContendedEntered MonitorContendedEntered; 00963 /* 77 */ 00964 jvmtiEventReserved reserved77; 00965 /* 78 */ 00966 jvmtiEventReserved reserved78; 00967 /* 79 */ 00968 jvmtiEventReserved reserved79; 00969 /* 80 : Resource Exhausted */ 00970 jvmtiEventResourceExhausted ResourceExhausted; 00971 /* 81 : Garbage Collection Start */ 00972 jvmtiEventGarbageCollectionStart GarbageCollectionStart; 00973 /* 82 : Garbage Collection Finish */ 00974 jvmtiEventGarbageCollectionFinish GarbageCollectionFinish; 00975 /* 83 : Object Free */ 00976 jvmtiEventObjectFree ObjectFree; 00977 /* 84 : VM Object Allocation */ 00978 jvmtiEventVMObjectAlloc VMObjectAlloc; 00979 } jvmtiEventCallbacks; 00980 00981 00982 /* Function Interface */ 00983 00984 typedef struct jvmtiInterface_1_ { 00985 00986 /* 1 : RESERVED */ 00987 void *reserved1; 00988 00989 /* 2 : Set Event Notification Mode */ 00990 jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env, 00991 jvmtiEventMode mode, 00992 jvmtiEvent event_type, 00993 jthread event_thread, 00994 ...); 00995 00996 /* 3 : RESERVED */ 00997 void *reserved3; 00998 00999 /* 4 : Get All Threads */ 01000 jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env, 01001 jint* threads_count_ptr, 01002 jthread** threads_ptr); 01003 01004 /* 5 : Suspend Thread */ 01005 jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env, 01006 jthread thread); 01007 01008 /* 6 : Resume Thread */ 01009 jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env, 01010 jthread thread); 01011 01012 /* 7 : Stop Thread */ 01013 jvmtiError (JNICALL *StopThread) (jvmtiEnv* env, 01014 jthread thread, 01015 jobject exception); 01016 01017 /* 8 : Interrupt Thread */ 01018 jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env, 01019 jthread thread); 01020 01021 /* 9 : Get Thread Info */ 01022 jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env, 01023 jthread thread, 01024 jvmtiThreadInfo* info_ptr); 01025 01026 /* 10 : Get Owned Monitor Info */ 01027 jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env, 01028 jthread thread, 01029 jint* owned_monitor_count_ptr, 01030 jobject** owned_monitors_ptr); 01031 01032 /* 11 : Get Current Contended Monitor */ 01033 jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env, 01034 jthread thread, 01035 jobject* monitor_ptr); 01036 01037 /* 12 : Run Agent Thread */ 01038 jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env, 01039 jthread thread, 01040 jvmtiStartFunction proc, 01041 const void* arg, 01042 jint priority); 01043 01044 /* 13 : Get Top Thread Groups */ 01045 jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env, 01046 jint* group_count_ptr, 01047 jthreadGroup** groups_ptr); 01048 01049 /* 14 : Get Thread Group Info */ 01050 jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env, 01051 jthreadGroup group, 01052 jvmtiThreadGroupInfo* info_ptr); 01053 01054 /* 15 : Get Thread Group Children */ 01055 jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env, 01056 jthreadGroup group, 01057 jint* thread_count_ptr, 01058 jthread** threads_ptr, 01059 jint* group_count_ptr, 01060 jthreadGroup** groups_ptr); 01061 01062 /* 16 : Get Frame Count */ 01063 jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env, 01064 jthread thread, 01065 jint* count_ptr); 01066 01067 /* 17 : Get Thread State */ 01068 jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env, 01069 jthread thread, 01070 jint* thread_state_ptr); 01071 01072 /* 18 : Get Current Thread */ 01073 jvmtiError (JNICALL *GetCurrentThread) (jvmtiEnv* env, 01074 jthread* thread_ptr); 01075 01076 /* 19 : Get Frame Location */ 01077 jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env, 01078 jthread thread, 01079 jint depth, 01080 jmethodID* method_ptr, 01081 jlocation* location_ptr); 01082 01083 /* 20 : Notify Frame Pop */ 01084 jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env, 01085 jthread thread, 01086 jint depth); 01087 01088 /* 21 : Get Local Variable - Object */ 01089 jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env, 01090 jthread thread, 01091 jint depth, 01092 jint slot, 01093 jobject* value_ptr); 01094 01095 /* 22 : Get Local Variable - Int */ 01096 jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env, 01097 jthread thread, 01098 jint depth, 01099 jint slot, 01100 jint* value_ptr); 01101 01102 /* 23 : Get Local Variable - Long */ 01103 jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv* env, 01104 jthread thread, 01105 jint depth, 01106 jint slot, 01107 jlong* value_ptr); 01108 01109 /* 24 : Get Local Variable - Float */ 01110 jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv* env, 01111 jthread thread, 01112 jint depth, 01113 jint slot, 01114 jfloat* value_ptr); 01115 01116 /* 25 : Get Local Variable - Double */ 01117 jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv* env, 01118 jthread thread, 01119 jint depth, 01120 jint slot, 01121 jdouble* value_ptr); 01122 01123 /* 26 : Set Local Variable - Object */ 01124 jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv* env, 01125 jthread thread, 01126 jint depth, 01127 jint slot, 01128 jobject value); 01129 01130 /* 27 : Set Local Variable - Int */ 01131 jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv* env, 01132 jthread thread, 01133 jint depth, 01134 jint slot, 01135 jint value); 01136 01137 /* 28 : Set Local Variable - Long */ 01138 jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv* env, 01139 jthread thread, 01140 jint depth, 01141 jint slot, 01142 jlong value); 01143 01144 /* 29 : Set Local Variable - Float */ 01145 jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv* env, 01146 jthread thread, 01147 jint depth, 01148 jint slot, 01149 jfloat value); 01150 01151 /* 30 : Set Local Variable - Double */ 01152 jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv* env, 01153 jthread thread, 01154 jint depth, 01155 jint slot, 01156 jdouble value); 01157 01158 /* 31 : Create Raw Monitor */ 01159 jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv* env, 01160 const char* name, 01161 jrawMonitorID* monitor_ptr); 01162 01163 /* 32 : Destroy Raw Monitor */ 01164 jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv* env, 01165 jrawMonitorID monitor); 01166 01167 /* 33 : Raw Monitor Enter */ 01168 jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv* env, 01169 jrawMonitorID monitor); 01170 01171 /* 34 : Raw Monitor Exit */ 01172 jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv* env, 01173 jrawMonitorID monitor); 01174 01175 /* 35 : Raw Monitor Wait */ 01176 jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv* env, 01177 jrawMonitorID monitor, 01178 jlong millis); 01179 01180 /* 36 : Raw Monitor Notify */ 01181 jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv* env, 01182 jrawMonitorID monitor); 01183 01184 /* 37 : Raw Monitor Notify All */ 01185 jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv* env, 01186 jrawMonitorID monitor); 01187 01188 /* 38 : Set Breakpoint */ 01189 jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv* env, 01190 jmethodID method, 01191 jlocation location); 01192 01193 /* 39 : Clear Breakpoint */ 01194 jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv* env, 01195 jmethodID method, 01196 jlocation location); 01197 01198 /* 40 : RESERVED */ 01199 void *reserved40; 01200 01201 /* 41 : Set Field Access Watch */ 01202 jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv* env, 01203 jclass klass, 01204 jfieldID field); 01205 01206 /* 42 : Clear Field Access Watch */ 01207 jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv* env, 01208 jclass klass, 01209 jfieldID field); 01210 01211 /* 43 : Set Field Modification Watch */ 01212 jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv* env, 01213 jclass klass, 01214 jfieldID field); 01215 01216 /* 44 : Clear Field Modification Watch */ 01217 jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv* env, 01218 jclass klass, 01219 jfieldID field); 01220 01221 /* 45 : Is Modifiable Class */ 01222 jvmtiError (JNICALL *IsModifiableClass) (jvmtiEnv* env, 01223 jclass klass, 01224 jboolean* is_modifiable_class_ptr); 01225 01226 /* 46 : Allocate */ 01227 jvmtiError (JNICALL *Allocate) (jvmtiEnv* env, 01228 jlong size, 01229 unsigned char** mem_ptr); 01230 01231 /* 47 : Deallocate */ 01232 jvmtiError (JNICALL *Deallocate) (jvmtiEnv* env, 01233 unsigned char* mem); 01234 01235 /* 48 : Get Class Signature */ 01236 jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv* env, 01237 jclass klass, 01238 char** signature_ptr, 01239 char** generic_ptr); 01240 01241 /* 49 : Get Class Status */ 01242 jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv* env, 01243 jclass klass, 01244 jint* status_ptr); 01245 01246 /* 50 : Get Source File Name */ 01247 jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv* env, 01248 jclass klass, 01249 char** source_name_ptr); 01250 01251 /* 51 : Get Class Modifiers */ 01252 jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv* env, 01253 jclass klass, 01254 jint* modifiers_ptr); 01255 01256 /* 52 : Get Class Methods */ 01257 jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv* env, 01258 jclass klass, 01259 jint* method_count_ptr, 01260 jmethodID** methods_ptr); 01261 01262 /* 53 : Get Class Fields */ 01263 jvmtiError (JNICALL *GetClassFields) (jvmtiEnv* env, 01264 jclass klass, 01265 jint* field_count_ptr, 01266 jfieldID** fields_ptr); 01267 01268 /* 54 : Get Implemented Interfaces */ 01269 jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv* env, 01270 jclass klass, 01271 jint* interface_count_ptr, 01272 jclass** interfaces_ptr); 01273 01274 /* 55 : Is Interface */ 01275 jvmtiError (JNICALL *IsInterface) (jvmtiEnv* env, 01276 jclass klass, 01277 jboolean* is_interface_ptr); 01278 01279 /* 56 : Is Array Class */ 01280 jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv* env, 01281 jclass klass, 01282 jboolean* is_array_class_ptr); 01283 01284 /* 57 : Get Class Loader */ 01285 jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv* env, 01286 jclass klass, 01287 jobject* classloader_ptr); 01288 01289 /* 58 : Get Object Hash Code */ 01290 jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv* env, 01291 jobject object, 01292 jint* hash_code_ptr); 01293 01294 /* 59 : Get Object Monitor Usage */ 01295 jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv* env, 01296 jobject object, 01297 jvmtiMonitorUsage* info_ptr); 01298 01299 /* 60 : Get Field Name (and Signature) */ 01300 jvmtiError (JNICALL *GetFieldName) (jvmtiEnv* env, 01301 jclass klass, 01302 jfieldID field, 01303 char** name_ptr, 01304 char** signature_ptr, 01305 char** generic_ptr); 01306 01307 /* 61 : Get Field Declaring Class */ 01308 jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv* env, 01309 jclass klass, 01310 jfieldID field, 01311 jclass* declaring_class_ptr); 01312 01313 /* 62 : Get Field Modifiers */ 01314 jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv* env, 01315 jclass klass, 01316 jfieldID field, 01317 jint* modifiers_ptr); 01318 01319 /* 63 : Is Field Synthetic */ 01320 jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv* env, 01321 jclass klass, 01322 jfieldID field, 01323 jboolean* is_synthetic_ptr); 01324 01325 /* 64 : Get Method Name (and Signature) */ 01326 jvmtiError (JNICALL *GetMethodName) (jvmtiEnv* env, 01327 jmethodID method, 01328 char** name_ptr, 01329 char** signature_ptr, 01330 char** generic_ptr); 01331 01332 /* 65 : Get Method Declaring Class */ 01333 jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv* env, 01334 jmethodID method, 01335 jclass* declaring_class_ptr); 01336 01337 /* 66 : Get Method Modifiers */ 01338 jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv* env, 01339 jmethodID method, 01340 jint* modifiers_ptr); 01341 01342 /* 67 : RESERVED */ 01343 void *reserved67; 01344 01345 /* 68 : Get Max Locals */ 01346 jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv* env, 01347 jmethodID method, 01348 jint* max_ptr); 01349 01350 /* 69 : Get Arguments Size */ 01351 jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv* env, 01352 jmethodID method, 01353 jint* size_ptr); 01354 01355 /* 70 : Get Line Number Table */ 01356 jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv* env, 01357 jmethodID method, 01358 jint* entry_count_ptr, 01359 jvmtiLineNumberEntry** table_ptr); 01360 01361 /* 71 : Get Method Location */ 01362 jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv* env, 01363 jmethodID method, 01364 jlocation* start_location_ptr, 01365 jlocation* end_location_ptr); 01366 01367 /* 72 : Get Local Variable Table */ 01368 jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv* env, 01369 jmethodID method, 01370 jint* entry_count_ptr, 01371 jvmtiLocalVariableEntry** table_ptr); 01372 01373 /* 73 : Set Native Method Prefix */ 01374 jvmtiError (JNICALL *SetNativeMethodPrefix) (jvmtiEnv* env, 01375 const char* prefix); 01376 01377 /* 74 : Set Native Method Prefixes */ 01378 jvmtiError (JNICALL *SetNativeMethodPrefixes) (jvmtiEnv* env, 01379 jint prefix_count, 01380 char** prefixes); 01381 01382 /* 75 : Get Bytecodes */ 01383 jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv* env, 01384 jmethodID method, 01385 jint* bytecode_count_ptr, 01386 unsigned char** bytecodes_ptr); 01387 01388 /* 76 : Is Method Native */ 01389 jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv* env, 01390 jmethodID method, 01391 jboolean* is_native_ptr); 01392 01393 /* 77 : Is Method Synthetic */ 01394 jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv* env, 01395 jmethodID method, 01396 jboolean* is_synthetic_ptr); 01397 01398 /* 78 : Get Loaded Classes */ 01399 jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv* env, 01400 jint* class_count_ptr, 01401 jclass** classes_ptr); 01402 01403 /* 79 : Get Classloader Classes */ 01404 jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv* env, 01405 jobject initiating_loader, 01406 jint* class_count_ptr, 01407 jclass** classes_ptr); 01408 01409 /* 80 : Pop Frame */ 01410 jvmtiError (JNICALL *PopFrame) (jvmtiEnv* env, 01411 jthread thread); 01412 01413 /* 81 : Force Early Return - Object */ 01414 jvmtiError (JNICALL *ForceEarlyReturnObject) (jvmtiEnv* env, 01415 jthread thread, 01416 jobject value); 01417 01418 /* 82 : Force Early Return - Int */ 01419 jvmtiError (JNICALL *ForceEarlyReturnInt) (jvmtiEnv* env, 01420 jthread thread, 01421 jint value); 01422 01423 /* 83 : Force Early Return - Long */ 01424 jvmtiError (JNICALL *ForceEarlyReturnLong) (jvmtiEnv* env, 01425 jthread thread, 01426 jlong value); 01427 01428 /* 84 : Force Early Return - Float */ 01429 jvmtiError (JNICALL *ForceEarlyReturnFloat) (jvmtiEnv* env, 01430 jthread thread, 01431 jfloat value); 01432 01433 /* 85 : Force Early Return - Double */ 01434 jvmtiError (JNICALL *ForceEarlyReturnDouble) (jvmtiEnv* env, 01435 jthread thread, 01436 jdouble value); 01437 01438 /* 86 : Force Early Return - Void */ 01439 jvmtiError (JNICALL *ForceEarlyReturnVoid) (jvmtiEnv* env, 01440 jthread thread); 01441 01442 /* 87 : Redefine Classes */ 01443 jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv* env, 01444 jint class_count, 01445 const jvmtiClassDefinition* class_definitions); 01446 01447 /* 88 : Get Version Number */ 01448 jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv* env, 01449 jint* version_ptr); 01450 01451 /* 89 : Get Capabilities */ 01452 jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv* env, 01453 jvmtiCapabilities* capabilities_ptr); 01454 01455 /* 90 : Get Source Debug Extension */ 01456 jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv* env, 01457 jclass klass, 01458 char** source_debug_extension_ptr); 01459 01460 /* 91 : Is Method Obsolete */ 01461 jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv* env, 01462 jmethodID method, 01463 jboolean* is_obsolete_ptr); 01464 01465 /* 92 : Suspend Thread List */ 01466 jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv* env, 01467 jint request_count, 01468 const jthread* request_list, 01469 jvmtiError* results); 01470 01471 /* 93 : Resume Thread List */ 01472 jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv* env, 01473 jint request_count, 01474 const jthread* request_list, 01475 jvmtiError* results); 01476 01477 /* 94 : RESERVED */ 01478 void *reserved94; 01479 01480 /* 95 : RESERVED */ 01481 void *reserved95; 01482 01483 /* 96 : RESERVED */ 01484 void *reserved96; 01485 01486 /* 97 : RESERVED */ 01487 void *reserved97; 01488 01489 /* 98 : RESERVED */ 01490 void *reserved98; 01491 01492 /* 99 : RESERVED */ 01493 void *reserved99; 01494 01495 /* 100 : Get All Stack Traces */ 01496 jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv* env, 01497 jint max_frame_count, 01498 jvmtiStackInfo** stack_info_ptr, 01499 jint* thread_count_ptr); 01500 01501 /* 101 : Get Thread List Stack Traces */ 01502 jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv* env, 01503 jint thread_count, 01504 const jthread* thread_list, 01505 jint max_frame_count, 01506 jvmtiStackInfo** stack_info_ptr); 01507 01508 /* 102 : Get Thread Local Storage */ 01509 jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv* env, 01510 jthread thread, 01511 void** data_ptr); 01512 01513 /* 103 : Set Thread Local Storage */ 01514 jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv* env, 01515 jthread thread, 01516 const void* data); 01517 01518 /* 104 : Get Stack Trace */ 01519 jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv* env, 01520 jthread thread, 01521 jint start_depth, 01522 jint max_frame_count, 01523 jvmtiFrameInfo* frame_buffer, 01524 jint* count_ptr); 01525 01526 /* 105 : RESERVED */ 01527 void *reserved105; 01528 01529 /* 106 : Get Tag */ 01530 jvmtiError (JNICALL *GetTag) (jvmtiEnv* env, 01531 jobject object, 01532 jlong* tag_ptr); 01533 01534 /* 107 : Set Tag */ 01535 jvmtiError (JNICALL *SetTag) (jvmtiEnv* env, 01536 jobject object, 01537 jlong tag); 01538 01539 /* 108 : Force Garbage Collection */ 01540 jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv* env); 01541 01542 /* 109 : Iterate Over Objects Reachable From Object */ 01543 jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv* env, 01544 jobject object, 01545 jvmtiObjectReferenceCallback object_reference_callback, 01546 const void* user_data); 01547 01548 /* 110 : Iterate Over Reachable Objects */ 01549 jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv* env, 01550 jvmtiHeapRootCallback heap_root_callback, 01551 jvmtiStackReferenceCallback stack_ref_callback, 01552 jvmtiObjectReferenceCallback object_ref_callback, 01553 const void* user_data); 01554 01555 /* 111 : Iterate Over Heap */ 01556 jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv* env, 01557 jvmtiHeapObjectFilter object_filter, 01558 jvmtiHeapObjectCallback heap_object_callback, 01559 const void* user_data); 01560 01561 /* 112 : Iterate Over Instances Of Class */ 01562 jvmtiError (JNICALL *IterateOverInstancesOfClass) (jvmtiEnv* env, 01563 jclass klass, 01564 jvmtiHeapObjectFilter object_filter, 01565 jvmtiHeapObjectCallback heap_object_callback, 01566 const void* user_data); 01567 01568 /* 113 : RESERVED */ 01569 void *reserved113; 01570 01571 /* 114 : Get Objects With Tags */ 01572 jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv* env, 01573 jint tag_count, 01574 const jlong* tags, 01575 jint* count_ptr, 01576 jobject** object_result_ptr, 01577 jlong** tag_result_ptr); 01578 01579 /* 115 : Follow References */ 01580 jvmtiError (JNICALL *FollowReferences) (jvmtiEnv* env, 01581 jint heap_filter, 01582 jclass klass, 01583 jobject initial_object, 01584 const jvmtiHeapCallbacks* callbacks, 01585 const void* user_data); 01586 01587 /* 116 : Iterate Through Heap */ 01588 jvmtiError (JNICALL *IterateThroughHeap) (jvmtiEnv* env, 01589 jint heap_filter, 01590 jclass klass, 01591 const jvmtiHeapCallbacks* callbacks, 01592 const void* user_data); 01593 01594 /* 117 : RESERVED */ 01595 void *reserved117; 01596 01597 /* 118 : RESERVED */ 01598 void *reserved118; 01599 01600 /* 119 : RESERVED */ 01601 void *reserved119; 01602 01603 /* 120 : Set JNI Function Table */ 01604 jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv* env, 01605 const jniNativeInterface* function_table); 01606 01607 /* 121 : Get JNI Function Table */ 01608 jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv* env, 01609 jniNativeInterface** function_table); 01610 01611 /* 122 : Set Event Callbacks */ 01612 jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv* env, 01613 const jvmtiEventCallbacks* callbacks, 01614 jint size_of_callbacks); 01615 01616 /* 123 : Generate Events */ 01617 jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv* env, 01618 jvmtiEvent event_type); 01619 01620 /* 124 : Get Extension Functions */ 01621 jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv* env, 01622 jint* extension_count_ptr, 01623 jvmtiExtensionFunctionInfo** extensions); 01624 01625 /* 125 : Get Extension Events */ 01626 jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv* env, 01627 jint* extension_count_ptr, 01628 jvmtiExtensionEventInfo** extensions); 01629 01630 /* 126 : Set Extension Event Callback */ 01631 jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv* env, 01632 jint extension_event_index, 01633 jvmtiExtensionEvent callback); 01634 01635 /* 127 : Dispose Environment */ 01636 jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv* env); 01637 01638 /* 128 : Get Error Name */ 01639 jvmtiError (JNICALL *GetErrorName) (jvmtiEnv* env, 01640 jvmtiError error, 01641 char** name_ptr); 01642 01643 /* 129 : Get JLocation Format */ 01644 jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv* env, 01645 jvmtiJlocationFormat* format_ptr); 01646 01647 /* 130 : Get System Properties */ 01648 jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv* env, 01649 jint* count_ptr, 01650 char*** property_ptr); 01651 01652 /* 131 : Get System Property */ 01653 jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv* env, 01654 const char* property, 01655 char** value_ptr); 01656 01657 /* 132 : Set System Property */ 01658 jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv* env, 01659 const char* property, 01660 const char* value); 01661 01662 /* 133 : Get Phase */ 01663 jvmtiError (JNICALL *GetPhase) (jvmtiEnv* env, 01664 jvmtiPhase* phase_ptr); 01665 01666 /* 134 : Get Current Thread CPU Timer Information */ 01667 jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv* env, 01668 jvmtiTimerInfo* info_ptr); 01669 01670 /* 135 : Get Current Thread CPU Time */ 01671 jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv* env, 01672 jlong* nanos_ptr); 01673 01674 /* 136 : Get Thread CPU Timer Information */ 01675 jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv* env, 01676 jvmtiTimerInfo* info_ptr); 01677 01678 /* 137 : Get Thread CPU Time */ 01679 jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv* env, 01680 jthread thread, 01681 jlong* nanos_ptr); 01682 01683 /* 138 : Get Timer Information */ 01684 jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv* env, 01685 jvmtiTimerInfo* info_ptr); 01686 01687 /* 139 : Get Time */ 01688 jvmtiError (JNICALL *GetTime) (jvmtiEnv* env, 01689 jlong* nanos_ptr); 01690 01691 /* 140 : Get Potential Capabilities */ 01692 jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv* env, 01693 jvmtiCapabilities* capabilities_ptr); 01694 01695 /* 141 : RESERVED */ 01696 void *reserved141; 01697 01698 /* 142 : Add Capabilities */ 01699 jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv* env, 01700 const jvmtiCapabilities* capabilities_ptr); 01701 01702 /* 143 : Relinquish Capabilities */ 01703 jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv* env, 01704 const jvmtiCapabilities* capabilities_ptr); 01705 01706 /* 144 : Get Available Processors */ 01707 jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv* env, 01708 jint* processor_count_ptr); 01709 01710 /* 145 : Get Class Version Numbers */ 01711 jvmtiError (JNICALL *GetClassVersionNumbers) (jvmtiEnv* env, 01712 jclass klass, 01713 jint* minor_version_ptr, 01714 jint* major_version_ptr); 01715 01716 /* 146 : Get Constant Pool */ 01717 jvmtiError (JNICALL *GetConstantPool) (jvmtiEnv* env, 01718 jclass klass, 01719 jint* constant_pool_count_ptr, 01720 jint* constant_pool_byte_count_ptr, 01721 unsigned char** constant_pool_bytes_ptr); 01722 01723 /* 147 : Get Environment Local Storage */ 01724 jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv* env, 01725 void** data_ptr); 01726 01727 /* 148 : Set Environment Local Storage */ 01728 jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv* env, 01729 const void* data); 01730 01731 /* 149 : Add To Bootstrap Class Loader Search */ 01732 jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv* env, 01733 const char* segment); 01734 01735 /* 150 : Set Verbose Flag */ 01736 jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv* env, 01737 jvmtiVerboseFlag flag, 01738 jboolean value); 01739 01740 /* 151 : Add To System Class Loader Search */ 01741 jvmtiError (JNICALL *AddToSystemClassLoaderSearch) (jvmtiEnv* env, 01742 const char* segment); 01743 01744 /* 152 : Retransform Classes */ 01745 jvmtiError (JNICALL *RetransformClasses) (jvmtiEnv* env, 01746 jint class_count, 01747 const jclass* classes); 01748 01749 /* 153 : Get Owned Monitor Stack Depth Info */ 01750 jvmtiError (JNICALL *GetOwnedMonitorStackDepthInfo) (jvmtiEnv* env, 01751 jthread thread, 01752 jint* monitor_info_count_ptr, 01753 jvmtiMonitorStackDepthInfo** monitor_info_ptr); 01754 01755 /* 154 : Get Object Size */ 01756 jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv* env, 01757 jobject object, 01758 jlong* size_ptr); 01759 01760 } jvmtiInterface_1; 01761 01762 struct _jvmtiEnv { 01763 const struct jvmtiInterface_1_ *functions; 01764 #ifdef __cplusplus 01765 01766 01767 jvmtiError Allocate(jlong size, 01768 unsigned char** mem_ptr) { 01769 return functions->Allocate(this, size, mem_ptr); 01770 } 01771 01772 jvmtiError Deallocate(unsigned char* mem) { 01773 return functions->Deallocate(this, mem); 01774 } 01775 01776 jvmtiError GetThreadState(jthread thread, 01777 jint* thread_state_ptr) { 01778 return functions->GetThreadState(this, thread, thread_state_ptr); 01779 } 01780 01781 jvmtiError GetCurrentThread(jthread* thread_ptr) { 01782 return functions->GetCurrentThread(this, thread_ptr); 01783 } 01784 01785 jvmtiError GetAllThreads(jint* threads_count_ptr, 01786 jthread** threads_ptr) { 01787 return functions->GetAllThreads(this, threads_count_ptr, threads_ptr); 01788 } 01789 01790 jvmtiError SuspendThread(jthread thread) { 01791 return functions->SuspendThread(this, thread); 01792 } 01793 01794 jvmtiError SuspendThreadList(jint request_count, 01795 const jthread* request_list, 01796 jvmtiError* results) { 01797 return functions->SuspendThreadList(this, request_count, request_list, results); 01798 } 01799 01800 jvmtiError ResumeThread(jthread thread) { 01801 return functions->ResumeThread(this, thread); 01802 } 01803 01804 jvmtiError ResumeThreadList(jint request_count, 01805 const jthread* request_list, 01806 jvmtiError* results) { 01807 return functions->ResumeThreadList(this, request_count, request_list, results); 01808 } 01809 01810 jvmtiError StopThread(jthread thread, 01811 jobject exception) { 01812 return functions->StopThread(this, thread, exception); 01813 } 01814 01815 jvmtiError InterruptThread(jthread thread) { 01816 return functions->InterruptThread(this, thread); 01817 } 01818 01819 jvmtiError GetThreadInfo(jthread thread, 01820 jvmtiThreadInfo* info_ptr) { 01821 return functions->GetThreadInfo(this, thread, info_ptr); 01822 } 01823 01824 jvmtiError GetOwnedMonitorInfo(jthread thread, 01825 jint* owned_monitor_count_ptr, 01826 jobject** owned_monitors_ptr) { 01827 return functions->GetOwnedMonitorInfo(this, thread, owned_monitor_count_ptr, owned_monitors_ptr); 01828 } 01829 01830 jvmtiError GetOwnedMonitorStackDepthInfo(jthread thread, 01831 jint* monitor_info_count_ptr, 01832 jvmtiMonitorStackDepthInfo** monitor_info_ptr) { 01833 return functions->GetOwnedMonitorStackDepthInfo(this, thread, monitor_info_count_ptr, monitor_info_ptr); 01834 } 01835 01836 jvmtiError GetCurrentContendedMonitor(jthread thread, 01837 jobject* monitor_ptr) { 01838 return functions->GetCurrentContendedMonitor(this, thread, monitor_ptr); 01839 } 01840 01841 jvmtiError RunAgentThread(jthread thread, 01842 jvmtiStartFunction proc, 01843 const void* arg, 01844 jint priority) { 01845 return functions->RunAgentThread(this, thread, proc, arg, priority); 01846 } 01847 01848 jvmtiError SetThreadLocalStorage(jthread thread, 01849 const void* data) { 01850 return functions->SetThreadLocalStorage(this, thread, data); 01851 } 01852 01853 jvmtiError GetThreadLocalStorage(jthread thread, 01854 void** data_ptr) { 01855 return functions->GetThreadLocalStorage(this, thread, data_ptr); 01856 } 01857 01858 jvmtiError GetTopThreadGroups(jint* group_count_ptr, 01859 jthreadGroup** groups_ptr) { 01860 return functions->GetTopThreadGroups(this, group_count_ptr, groups_ptr); 01861 } 01862 01863 jvmtiError GetThreadGroupInfo(jthreadGroup group, 01864 jvmtiThreadGroupInfo* info_ptr) { 01865 return functions->GetThreadGroupInfo(this, group, info_ptr); 01866 } 01867 01868 jvmtiError GetThreadGroupChildren(jthreadGroup group, 01869 jint* thread_count_ptr, 01870 jthread** threads_ptr, 01871 jint* group_count_ptr, 01872 jthreadGroup** groups_ptr) { 01873 return functions->GetThreadGroupChildren(this, group, thread_count_ptr, threads_ptr, group_count_ptr, groups_ptr); 01874 } 01875 01876 jvmtiError GetStackTrace(jthread thread, 01877 jint start_depth, 01878 jint max_frame_count, 01879 jvmtiFrameInfo* frame_buffer, 01880 jint* count_ptr) { 01881 return functions->GetStackTrace(this, thread, start_depth, max_frame_count, frame_buffer, count_ptr); 01882 } 01883 01884 jvmtiError GetAllStackTraces(jint max_frame_count, 01885 jvmtiStackInfo** stack_info_ptr, 01886 jint* thread_count_ptr) { 01887 return functions->GetAllStackTraces(this, max_frame_count, stack_info_ptr, thread_count_ptr); 01888 } 01889 01890 jvmtiError GetThreadListStackTraces(jint thread_count, 01891 const jthread* thread_list, 01892 jint max_frame_count, 01893 jvmtiStackInfo** stack_info_ptr) { 01894 return functions->GetThreadListStackTraces(this, thread_count, thread_list, max_frame_count, stack_info_ptr); 01895 } 01896 01897 jvmtiError GetFrameCount(jthread thread, 01898 jint* count_ptr) { 01899 return functions->GetFrameCount(this, thread, count_ptr); 01900 } 01901 01902 jvmtiError PopFrame(jthread thread) { 01903 return functions->PopFrame(this, thread); 01904 } 01905 01906 jvmtiError GetFrameLocation(jthread thread, 01907 jint depth, 01908 jmethodID* method_ptr, 01909 jlocation* location_ptr) { 01910 return functions->GetFrameLocation(this, thread, depth, method_ptr, location_ptr); 01911 } 01912 01913 jvmtiError NotifyFramePop(jthread thread, 01914 jint depth) { 01915 return functions->NotifyFramePop(this, thread, depth); 01916 } 01917 01918 jvmtiError ForceEarlyReturnObject(jthread thread, 01919 jobject value) { 01920 return functions->ForceEarlyReturnObject(this, thread, value); 01921 } 01922 01923 jvmtiError ForceEarlyReturnInt(jthread thread, 01924 jint value) { 01925 return functions->ForceEarlyReturnInt(this, thread, value); 01926 } 01927 01928 jvmtiError ForceEarlyReturnLong(jthread thread, 01929 jlong value) { 01930 return functions->ForceEarlyReturnLong(this, thread, value); 01931 } 01932 01933 jvmtiError ForceEarlyReturnFloat(jthread thread, 01934 jfloat value) { 01935 return functions->ForceEarlyReturnFloat(this, thread, value); 01936 } 01937 01938 jvmtiError ForceEarlyReturnDouble(jthread thread, 01939 jdouble value) { 01940 return functions->ForceEarlyReturnDouble(this, thread, value); 01941 } 01942 01943 jvmtiError ForceEarlyReturnVoid(jthread thread) { 01944 return functions->ForceEarlyReturnVoid(this, thread); 01945 } 01946 01947 jvmtiError FollowReferences(jint heap_filter, 01948 jclass klass, 01949 jobject initial_object, 01950 const jvmtiHeapCallbacks* callbacks, 01951 const void* user_data) { 01952 return functions->FollowReferences(this, heap_filter, klass, initial_object, callbacks, user_data); 01953 } 01954 01955 jvmtiError IterateThroughHeap(jint heap_filter, 01956 jclass klass, 01957 const jvmtiHeapCallbacks* callbacks, 01958 const void* user_data) { 01959 return functions->IterateThroughHeap(this, heap_filter, klass, callbacks, user_data); 01960 } 01961 01962 jvmtiError GetTag(jobject object, 01963 jlong* tag_ptr) { 01964 return functions->GetTag(this, object, tag_ptr); 01965 } 01966 01967 jvmtiError SetTag(jobject object, 01968 jlong tag) { 01969 return functions->SetTag(this, object, tag); 01970 } 01971 01972 jvmtiError GetObjectsWithTags(jint tag_count, 01973 const jlong* tags, 01974 jint* count_ptr, 01975 jobject** object_result_ptr, 01976 jlong** tag_result_ptr) { 01977 return functions->GetObjectsWithTags(this, tag_count, tags, count_ptr, object_result_ptr, tag_result_ptr); 01978 } 01979 01980 jvmtiError ForceGarbageCollection() { 01981 return functions->ForceGarbageCollection(this); 01982 } 01983 01984 jvmtiError IterateOverObjectsReachableFromObject(jobject object, 01985 jvmtiObjectReferenceCallback object_reference_callback, 01986 const void* user_data) { 01987 return functions->IterateOverObjectsReachableFromObject(this, object, object_reference_callback, user_data); 01988 } 01989 01990 jvmtiError IterateOverReachableObjects(jvmtiHeapRootCallback heap_root_callback, 01991 jvmtiStackReferenceCallback stack_ref_callback, 01992 jvmtiObjectReferenceCallback object_ref_callback, 01993 const void* user_data) { 01994 return functions->IterateOverReachableObjects(this, heap_root_callback, stack_ref_callback, object_ref_callback, user_data); 01995 } 01996 01997 jvmtiError IterateOverHeap(jvmtiHeapObjectFilter object_filter, 01998 jvmtiHeapObjectCallback heap_object_callback, 01999 const void* user_data) { 02000 return functions->IterateOverHeap(this, object_filter, heap_object_callback, user_data); 02001 } 02002 02003 jvmtiError IterateOverInstancesOfClass(jclass klass, 02004 jvmtiHeapObjectFilter object_filter, 02005 jvmtiHeapObjectCallback heap_object_callback, 02006 const void* user_data) { 02007 return functions->IterateOverInstancesOfClass(this, klass, object_filter, heap_object_callback, user_data); 02008 } 02009 02010 jvmtiError GetLocalObject(jthread thread, 02011 jint depth, 02012 jint slot, 02013 jobject* value_ptr) { 02014 return functions->GetLocalObject(this, thread, depth, slot, value_ptr); 02015 } 02016 02017 jvmtiError GetLocalInt(jthread thread, 02018 jint depth, 02019 jint slot, 02020 jint* value_ptr) { 02021 return functions->GetLocalInt(this, thread, depth, slot, value_ptr); 02022 } 02023 02024 jvmtiError GetLocalLong(jthread thread, 02025 jint depth, 02026 jint slot, 02027 jlong* value_ptr) { 02028 return functions->GetLocalLong(this, thread, depth, slot, value_ptr); 02029 } 02030 02031 jvmtiError GetLocalFloat(jthread thread, 02032 jint depth, 02033 jint slot, 02034 jfloat* value_ptr) { 02035 return functions->GetLocalFloat(this, thread, depth, slot, value_ptr); 02036 } 02037 02038 jvmtiError GetLocalDouble(jthread thread, 02039 jint depth, 02040 jint slot, 02041 jdouble* value_ptr) { 02042 return functions->GetLocalDouble(this, thread, depth, slot, value_ptr); 02043 } 02044 02045 jvmtiError SetLocalObject(jthread thread, 02046 jint depth, 02047 jint slot, 02048 jobject value) { 02049 return functions->SetLocalObject(this, thread, depth, slot, value); 02050 } 02051 02052 jvmtiError SetLocalInt(jthread thread, 02053 jint depth, 02054 jint slot, 02055 jint value) { 02056 return functions->SetLocalInt(this, thread, depth, slot, value); 02057 } 02058 02059 jvmtiError SetLocalLong(jthread thread, 02060 jint depth, 02061 jint slot, 02062 jlong value) { 02063 return functions->SetLocalLong(this, thread, depth, slot, value); 02064 } 02065 02066 jvmtiError SetLocalFloat(jthread thread, 02067 jint depth, 02068 jint slot, 02069 jfloat value) { 02070 return functions->SetLocalFloat(this, thread, depth, slot, value); 02071 } 02072 02073 jvmtiError SetLocalDouble(jthread thread, 02074 jint depth, 02075 jint slot, 02076 jdouble value) { 02077 return functions->SetLocalDouble(this, thread, depth, slot, value); 02078 } 02079 02080 jvmtiError SetBreakpoint(jmethodID method, 02081 jlocation location) { 02082 return functions->SetBreakpoint(this, method, location); 02083 } 02084 02085 jvmtiError ClearBreakpoint(jmethodID method, 02086 jlocation location) { 02087 return functions->ClearBreakpoint(this, method, location); 02088 } 02089 02090 jvmtiError SetFieldAccessWatch(jclass klass, 02091 jfieldID field) { 02092 return functions->SetFieldAccessWatch(this, klass, field); 02093 } 02094 02095 jvmtiError ClearFieldAccessWatch(jclass klass, 02096 jfieldID field) { 02097 return functions->ClearFieldAccessWatch(this, klass, field); 02098 } 02099 02100 jvmtiError SetFieldModificationWatch(jclass klass, 02101 jfieldID field) { 02102 return functions->SetFieldModificationWatch(this, klass, field); 02103 } 02104 02105 jvmtiError ClearFieldModificationWatch(jclass klass, 02106 jfieldID field) { 02107 return functions->ClearFieldModificationWatch(this, klass, field); 02108 } 02109 02110 jvmtiError GetLoadedClasses(jint* class_count_ptr, 02111 jclass** classes_ptr) { 02112 return functions->GetLoadedClasses(this, class_count_ptr, classes_ptr); 02113 } 02114 02115 jvmtiError GetClassLoaderClasses(jobject initiating_loader, 02116 jint* class_count_ptr, 02117 jclass** classes_ptr) { 02118 return functions->GetClassLoaderClasses(this, initiating_loader, class_count_ptr, classes_ptr); 02119 } 02120 02121 jvmtiError GetClassSignature(jclass klass, 02122 char** signature_ptr, 02123 char** generic_ptr) { 02124 return functions->GetClassSignature(this, klass, signature_ptr, generic_ptr); 02125 } 02126 02127 jvmtiError GetClassStatus(jclass klass, 02128 jint* status_ptr) { 02129 return functions->GetClassStatus(this, klass, status_ptr); 02130 } 02131 02132 jvmtiError GetSourceFileName(jclass klass, 02133 char** source_name_ptr) { 02134 return functions->GetSourceFileName(this, klass, source_name_ptr); 02135 } 02136 02137 jvmtiError GetClassModifiers(jclass klass, 02138 jint* modifiers_ptr) { 02139 return functions->GetClassModifiers(this, klass, modifiers_ptr); 02140 } 02141 02142 jvmtiError GetClassMethods(jclass klass, 02143 jint* method_count_ptr, 02144 jmethodID** methods_ptr) { 02145 return functions->GetClassMethods(this, klass, method_count_ptr, methods_ptr); 02146 } 02147 02148 jvmtiError GetClassFields(jclass klass, 02149 jint* field_count_ptr, 02150 jfieldID** fields_ptr) { 02151 return functions->GetClassFields(this, klass, field_count_ptr, fields_ptr); 02152 } 02153 02154 jvmtiError GetImplementedInterfaces(jclass klass, 02155 jint* interface_count_ptr, 02156 jclass** interfaces_ptr) { 02157 return functions->GetImplementedInterfaces(this, klass, interface_count_ptr, interfaces_ptr); 02158 } 02159 02160 jvmtiError GetClassVersionNumbers(jclass klass, 02161 jint* minor_version_ptr, 02162 jint* major_version_ptr) { 02163 return functions->GetClassVersionNumbers(this, klass, minor_version_ptr, major_version_ptr); 02164 } 02165 02166 jvmtiError GetConstantPool(jclass klass, 02167 jint* constant_pool_count_ptr, 02168 jint* constant_pool_byte_count_ptr, 02169 unsigned char** constant_pool_bytes_ptr) { 02170 return functions->GetConstantPool(this, klass, constant_pool_count_ptr, constant_pool_byte_count_ptr, constant_pool_bytes_ptr); 02171 } 02172 02173 jvmtiError IsInterface(jclass klass, 02174 jboolean* is_interface_ptr) { 02175 return functions->IsInterface(this, klass, is_interface_ptr); 02176 } 02177 02178 jvmtiError IsArrayClass(jclass klass, 02179 jboolean* is_array_class_ptr) { 02180 return functions->IsArrayClass(this, klass, is_array_class_ptr); 02181 } 02182 02183 jvmtiError IsModifiableClass(jclass klass, 02184 jboolean* is_modifiable_class_ptr) { 02185 return functions->IsModifiableClass(this, klass, is_modifiable_class_ptr); 02186 } 02187 02188 jvmtiError GetClassLoader(jclass klass, 02189 jobject* classloader_ptr) { 02190 return functions->GetClassLoader(this, klass, classloader_ptr); 02191 } 02192 02193 jvmtiError GetSourceDebugExtension(jclass klass, 02194 char** source_debug_extension_ptr) { 02195 return functions->GetSourceDebugExtension(this, klass, source_debug_extension_ptr); 02196 } 02197 02198 jvmtiError RetransformClasses(jint class_count, 02199 const jclass* classes) { 02200 return functions->RetransformClasses(this, class_count, classes); 02201 } 02202 02203 jvmtiError RedefineClasses(jint class_count, 02204 const jvmtiClassDefinition* class_definitions) { 02205 return functions->RedefineClasses(this, class_count, class_definitions); 02206 } 02207 02208 jvmtiError GetObjectSize(jobject object, 02209 jlong* size_ptr) { 02210 return functions->GetObjectSize(this, object, size_ptr); 02211 } 02212 02213 jvmtiError GetObjectHashCode(jobject object, 02214 jint* hash_code_ptr) { 02215 return functions->GetObjectHashCode(this, object, hash_code_ptr); 02216 } 02217 02218 jvmtiError GetObjectMonitorUsage(jobject object, 02219 jvmtiMonitorUsage* info_ptr) { 02220 return functions->GetObjectMonitorUsage(this, object, info_ptr); 02221 } 02222 02223 jvmtiError GetFieldName(jclass klass, 02224 jfieldID field, 02225 char** name_ptr, 02226 char** signature_ptr, 02227 char** generic_ptr) { 02228 return functions->GetFieldName(this, klass, field, name_ptr, signature_ptr, generic_ptr); 02229 } 02230 02231 jvmtiError GetFieldDeclaringClass(jclass klass, 02232 jfieldID field, 02233 jclass* declaring_class_ptr) { 02234 return functions->GetFieldDeclaringClass(this, klass, field, declaring_class_ptr); 02235 } 02236 02237 jvmtiError GetFieldModifiers(jclass klass, 02238 jfieldID field, 02239 jint* modifiers_ptr) { 02240 return functions->GetFieldModifiers(this, klass, field, modifiers_ptr); 02241 } 02242 02243 jvmtiError IsFieldSynthetic(jclass klass, 02244 jfieldID field, 02245 jboolean* is_synthetic_ptr) { 02246 return functions->IsFieldSynthetic(this, klass, field, is_synthetic_ptr); 02247 } 02248 02249 jvmtiError GetMethodName(jmethodID method, 02250 char** name_ptr, 02251 char** signature_ptr, 02252 char** generic_ptr) { 02253 return functions->GetMethodName(this, method, name_ptr, signature_ptr, generic_ptr); 02254 } 02255 02256 jvmtiError GetMethodDeclaringClass(jmethodID method, 02257 jclass* declaring_class_ptr) { 02258 return functions->GetMethodDeclaringClass(this, method, declaring_class_ptr); 02259 } 02260 02261 jvmtiError GetMethodModifiers(jmethodID method, 02262 jint* modifiers_ptr) { 02263 return functions->GetMethodModifiers(this, method, modifiers_ptr); 02264 } 02265 02266 jvmtiError GetMaxLocals(jmethodID method, 02267 jint* max_ptr) { 02268 return functions->GetMaxLocals(this, method, max_ptr); 02269 } 02270 02271 jvmtiError GetArgumentsSize(jmethodID method, 02272 jint* size_ptr) { 02273 return functions->GetArgumentsSize(this, method, size_ptr); 02274 } 02275 02276 jvmtiError GetLineNumberTable(jmethodID method, 02277 jint* entry_count_ptr, 02278 jvmtiLineNumberEntry** table_ptr) { 02279 return functions->GetLineNumberTable(this, method, entry_count_ptr, table_ptr); 02280 } 02281 02282 jvmtiError GetMethodLocation(jmethodID method, 02283 jlocation* start_location_ptr, 02284 jlocation* end_location_ptr) { 02285 return functions->GetMethodLocation(this, method, start_location_ptr, end_location_ptr); 02286 } 02287 02288 jvmtiError GetLocalVariableTable(jmethodID method, 02289 jint* entry_count_ptr, 02290 jvmtiLocalVariableEntry** table_ptr) { 02291 return functions->GetLocalVariableTable(this, method, entry_count_ptr, table_ptr); 02292 } 02293 02294 jvmtiError GetBytecodes(jmethodID method, 02295 jint* bytecode_count_ptr, 02296 unsigned char** bytecodes_ptr) { 02297 return functions->GetBytecodes(this, method, bytecode_count_ptr, bytecodes_ptr); 02298 } 02299 02300 jvmtiError IsMethodNative(jmethodID method, 02301 jboolean* is_native_ptr) { 02302 return functions->IsMethodNative(this, method, is_native_ptr); 02303 } 02304 02305 jvmtiError IsMethodSynthetic(jmethodID method, 02306 jboolean* is_synthetic_ptr) { 02307 return functions->IsMethodSynthetic(this, method, is_synthetic_ptr); 02308 } 02309 02310 jvmtiError IsMethodObsolete(jmethodID method, 02311 jboolean* is_obsolete_ptr) { 02312 return functions->IsMethodObsolete(this, method, is_obsolete_ptr); 02313 } 02314 02315 jvmtiError SetNativeMethodPrefix(const char* prefix) { 02316 return functions->SetNativeMethodPrefix(this, prefix); 02317 } 02318 02319 jvmtiError SetNativeMethodPrefixes(jint prefix_count, 02320 char** prefixes) { 02321 return functions->SetNativeMethodPrefixes(this, prefix_count, prefixes); 02322 } 02323 02324 jvmtiError CreateRawMonitor(const char* name, 02325 jrawMonitorID* monitor_ptr) { 02326 return functions->CreateRawMonitor(this, name, monitor_ptr); 02327 } 02328 02329 jvmtiError DestroyRawMonitor(jrawMonitorID monitor) { 02330 return functions->DestroyRawMonitor(this, monitor); 02331 } 02332 02333 jvmtiError RawMonitorEnter(jrawMonitorID monitor) { 02334 return functions->RawMonitorEnter(this, monitor); 02335 } 02336 02337 jvmtiError RawMonitorExit(jrawMonitorID monitor) { 02338 return functions->RawMonitorExit(this, monitor); 02339 } 02340 02341 jvmtiError RawMonitorWait(jrawMonitorID monitor, 02342 jlong millis) { 02343 return functions->RawMonitorWait(this, monitor, millis); 02344 } 02345 02346 jvmtiError RawMonitorNotify(jrawMonitorID monitor) { 02347 return functions->RawMonitorNotify(this, monitor); 02348 } 02349 02350 jvmtiError RawMonitorNotifyAll(jrawMonitorID monitor) { 02351 return functions->RawMonitorNotifyAll(this, monitor); 02352 } 02353 02354 jvmtiError SetJNIFunctionTable(const jniNativeInterface* function_table) { 02355 return functions->SetJNIFunctionTable(this, function_table); 02356 } 02357 02358 jvmtiError GetJNIFunctionTable(jniNativeInterface** function_table) { 02359 return functions->GetJNIFunctionTable(this, function_table); 02360 } 02361 02362 jvmtiError SetEventCallbacks(const jvmtiEventCallbacks* callbacks, 02363 jint size_of_callbacks) { 02364 return functions->SetEventCallbacks(this, callbacks, size_of_callbacks); 02365 } 02366 02367 jvmtiError SetEventNotificationMode(jvmtiEventMode mode, 02368 jvmtiEvent event_type, 02369 jthread event_thread, 02370 ...) { 02371 return functions->SetEventNotificationMode(this, mode, event_type, event_thread); 02372 } 02373 02374 jvmtiError GenerateEvents(jvmtiEvent event_type) { 02375 return functions->GenerateEvents(this, event_type); 02376 } 02377 02378 jvmtiError GetExtensionFunctions(jint* extension_count_ptr, 02379 jvmtiExtensionFunctionInfo** extensions) { 02380 return functions->GetExtensionFunctions(this, extension_count_ptr, extensions); 02381 } 02382 02383 jvmtiError GetExtensionEvents(jint* extension_count_ptr, 02384 jvmtiExtensionEventInfo** extensions) { 02385 return functions->GetExtensionEvents(this, extension_count_ptr, extensions); 02386 } 02387 02388 jvmtiError SetExtensionEventCallback(jint extension_event_index, 02389 jvmtiExtensionEvent callback) { 02390 return functions->SetExtensionEventCallback(this, extension_event_index, callback); 02391 } 02392 02393 jvmtiError GetPotentialCapabilities(jvmtiCapabilities* capabilities_ptr) { 02394 return functions->GetPotentialCapabilities(this, capabilities_ptr); 02395 } 02396 02397 jvmtiError AddCapabilities(const jvmtiCapabilities* capabilities_ptr) { 02398 return functions->AddCapabilities(this, capabilities_ptr); 02399 } 02400 02401 jvmtiError RelinquishCapabilities(const jvmtiCapabilities* capabilities_ptr) { 02402 return functions->RelinquishCapabilities(this, capabilities_ptr); 02403 } 02404 02405 jvmtiError GetCapabilities(jvmtiCapabilities* capabilities_ptr) { 02406 return functions->GetCapabilities(this, capabilities_ptr); 02407 } 02408 02409 jvmtiError GetCurrentThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) { 02410 return functions->GetCurrentThreadCpuTimerInfo(this, info_ptr); 02411 } 02412 02413 jvmtiError GetCurrentThreadCpuTime(jlong* nanos_ptr) { 02414 return functions->GetCurrentThreadCpuTime(this, nanos_ptr); 02415 } 02416 02417 jvmtiError GetThreadCpuTimerInfo(jvmtiTimerInfo* info_ptr) { 02418 return functions->GetThreadCpuTimerInfo(this, info_ptr); 02419 } 02420 02421 jvmtiError GetThreadCpuTime(jthread thread, 02422 jlong* nanos_ptr) { 02423 return functions->GetThreadCpuTime(this, thread, nanos_ptr); 02424 } 02425 02426 jvmtiError GetTimerInfo(jvmtiTimerInfo* info_ptr) { 02427 return functions->GetTimerInfo(this, info_ptr); 02428 } 02429 02430 jvmtiError GetTime(jlong* nanos_ptr) { 02431 return functions->GetTime(this, nanos_ptr); 02432 } 02433 02434 jvmtiError GetAvailableProcessors(jint* processor_count_ptr) { 02435 return functions->GetAvailableProcessors(this, processor_count_ptr); 02436 } 02437 02438 jvmtiError AddToBootstrapClassLoaderSearch(const char* segment) { 02439 return functions->AddToBootstrapClassLoaderSearch(this, segment); 02440 } 02441 02442 jvmtiError AddToSystemClassLoaderSearch(const char* segment) { 02443 return functions->AddToSystemClassLoaderSearch(this, segment); 02444 } 02445 02446 jvmtiError GetSystemProperties(jint* count_ptr, 02447 char*** property_ptr) { 02448 return functions->GetSystemProperties(this, count_ptr, property_ptr); 02449 } 02450 02451 jvmtiError GetSystemProperty(const char* property, 02452 char** value_ptr) { 02453 return functions->GetSystemProperty(this, property, value_ptr); 02454 } 02455 02456 jvmtiError SetSystemProperty(const char* property, 02457 const char* value) { 02458 return functions->SetSystemProperty(this, property, value); 02459 } 02460 02461 jvmtiError GetPhase(jvmtiPhase* phase_ptr) { 02462 return functions->GetPhase(this, phase_ptr); 02463 } 02464 02465 jvmtiError DisposeEnvironment() { 02466 return functions->DisposeEnvironment(this); 02467 } 02468 02469 jvmtiError SetEnvironmentLocalStorage(const void* data) { 02470 return functions->SetEnvironmentLocalStorage(this, data); 02471 } 02472 02473 jvmtiError GetEnvironmentLocalStorage(void** data_ptr) { 02474 return functions->GetEnvironmentLocalStorage(this, data_ptr); 02475 } 02476 02477 jvmtiError GetVersionNumber(jint* version_ptr) { 02478 return functions->GetVersionNumber(this, version_ptr); 02479 } 02480 02481 jvmtiError GetErrorName(jvmtiError error, 02482 char** name_ptr) { 02483 return functions->GetErrorName(this, error, name_ptr); 02484 } 02485 02486 jvmtiError SetVerboseFlag(jvmtiVerboseFlag flag, 02487 jboolean value) { 02488 return functions->SetVerboseFlag(this, flag, value); 02489 } 02490 02491 jvmtiError GetJLocationFormat(jvmtiJlocationFormat* format_ptr) { 02492 return functions->GetJLocationFormat(this, format_ptr); 02493 } 02494 02495 #endif /* __cplusplus */ 02496 }; 02497 02498 02499 #ifdef __cplusplus 02500 } /* extern "C" */ 02501 #endif /* __cplusplus */ 02502 02503 #endif /* !_JAVA_JVMTI_H_ */ 02504