You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2006/12/18 12:53:32 UTC
svn commit: r488244 [4/5] - in
/harmony/enhanced/classlib/trunk/modules/luni: ./
src/main/native/include/shared/
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/native/include/shared/jvmti.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/include/shared/jvmti.h?view=diff&rev=488244&r1=488243&r2=488244
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/native/include/shared/jvmti.h (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/native/include/shared/jvmti.h Mon Dec 18 03:53:30 2006
@@ -14,1103 +14,1405 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/**
+ * @author Gregory Shimansky
+ * @version $Revision: 1.1.2.1.4.4 $
+ */
+#ifndef _JVMTI_H_
+#define _JVMTI_H_
-#if !defined(jvmti_h)
-#define jvmti_h
+#include <stdlib.h>
#include "jni.h"
-/*
- *-----------------------------------------------------------------------------
- * JVMTI constants
- *-----------------------------------------------------------------------------
- */
-#define JVMTI_VERSION_1_0 0x30010000
-#define JVMTI_VERSION_1 (JVMTI_VERSION_1_0)
-#define JVMTI_VERSION (JVMTI_VERSION_1_0 + 37) /* Spec version is 1.0.37 */
-#define JVMTI_CLASS_STATUS_VERIFIED 0x00000001
-#define JVMTI_CLASS_STATUS_PREPARED 0x00000002
-#define JVMTI_CLASS_STATUS_INITIALIZED 0x00000004
-#define JVMTI_CLASS_STATUS_ERROR 0x00000008
-#define JVMTI_CLASS_STATUS_ARRAY 0x00000010
-#define JVMTI_CLASS_STATUS_PRIMITIVE 0x00000020
-#define JVMTI_THREAD_MIN_PRIORITY 1
-#define JVMTI_THREAD_NORM_PRIORITY 5
-#define JVMTI_THREAD_MAX_PRIORITY 10
-#define JVMTI_THREAD_STATE_ALIVE 0x00000001
-#define JVMTI_THREAD_STATE_TERMINATED 0x00000002
-#define JVMTI_THREAD_STATE_RUNNABLE 0x00000004
-#define JVMTI_THREAD_STATE_WAITING_INDEFINITELY 0x00000010
-#define JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT 0x00000020
-#define JVMTI_THREAD_STATE_SLEEPING 0x00000040
-#define JVMTI_THREAD_STATE_WAITING 0x00000080
-#define JVMTI_THREAD_STATE_IN_OBJECT_WAIT 0x00000100
-#define JVMTI_THREAD_STATE_PARKED 0x00000200
-#define JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER 0x00000400
-#define JVMTI_THREAD_STATE_SUSPENDED 0x00100000
-#define JVMTI_THREAD_STATE_INTERRUPTED 0x00200000
-#define JVMTI_THREAD_STATE_IN_NATIVE 0x00400000
-#define JVMTI_THREAD_STATE_VENDOR_1 0x10000000
-#define JVMTI_THREAD_STATE_VENDOR_2 0x20000000
-#define JVMTI_THREAD_STATE_VENDOR_3 0x40000000
-#define 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
-#define JVMTI_JAVA_LANG_THREAD_STATE_NEW 0
-#define JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED \
- JVMTI_THREAD_STATE_TERMINATED
-#define JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE \
- JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_RUNNABLE
-#define JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED \
- JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER
-#define JVMTI_JAVA_LANG_THREAD_STATE_WAITING \
- JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_WAITING \
- | JVMTI_THREAD_STATE_WAITING_INDEFINITELY
-#define JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING \
- JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_WAITING \
- | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT
-#define JVMTI_VERSION_INTERFACE_JNI 0x00000000
-#define JVMTI_VERSION_INTERFACE_JVMTI 0x30000000
-#define JVMTI_VERSION_MASK_INTERFACE_TYPE 0x70000000
-#define JVMTI_VERSION_MASK_MAJOR 0x0FFF0000
-#define JVMTI_VERSION_MASK_MINOR 0x0000FF00
-#define JVMTI_VERSION_MASK_MICRO 0x000000FF
-#define JVMTI_VERSION_SHIFT_MAJOR 16
-#define JVMTI_VERSION_SHIFT_MINOR 8
-#define JVMTI_VERSION_SHIFT_MICRO 0
+#include "jvmti_types.h"
/*
- *-----------------------------------------------------------------------------
- * JVMTI enumerations
- *-----------------------------------------------------------------------------
+ * Supported JVMTI versions
*/
-typedef enum jvmtiEventMode
-{
- JVMTI_ENABLE = 1,
- JVMTI_DISABLE = 0,
- jvmtiEventModeEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiEventMode;
+#define JVMTI_VERSION_INTERFACE_JNI 0x00000000
+#define JVMTI_VERSION_INTERFACE_JVMTI 0x30000000
+#define JVMTI_VERSION_MASK_INTERFACE_TYPE 0x70000000
+#define JVMTI_VERSION_MASK_MAJOR 0x0FFF0000
+#define JVMTI_VERSION_MASK_MINOR 0x0000FF00
+#define JVMTI_VERSION_MASK_MICRO 0x000000FF
+#define JVMTI_VERSION_SHIFT_MAJOR 16
+#define JVMTI_VERSION_SHIFT_MINOR 8
+#define JVMTI_VERSION_SHIFT_MICRO 0
+
+#define JVMTI_VERSION_MAJOR 1
+#define JVMTI_VERSION_MINOR 0
+#define JVMTI_VERSION_MICRO 36
+
+#define JVMTI_VERSION_1_0 \
+ (JVMTI_VERSION_INTERFACE_JVMTI | \
+ (JVMTI_VERSION_MAJOR << JVMTI_VERSION_SHIFT_MAJOR) | \
+ (JVMTI_VERSION_MINOR << JVMTI_VERSION_SHIFT_MINOR) | \
+ (JVMTI_VERSION_MICRO << JVMTI_VERSION_SHIFT_MICRO))
+
+#define JVMTI_VERSION \
+ (JVMTI_VERSION_INTERFACE_JVMTI | \
+ (JVMTI_VERSION_MAJOR << JVMTI_VERSION_SHIFT_MAJOR) | \
+ (JVMTI_VERSION_MINOR << JVMTI_VERSION_SHIFT_MINOR) | \
+ (JVMTI_VERSION_MICRO << JVMTI_VERSION_SHIFT_MICRO))
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /**
+ * Agent Start-Up
+ * The library must export a start-up function with the following
+ * prototype:
+ */
+ JNIEXPORT jint JNICALL
+ Agent_OnLoad(JavaVM * vm, char *options, void *reserved);
+
+ /**
+ * Agent Shutdown
+ * The library may optionally export a shutdown function with the
+ * following prototype:
+ */
+ JNIEXPORT void JNICALL Agent_OnUnload(JavaVM * vm);
+
+#ifdef __cplusplus
+} /* extern "C" { */
+#endif
-typedef enum jvmtiHeapObjectFilter
-{
- JVMTI_HEAP_OBJECT_TAGGED = 1,
- JVMTI_HEAP_OBJECT_UNTAGGED = 2,
- JVMTI_HEAP_OBJECT_EITHER = 3,
- jvmtiHeapObjectFilterEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiHeapObjectFilter;
-typedef enum jvmtiHeapRootKind
+struct ti_interface
{
- JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
- JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
- JVMTI_HEAP_ROOT_MONITOR = 3,
- JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
- JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
- JVMTI_HEAP_ROOT_THREAD = 6,
- JVMTI_HEAP_ROOT_OTHER = 7,
- jvmtiHeapRootKindEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiHeapRootKind;
+ void *reserved1;
-typedef enum jvmtiIterationControl
-{
- JVMTI_ITERATION_CONTINUE = 1,
- JVMTI_ITERATION_IGNORE = 2,
- JVMTI_ITERATION_ABORT = 0,
- jvmtiIterationControlEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiIterationControl;
+ jvmtiError (JNICALL * SetEventNotificationMode) (jvmtiEnv * env,
+ jvmtiEventMode mode,
+ jvmtiEvent event_type,
+ jthread event_thread,
+ ...);
-typedef enum jvmtiJlocationFormat
-{
- JVMTI_JLOCATION_JVMBCI = 1,
- JVMTI_JLOCATION_MACHINEPC = 2,
- JVMTI_JLOCATION_OTHER = 0,
- jvmtiJlocationFormatEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiJlocationFormat;
+ void *reserved3;
-typedef enum jvmtiObjectReferenceKind
-{
- JVMTI_REFERENCE_CLASS = 1,
- JVMTI_REFERENCE_FIELD = 2,
- JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
- JVMTI_REFERENCE_CLASS_LOADER = 4,
- JVMTI_REFERENCE_SIGNERS = 5,
- JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
- JVMTI_REFERENCE_INTERFACE = 7,
- JVMTI_REFERENCE_STATIC_FIELD = 8,
- JVMTI_REFERENCE_CONSTANT_POOL = 9,
- jvmtiObjectReferenceKindEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiObjectReferenceKind;
+ jvmtiError (JNICALL * GetAllThreads) (jvmtiEnv * env,
+ jint * threads_count_ptr,
+ jthread ** threads_ptr);
-typedef enum jvmtiParamKind
-{
- JVMTI_KIND_IN = 91,
- JVMTI_KIND_IN_PTR = 92,
- JVMTI_KIND_IN_BUF = 93,
- JVMTI_KIND_ALLOC_BUF = 94,
- JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
- JVMTI_KIND_OUT = 96,
- JVMTI_KIND_OUT_BUF = 97,
- jvmtiParamKindEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiParamKind;
+ jvmtiError (JNICALL * SuspendThread) (jvmtiEnv * env, jthread thread);
-typedef enum jvmtiParamTypes
-{
- JVMTI_TYPE_JBYTE = 101,
- JVMTI_TYPE_JCHAR = 102,
- JVMTI_TYPE_JSHORT = 103,
- JVMTI_TYPE_JINT = 104,
- JVMTI_TYPE_JLONG = 105,
- JVMTI_TYPE_JFLOAT = 106,
- JVMTI_TYPE_JDOUBLE = 107,
- JVMTI_TYPE_JBOOLEAN = 108,
- JVMTI_TYPE_JOBJECT = 109,
- JVMTI_TYPE_JTHREAD = 110,
- JVMTI_TYPE_JCLASS = 111,
- JVMTI_TYPE_JVALUE = 112,
- JVMTI_TYPE_JFIELDID = 113,
- JVMTI_TYPE_JMETHODID = 114,
- JVMTI_TYPE_CCHAR = 115,
- JVMTI_TYPE_CVOID = 116,
- JVMTI_TYPE_JNIENV = 117,
- jvmtiParamTypesEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiParamTypes;
+ jvmtiError (JNICALL * ResumeThread) (jvmtiEnv * env, jthread thread);
-typedef enum jvmtiPhase
-{
- JVMTI_PHASE_ONLOAD = 1,
- JVMTI_PHASE_PRIMORDIAL = 2,
- JVMTI_PHASE_LIVE = 4,
- JVMTI_PHASE_START = 6,
- JVMTI_PHASE_DEAD = 8,
- jvmtiPhaseEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiPhase;
+ jvmtiError (JNICALL * StopThread) (jvmtiEnv * env,
+ jthread thread, jobject exception);
-typedef enum jvmtiTimerKind
-{
- JVMTI_TIMER_USER_CPU = 30,
- JVMTI_TIMER_TOTAL_CPU = 31,
- JVMTI_TIMER_ELAPSED = 32,
- jvmtiTimerKindEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiTimerKind;
+ jvmtiError (JNICALL * InterruptThread) (jvmtiEnv * env, jthread thread);
-typedef enum jvmtiVerboseFlag
-{
- JVMTI_VERBOSE_OTHER = 0,
- JVMTI_VERBOSE_GC = 1,
- JVMTI_VERBOSE_CLASS = 2,
- JVMTI_VERBOSE_JNI = 4,
- jvmtiVerboseFlagEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiVerboseFlag;
+ jvmtiError (JNICALL * GetThreadInfo) (jvmtiEnv * env,
+ jthread thread,
+ jvmtiThreadInfo * info_ptr);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI error codes
- *-----------------------------------------------------------------------------
- */
-typedef enum jvmtiError
-{
- JVMTI_ERROR_NONE = 0,
- JVMTI_ERROR_INVALID_THREAD = 10,
- JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
- JVMTI_ERROR_INVALID_PRIORITY = 12,
- JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
- JVMTI_ERROR_THREAD_SUSPENDED = 14,
- JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
- JVMTI_ERROR_INVALID_OBJECT = 20,
- JVMTI_ERROR_INVALID_CLASS = 21,
- JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
- JVMTI_ERROR_INVALID_METHODID = 23,
- JVMTI_ERROR_INVALID_LOCATION = 24,
- JVMTI_ERROR_INVALID_FIELDID = 25,
- JVMTI_ERROR_NO_MORE_FRAMES = 31,
- JVMTI_ERROR_OPAQUE_FRAME = 32,
- JVMTI_ERROR_TYPE_MISMATCH = 34,
- JVMTI_ERROR_INVALID_SLOT = 35,
- JVMTI_ERROR_DUPLICATE = 40,
- JVMTI_ERROR_NOT_FOUND = 41,
- JVMTI_ERROR_INVALID_MONITOR = 50,
- JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
- JVMTI_ERROR_INTERRUPT = 52,
- JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
- JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
- JVMTI_ERROR_FAILS_VERIFICATION = 62,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
- JVMTI_ERROR_INVALID_TYPESTATE = 65,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
- JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
- JVMTI_ERROR_NAMES_DONT_MATCH = 69,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
- JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
- JVMTI_ERROR_NOT_AVAILABLE = 98,
- JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
- JVMTI_ERROR_NULL_POINTER = 100,
- JVMTI_ERROR_ABSENT_INFORMATION = 101,
- JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
- JVMTI_ERROR_ILLEGAL_ARGUMENT = 103,
- JVMTI_ERROR_NATIVE_METHOD = 104,
- JVMTI_ERROR_OUT_OF_MEMORY = 110,
- JVMTI_ERROR_ACCESS_DENIED = 111,
- JVMTI_ERROR_WRONG_PHASE = 112,
- JVMTI_ERROR_INTERNAL = 113,
- JVMTI_ERROR_UNATTACHED_THREAD = 115,
- JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
- jvmtiErrorEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiError;
+ jvmtiError (JNICALL * GetOwnedMonitorInfo) (jvmtiEnv * env,
+ jthread thread,
+ jint *
+ owned_monitor_count_ptr,
+ jobject **
+ owned_monitors_ptr);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI base types
- *-----------------------------------------------------------------------------
- */
-typedef jobject jthread;
-typedef jobject jthreadGroup;
-typedef jlong jlocation;
-/* hidden type */
-struct _jrawMonitorID;
-typedef struct _jrawMonitorID *jrawMonitorID;
-typedef struct JNINativeInterface_ jniNativeInterface;
-struct JVMTINativeInterface_;
+ jvmtiError (JNICALL * GetCurrentContendedMonitor) (jvmtiEnv * env,
+ jthread thread,
+ jobject * monitor_ptr);
-struct _jvmtiEnv
-{
- const struct JVMTINativeInterface_ *functions;
-};
+ jvmtiError (JNICALL * RunAgentThread) (jvmtiEnv * env,
+ jthread thread,
+ jvmtiStartFunction proc,
+ const void *arg, jint priority);
-typedef struct JVMTINativeInterface_ *jvmtiEnv;
+ jvmtiError (JNICALL * GetTopThreadGroups) (jvmtiEnv * env,
+ jint * group_count_ptr,
+ jthreadGroup ** groups_ptr);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI function types
- *-----------------------------------------------------------------------------
- */
-typedef void (JNICALL * jvmtiExtensionEvent) (jvmtiEnv * jvmti_env, ...);
-typedef jvmtiError (JNICALL * jvmtiExtensionFunction)
- (jvmtiEnv * jvmti_env, ...);
-typedef jvmtiIterationControl (JNICALL * jvmtiHeapObjectCallback)
- (jlong class_tag, jlong size, jlong * tag_ptr, void *user_data);
-typedef jvmtiIterationControl (JNICALL * jvmtiHeapRootCallback)
- (jvmtiHeapRootKind root_kind,
- jlong class_tag, jlong size, jlong * tag_ptr, void *user_data);
-typedef jvmtiIterationControl (JNICALL * jvmtiObjectReferenceCallback)
- (jvmtiObjectReferenceKind reference_kind,
- jlong class_tag, jlong size, jlong * tag_ptr,
- jlong referrer_tag, jint referrer_index, void *user_data);
-typedef jvmtiIterationControl (JNICALL * jvmtiStackReferenceCallback)
- (jvmtiHeapRootKind root_kind,
- jlong class_tag, jlong size, jlong * tag_ptr,
- jlong thread_tag, jint depth, jmethodID method, jint slot,
- void *user_data);
-typedef void (JNICALL * jvmtiStartFunction)
- (jvmtiEnv * jvmti_env, JNIEnv * jni_env, void *arg);
+ jvmtiError (JNICALL * GetThreadGroupInfo) (jvmtiEnv * env,
+ jthreadGroup group,
+ jvmtiThreadGroupInfo *
+ info_ptr);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI structure types
- *-----------------------------------------------------------------------------
- */
-typedef struct jvmtiFrameInfo
-{
- jmethodID method;
- jlocation location;
-} jvmtiFrameInfo;
+ jvmtiError (JNICALL * GetThreadGroupChildren) (jvmtiEnv * env,
+ jthreadGroup group,
+ jint * thread_count_ptr,
+ jthread ** threads_ptr,
+ jint * group_count_ptr,
+ jthreadGroup **
+ groups_ptr);
+
+ jvmtiError (JNICALL * GetFrameCount) (jvmtiEnv * env,
+ jthread thread, jint * count_ptr);
+
+ jvmtiError (JNICALL * GetThreadState) (jvmtiEnv * env,
+ jthread thread,
+ jint * thread_state_ptr);
-typedef struct jvmtiStackInfo
-{
- jthread thread;
- jint state;
- jvmtiFrameInfo *frame_buffer;
- jint frame_count;
-} jvmtiStackInfo;
+ void *reserved18;
-typedef struct jvmtiAddrLocationMap
-{
- const void *start_address;
- jlocation location;
-} jvmtiAddrLocationMap;
+ jvmtiError (JNICALL * GetFrameLocation) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jmethodID * method_ptr,
+ jlocation * location_ptr);
+
+ jvmtiError (JNICALL * NotifyFramePop) (jvmtiEnv * env,
+ jthread thread, jint depth);
+
+ jvmtiError (JNICALL * GetLocalObject) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jobject * value_ptr);
+
+ jvmtiError (JNICALL * GetLocalInt) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jint * value_ptr);
+
+ jvmtiError (JNICALL * GetLocalLong) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jlong * value_ptr);
+
+ jvmtiError (JNICALL * GetLocalFloat) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jfloat * value_ptr);
+
+ jvmtiError (JNICALL * GetLocalDouble) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jdouble * value_ptr);
+
+ jvmtiError (JNICALL * SetLocalObject) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jobject value);
+
+ jvmtiError (JNICALL * SetLocalInt) (jvmtiEnv * env,
+ jthread thread,
+ jint depth, jint slot, jint value);
+
+ jvmtiError (JNICALL * SetLocalLong) (jvmtiEnv * env,
+ jthread thread,
+ jint depth, jint slot, jlong value);
+
+ jvmtiError (JNICALL * SetLocalFloat) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jfloat value);
+
+ jvmtiError (JNICALL * SetLocalDouble) (jvmtiEnv * env,
+ jthread thread,
+ jint depth,
+ jint slot, jdouble value);
+
+ jvmtiError (JNICALL * CreateRawMonitor) (jvmtiEnv * env,
+ const char *name,
+ jrawMonitorID * monitor_ptr);
-typedef struct
-{
- unsigned int can_tag_objects:1;
- unsigned int can_generate_field_modification_events:1;
- unsigned int can_generate_field_access_events:1;
- unsigned int can_get_bytecodes:1;
- unsigned int can_get_synthetic_attribute:1;
- unsigned int can_get_owned_monitor_info:1;
- unsigned int can_get_current_contended_monitor:1;
- unsigned int can_get_monitor_info:1;
- unsigned int can_pop_frame:1;
- unsigned int can_redefine_classes:1;
- unsigned int can_signal_thread:1;
- unsigned int can_get_source_file_name:1;
- unsigned int can_get_line_numbers:1;
- unsigned int can_get_source_debug_extension:1;
- unsigned int can_access_local_variables:1;
- unsigned int can_maintain_original_method_order:1;
- unsigned int can_generate_single_step_events:1;
- unsigned int can_generate_exception_events:1;
- unsigned int can_generate_frame_pop_events:1;
- unsigned int can_generate_breakpoint_events:1;
- unsigned int can_suspend:1;
- unsigned int can_redefine_any_class:1;
- unsigned int can_get_current_thread_cpu_time:1;
- unsigned int can_get_thread_cpu_time:1;
- unsigned int can_generate_method_entry_events:1;
- unsigned int can_generate_method_exit_events:1;
- unsigned int can_generate_all_class_hook_events:1;
- unsigned int can_generate_compiled_method_load_events:1;
- unsigned int can_generate_monitor_events:1;
- unsigned int can_generate_vm_object_alloc_events:1;
- unsigned int can_generate_native_method_bind_events:1;
- unsigned int can_generate_garbage_collection_events:1;
- unsigned int can_generate_object_free_events:1;
- unsigned int:15;
- unsigned int:16;
- unsigned int:16;
- unsigned int:16;
- unsigned int:16;
- unsigned int:16;
-} jvmtiCapabilities;
+ jvmtiError (JNICALL * DestroyRawMonitor) (jvmtiEnv * env,
+ jrawMonitorID monitor);
-typedef struct jvmtiClassDefinition
-{
- jclass klass;
- jint class_byte_count;
- const unsigned char *class_bytes;
-} jvmtiClassDefinition;
+ jvmtiError (JNICALL * RawMonitorEnter) (jvmtiEnv * env,
+ jrawMonitorID monitor);
-typedef struct jvmtiParamInfo
-{
- char *name;
- jvmtiParamKind kind;
- jvmtiParamTypes base_type;
- jboolean null_ok;
-} jvmtiParamInfo;
+ jvmtiError (JNICALL * RawMonitorExit) (jvmtiEnv * env,
+ jrawMonitorID monitor);
-typedef struct jvmtiExtensionEventInfo
-{
- jint extension_event_index;
- char *id;
- char *short_description;
- jint param_count;
- jvmtiParamInfo *params;
-} jvmtiExtensionEventInfo;
+ jvmtiError (JNICALL * RawMonitorWait) (jvmtiEnv * env,
+ jrawMonitorID monitor,
+ jlong millis);
-typedef struct jvmtiExtensionFunctionInfo
-{
- jvmtiExtensionFunction func;
- char *id;
- char *short_description;
- jint param_count;
- jvmtiParamInfo *params;
- jint error_count;
- jvmtiError *errors;
-} jvmtiExtensionFunctionInfo;
+ jvmtiError (JNICALL * RawMonitorNotify) (jvmtiEnv * env,
+ jrawMonitorID monitor);
-typedef struct jvmtiLineNumberEntry
-{
- jlocation start_location;
- jint line_number;
-} jvmtiLineNumberEntry;
+ jvmtiError (JNICALL * RawMonitorNotifyAll) (jvmtiEnv * env,
+ jrawMonitorID monitor);
-typedef struct jvmtiLocalVariableEntry
-{
- jlocation start_location;
- jint length;
- char *name;
- char *signature;
- char *generic_signature;
- jint slot;
-} jvmtiLocalVariableEntry;
+ jvmtiError (JNICALL * SetBreakpoint) (jvmtiEnv * env,
+ jmethodID method,
+ jlocation location);
+
+ jvmtiError (JNICALL * ClearBreakpoint) (jvmtiEnv * env,
+ jmethodID method,
+ jlocation location);
-typedef struct jvmtiMonitorUsage
-{
- jthread owner;
- jint entry_count;
- jint waiter_count;
- jthread *waiters;
- jint notify_waiter_count;
- jthread *notify_waiters;
-} jvmtiMonitorUsage;
+ void *reserved40;
-typedef struct jvmtiThreadGroupInfo
-{
- jthreadGroup parent;
- char *name;
- jint max_priority;
- jboolean is_daemon;
-} jvmtiThreadGroupInfo;
+ jvmtiError (JNICALL * SetFieldAccessWatch) (jvmtiEnv * env,
+ jclass clazz, jfieldID field);
-typedef struct jvmtiThreadInfo
-{
- char *name;
- jint priority;
- jboolean is_daemon;
- jthreadGroup thread_group;
- jobject context_class_loader;
-} jvmtiThreadInfo;
+ jvmtiError (JNICALL * ClearFieldAccessWatch) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field);
-typedef struct jvmtiTimerInfo
-{
- jlong max_value;
- jboolean may_skip_forward;
- jboolean may_skip_backward;
- jvmtiTimerKind kind;
- jlong reserved1;
- jlong reserved2;
-} jvmtiTimerInfo;
+ jvmtiError (JNICALL * SetFieldModificationWatch) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI events
- *-----------------------------------------------------------------------------
- */
-typedef enum jvmtiEvent
-{
- JVMTI_EVENT_VM_INIT = 50,
- JVMTI_EVENT_VM_DEATH = 51,
- JVMTI_EVENT_THREAD_START = 52,
- JVMTI_EVENT_THREAD_END = 53,
- JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
- JVMTI_EVENT_CLASS_LOAD = 55,
- JVMTI_EVENT_CLASS_PREPARE = 56,
- JVMTI_EVENT_VM_START = 57,
- JVMTI_EVENT_EXCEPTION = 58,
- JVMTI_EVENT_EXCEPTION_CATCH = 59,
- JVMTI_EVENT_SINGLE_STEP = 60,
- JVMTI_EVENT_FRAME_POP = 61,
- JVMTI_EVENT_BREAKPOINT = 62,
- JVMTI_EVENT_FIELD_ACCESS = 63,
- JVMTI_EVENT_FIELD_MODIFICATION = 64,
- JVMTI_EVENT_METHOD_ENTRY = 65,
- JVMTI_EVENT_METHOD_EXIT = 66,
- JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
- JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
- JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
- JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
- JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
- JVMTI_EVENT_MONITOR_WAIT = 73,
- JVMTI_EVENT_MONITOR_WAITED = 74,
- JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
- JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
- JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
- JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
- JVMTI_EVENT_OBJECT_FREE = 83,
- JVMTI_EVENT_VM_OBJECT_ALLOC = 84,
- jvmtiEventEnsureWideEnum = 0x1000000 /* ensure 4-byte enum */
-} jvmtiEvent;
+ jvmtiError (JNICALL * ClearFieldModificationWatch) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI callbacks
- *-----------------------------------------------------------------------------
- */
-typedef void (JNICALL * jvmtiEventSingleStep) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location);
-typedef void (JNICALL * jvmtiEventBreakpoint) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location);
-typedef void (JNICALL * jvmtiEventFieldAccess) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location,
- jclass field_klass,
- jobject object,
- jfieldID field);
-typedef void (JNICALL * jvmtiEventFieldModification) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location,
- jclass field_klass,
- jobject object,
- jfieldID field,
- char signature_type,
- jvalue new_value);
-typedef void (JNICALL * jvmtiEventFramePop) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jboolean
- was_popped_by_exception);
-typedef void (JNICALL * jvmtiEventMethodEntry) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method);
-typedef void (JNICALL * jvmtiEventMethodExit) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jboolean
- was_popped_by_exception,
- jvalue return_value);
-typedef void (JNICALL * jvmtiEventNativeMethodBind) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- void *address,
- void **new_address_ptr);
-typedef void (JNICALL * jvmtiEventException) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location,
- jobject exception,
- jmethodID catch_method,
- jlocation catch_location);
-typedef void (JNICALL * jvmtiEventExceptionCatch) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jmethodID method,
- jlocation location,
- jobject exception);
-typedef void (JNICALL * jvmtiEventThreadStart) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread);
-typedef void (JNICALL * jvmtiEventThreadEnd) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread);
-typedef void (JNICALL * jvmtiEventClassLoad) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread, jclass klass);
-typedef void (JNICALL * jvmtiEventClassPrepare) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jclass klass);
-typedef void (JNICALL * jvmtiEventClassFileLoadHook) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jclass
- class_being_redefined,
- jobject loader,
- const char *name,
- jobject
- protection_domain,
- jint class_data_len,
- const unsigned char
- *class_data,
- jint *
- new_class_data_len,
- unsigned char
- **new_class_data);
-typedef void (JNICALL * jvmtiEventVMStart) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env);
-typedef void (JNICALL * jvmtiEventVMInit) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env, jthread thread);
-typedef void (JNICALL * jvmtiEventVMDeath) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env);
-typedef void (JNICALL * jvmtiEventCompiledMethodLoad) (jvmtiEnv * jvmti_env,
- jmethodID method,
- jint code_size,
- const void *code_addr,
- jint map_length,
- const
- jvmtiAddrLocationMap *
- map,
- const void
- *compile_info);
-typedef void (JNICALL * jvmtiEventCompiledMethodUnload) (jvmtiEnv * jvmti_env,
- jmethodID method,
- const void
- *code_addr);
-typedef void (JNICALL * jvmtiEventDynamicCodeGenerated) (jvmtiEnv * jvmti_env,
- const char *name,
- const void *address,
- jint length);
-typedef void (JNICALL * jvmtiEventDataDumpRequest) (jvmtiEnv * jvmti_env);
-typedef void (JNICALL * jvmtiEventMonitorContendedEnter) (jvmtiEnv *
- jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jobject object);
-typedef void (JNICALL * jvmtiEventMonitorContendedEntered) (jvmtiEnv *
- jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jobject object);
-typedef void (JNICALL * jvmtiEventMonitorWait) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jobject object,
- jlong timeout);
-typedef void (JNICALL * jvmtiEventMonitorWaited) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jobject object,
- jboolean timed_out);
-typedef void (JNICALL * jvmtiEventVMObjectAlloc) (jvmtiEnv * jvmti_env,
- JNIEnv * jni_env,
- jthread thread,
- jobject object,
- jclass object_klass,
- jlong size);
-typedef void (JNICALL * jvmtiEventObjectFree) (jvmtiEnv * jvmti_env,
- jlong tag);
-typedef void (JNICALL * jvmtiEventGarbageCollectionStart) (jvmtiEnv *
- jvmti_env);
-typedef void (JNICALL * jvmtiEventGarbageCollectionFinish) (jvmtiEnv *
- jvmti_env);
-typedef void *jvmtiEventReserved;
+ void *reserved45;
-typedef struct
-{
- jvmtiEventVMInit VMInit;
- jvmtiEventVMDeath VMDeath;
- jvmtiEventThreadStart ThreadStart;
- jvmtiEventThreadEnd ThreadEnd;
- jvmtiEventClassFileLoadHook ClassFileLoadHook;
- jvmtiEventClassLoad ClassLoad;
- jvmtiEventClassPrepare ClassPrepare;
- jvmtiEventVMStart VMStart;
- jvmtiEventException Exception;
- jvmtiEventExceptionCatch ExceptionCatch;
- jvmtiEventSingleStep SingleStep;
- jvmtiEventFramePop FramePop;
- jvmtiEventBreakpoint Breakpoint;
- jvmtiEventFieldAccess FieldAccess;
- jvmtiEventFieldModification FieldModification;
- jvmtiEventMethodEntry MethodEntry;
- jvmtiEventMethodExit MethodExit;
- jvmtiEventNativeMethodBind NativeMethodBind;
- jvmtiEventCompiledMethodLoad CompiledMethodLoad;
- jvmtiEventCompiledMethodUnload CompiledMethodUnload;
- jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
- jvmtiEventDataDumpRequest DataDumpRequest;
- jvmtiEventReserved reserved72;
- jvmtiEventMonitorWait MonitorWait;
- jvmtiEventMonitorWaited MonitorWaited;
- jvmtiEventMonitorContendedEnter MonitorContendedEnter;
- jvmtiEventMonitorContendedEntered MonitorContendedEntered;
- jvmtiEventReserved reserved77;
- jvmtiEventReserved reserved78;
- jvmtiEventReserved reserved79;
- jvmtiEventReserved reserved80;
- jvmtiEventGarbageCollectionStart GarbageCollectionStart;
- jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
- jvmtiEventObjectFree ObjectFree;
- jvmtiEventVMObjectAlloc VMObjectAlloc;
-} jvmtiEventCallbacks;
+ jvmtiError (JNICALL * Allocate) (jvmtiEnv * env,
+ jlong size, unsigned char **mem_ptr);
-/*
- *-----------------------------------------------------------------------------
- * JVMTI methods
- *-----------------------------------------------------------------------------
- */
-typedef struct JVMTINativeInterface_
-{
- void *reserved1;
- jvmtiError (JNICALL * SetEventNotificationMode) (jvmtiEnv * env,
- jvmtiEventMode mode,
- jvmtiEvent event_type,
- jthread event_thread,
- ...);
- void *reserved3;
- jvmtiError (JNICALL * GetAllThreads) (jvmtiEnv * env,
- jint * threads_count_ptr,
- jthread ** threads_ptr);
- jvmtiError (JNICALL * SuspendThread) (jvmtiEnv * env, jthread thread);
- jvmtiError (JNICALL * ResumeThread) (jvmtiEnv * env, jthread thread);
- jvmtiError (JNICALL * StopThread) (jvmtiEnv * env, jthread thread,
- jobject exception);
- jvmtiError (JNICALL * InterruptThread) (jvmtiEnv * env, jthread thread);
- jvmtiError (JNICALL * GetThreadInfo) (jvmtiEnv * env, jthread thread,
- jvmtiThreadInfo * info_ptr);
- jvmtiError (JNICALL * GetOwnedMonitorInfo) (jvmtiEnv * env,
- jthread thread,
- jint *
- owned_monitor_count_ptr,
- jobject **
- owned_monitors_ptr);
- jvmtiError (JNICALL * GetCurrentContendedMonitor) (jvmtiEnv * env,
- jthread thread,
- jobject * monitor_ptr);
- jvmtiError (JNICALL * RunAgentThread) (jvmtiEnv * env, jthread thread,
- jvmtiStartFunction proc,
- const void *arg, jint priority);
- jvmtiError (JNICALL * GetTopThreadGroups) (jvmtiEnv * env,
- jint * group_count_ptr,
- jthreadGroup ** groups_ptr);
- jvmtiError (JNICALL * GetThreadGroupInfo) (jvmtiEnv * env,
- jthreadGroup group,
- jvmtiThreadGroupInfo *
- info_ptr);
- jvmtiError (JNICALL * GetThreadGroupChildren) (jvmtiEnv * env,
- jthreadGroup group,
- jint * thread_count_ptr,
- jthread ** threads_ptr,
- jint * group_count_ptr,
- jthreadGroup **
- groups_ptr);
- jvmtiError (JNICALL * GetFrameCount) (jvmtiEnv * env, jthread thread,
- jint * count_ptr);
- jvmtiError (JNICALL * GetThreadState) (jvmtiEnv * env, jthread thread,
- jint * thread_state_ptr);
- void *reserved18;
- jvmtiError (JNICALL * GetFrameLocation) (jvmtiEnv * env, jthread thread,
- jint depth,
- jmethodID * method_ptr,
- jlocation * location_ptr);
- jvmtiError (JNICALL * NotifyFramePop) (jvmtiEnv * env, jthread thread,
- jint depth);
- jvmtiError (JNICALL * GetLocalObject) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jobject * value_ptr);
- jvmtiError (JNICALL * GetLocalInt) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jint * value_ptr);
- jvmtiError (JNICALL * GetLocalLong) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jlong * value_ptr);
- jvmtiError (JNICALL * GetLocalFloat) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jfloat * value_ptr);
- jvmtiError (JNICALL * GetLocalDouble) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jdouble * value_ptr);
- jvmtiError (JNICALL * SetLocalObject) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jobject value);
- jvmtiError (JNICALL * SetLocalInt) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot, jint value);
- jvmtiError (JNICALL * SetLocalLong) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot, jlong value);
- jvmtiError (JNICALL * SetLocalFloat) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jfloat value);
- jvmtiError (JNICALL * SetLocalDouble) (jvmtiEnv * env, jthread thread,
- jint depth, jint slot,
- jdouble value);
- jvmtiError (JNICALL * CreateRawMonitor) (jvmtiEnv * env, const char *name,
- jrawMonitorID * monitor_ptr);
- jvmtiError (JNICALL * DestroyRawMonitor) (jvmtiEnv * env,
- jrawMonitorID monitor);
- jvmtiError (JNICALL * RawMonitorEnter) (jvmtiEnv * env,
- jrawMonitorID monitor);
- jvmtiError (JNICALL * RawMonitorExit) (jvmtiEnv * env,
- jrawMonitorID monitor);
- jvmtiError (JNICALL * RawMonitorWait) (jvmtiEnv * env,
- jrawMonitorID monitor,
- jlong millis);
- jvmtiError (JNICALL * RawMonitorNotify) (jvmtiEnv * env,
- jrawMonitorID monitor);
- jvmtiError (JNICALL * RawMonitorNotifyAll) (jvmtiEnv * env,
- jrawMonitorID monitor);
- jvmtiError (JNICALL * SetBreakpoint) (jvmtiEnv * env, jmethodID method,
- jlocation location);
- jvmtiError (JNICALL * ClearBreakpoint) (jvmtiEnv * env, jmethodID method,
- jlocation location);
- void *reserved40;
- jvmtiError (JNICALL * SetFieldAccessWatch) (jvmtiEnv * env, jclass klass,
- jfieldID field);
- jvmtiError (JNICALL * ClearFieldAccessWatch) (jvmtiEnv * env,
- jclass klass,
- jfieldID field);
- jvmtiError (JNICALL * SetFieldModificationWatch) (jvmtiEnv * env,
- jclass klass,
- jfieldID field);
- jvmtiError (JNICALL * ClearFieldModificationWatch) (jvmtiEnv * env,
- jclass klass,
- jfieldID field);
- void *reserved45;
- jvmtiError (JNICALL * Allocate) (jvmtiEnv * env, jlong size,
- unsigned char **mem_ptr);
jvmtiError (JNICALL * Deallocate) (jvmtiEnv * env, unsigned char *mem);
- jvmtiError (JNICALL * GetClassSignature) (jvmtiEnv * env, jclass klass,
- char **signature_ptr,
- char **generic_ptr);
- jvmtiError (JNICALL * GetClassStatus) (jvmtiEnv * env, jclass klass,
- jint * status_ptr);
- jvmtiError (JNICALL * GetSourceFileName) (jvmtiEnv * env, jclass klass,
- char **source_name_ptr);
- jvmtiError (JNICALL * GetClassModifiers) (jvmtiEnv * env, jclass klass,
- jint * modifiers_ptr);
- jvmtiError (JNICALL * GetClassMethods) (jvmtiEnv * env, jclass klass,
- jint * method_count_ptr,
- jmethodID ** methods_ptr);
- jvmtiError (JNICALL * GetClassFields) (jvmtiEnv * env, jclass klass,
- jint * field_count_ptr,
- jfieldID ** fields_ptr);
+
+ jvmtiError (JNICALL * GetClassSignature) (jvmtiEnv * env,
+ jclass clazz,
+ char **signature_ptr,
+ char **generic_ptr);
+
+ jvmtiError (JNICALL * GetClassStatus) (jvmtiEnv * env,
+ jclass clazz, jint * status_ptr);
+
+ jvmtiError (JNICALL * GetSourceFileName) (jvmtiEnv * env,
+ jclass clazz,
+ char **source_name_ptr);
+
+ jvmtiError (JNICALL * GetClassModifiers) (jvmtiEnv * env,
+ jclass clazz,
+ jint * modifiers_ptr);
+
+ jvmtiError (JNICALL * GetClassMethods) (jvmtiEnv * env,
+ jclass clazz,
+ jint * method_count_ptr,
+ jmethodID ** methods_ptr);
+
+ jvmtiError (JNICALL * GetClassFields) (jvmtiEnv * env,
+ jclass clazz,
+ jint * field_count_ptr,
+ jfieldID ** fields_ptr);
+
jvmtiError (JNICALL * GetImplementedInterfaces) (jvmtiEnv * env,
- jclass klass,
- jint *
- interface_count_ptr,
- jclass **
- interfaces_ptr);
- jvmtiError (JNICALL * IsInterface) (jvmtiEnv * env, jclass klass,
- jboolean * is_interface_ptr);
- jvmtiError (JNICALL * IsArrayClass) (jvmtiEnv * env, jclass klass,
- jboolean * is_array_class_ptr);
- jvmtiError (JNICALL * GetClassLoader) (jvmtiEnv * env, jclass klass,
- jobject * classloader_ptr);
- jvmtiError (JNICALL * GetObjectHashCode) (jvmtiEnv * env, jobject object,
- jint * hash_code_ptr);
+ jclass clazz,
+ jint *
+ interface_count_ptr,
+ jclass **
+ interfaces_ptr);
+
+ jvmtiError (JNICALL * IsInterface) (jvmtiEnv * env,
+ jclass clazz,
+ jboolean * is_interface_ptr);
+
+ jvmtiError (JNICALL * IsArrayClass) (jvmtiEnv * env,
+ jclass clazz,
+ jboolean * is_array_class_ptr);
+
+ jvmtiError (JNICALL * GetClassLoader) (jvmtiEnv * env,
+ jclass clazz,
+ jobject * classloader_ptr);
+
+ jvmtiError (JNICALL * GetObjectHashCode) (jvmtiEnv * env,
+ jobject object,
+ jint * hash_code_ptr);
+
jvmtiError (JNICALL * GetObjectMonitorUsage) (jvmtiEnv * env,
- jobject object,
- jvmtiMonitorUsage *
- info_ptr);
- jvmtiError (JNICALL * GetFieldName) (jvmtiEnv * env, jclass klass,
- jfieldID field, char **name_ptr,
- char **signature_ptr,
- char **generic_ptr);
+ jobject object,
+ jvmtiMonitorUsage *
+ info_ptr);
+
+ jvmtiError (JNICALL * GetFieldName) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field,
+ char **name_ptr,
+ char **signature_ptr,
+ char **generic_ptr);
+
jvmtiError (JNICALL * GetFieldDeclaringClass) (jvmtiEnv * env,
- jclass klass,
- jfieldID field,
- jclass *
- declaring_class_ptr);
- jvmtiError (JNICALL * GetFieldModifiers) (jvmtiEnv * env, jclass klass,
- jfieldID field,
- jint * modifiers_ptr);
- jvmtiError (JNICALL * IsFieldSynthetic) (jvmtiEnv * env, jclass klass,
- jfieldID field,
- jboolean * is_synthetic_ptr);
- jvmtiError (JNICALL * GetMethodName) (jvmtiEnv * env, jmethodID method,
- char **name_ptr,
- char **signature_ptr,
- char **generic_ptr);
+ jclass clazz,
+ jfieldID field,
+ jclass *
+ declaring_class_ptr);
+
+ jvmtiError (JNICALL * GetFieldModifiers) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field,
+ jint * modifiers_ptr);
+
+ jvmtiError (JNICALL * IsFieldSynthetic) (jvmtiEnv * env,
+ jclass clazz,
+ jfieldID field,
+ jboolean * is_synthetic_ptr);
+
+ jvmtiError (JNICALL * GetMethodName) (jvmtiEnv * env,
+ jmethodID method,
+ char **name_ptr,
+ char **signature_ptr,
+ char **generic_ptr);
+
jvmtiError (JNICALL * GetMethodDeclaringClass) (jvmtiEnv * env,
- jmethodID method,
- jclass *
- declaring_class_ptr);
+ jmethodID method,
+ jclass *
+ declaring_class_ptr);
+
jvmtiError (JNICALL * GetMethodModifiers) (jvmtiEnv * env,
- jmethodID method,
- jint * modifiers_ptr);
+ jmethodID method,
+ jint * modifiers_ptr);
+
void *reserved67;
- jvmtiError (JNICALL * GetMaxLocals) (jvmtiEnv * env, jmethodID method,
- jint * max_ptr);
- jvmtiError (JNICALL * GetArgumentsSize) (jvmtiEnv * env, jmethodID method,
- jint * size_ptr);
+
+ jvmtiError (JNICALL * GetMaxLocals) (jvmtiEnv * env,
+ jmethodID method, jint * max_ptr);
+
+ jvmtiError (JNICALL * GetArgumentsSize) (jvmtiEnv * env,
+ jmethodID method,
+ jint * size_ptr);
+
jvmtiError (JNICALL * GetLineNumberTable) (jvmtiEnv * env,
- jmethodID method,
- jint * entry_count_ptr,
- jvmtiLineNumberEntry **
- table_ptr);
+ jmethodID method,
+ jint * entry_count_ptr,
+ jvmtiLineNumberEntry **
+ table_ptr);
+
jvmtiError (JNICALL * GetMethodLocation) (jvmtiEnv * env,
- jmethodID method,
- jlocation * start_location_ptr,
- jlocation * end_location_ptr);
+ jmethodID method,
+ jlocation * start_location_ptr,
+ jlocation * end_location_ptr);
+
jvmtiError (JNICALL * GetLocalVariableTable) (jvmtiEnv * env,
- jmethodID method,
- jint * entry_count_ptr,
- jvmtiLocalVariableEntry **
- table_ptr);
+ jmethodID method,
+ jint * entry_count_ptr,
+ jvmtiLocalVariableEntry **
+ table_ptr);
+
void *reserved73;
+
void *reserved74;
- jvmtiError (JNICALL * GetBytecodes) (jvmtiEnv * env, jmethodID method,
- jint * bytecode_count_ptr,
- unsigned char **bytecodes_ptr);
- jvmtiError (JNICALL * IsMethodNative) (jvmtiEnv * env, jmethodID method,
- jboolean * is_native_ptr);
+
+ jvmtiError (JNICALL * GetBytecodes) (jvmtiEnv * env,
+ jmethodID method,
+ jint * bytecode_count_ptr,
+ unsigned char **bytecodes_ptr);
+
+ jvmtiError (JNICALL * IsMethodNative) (jvmtiEnv * env,
+ jmethodID method,
+ jboolean * is_native_ptr);
+
jvmtiError (JNICALL * IsMethodSynthetic) (jvmtiEnv * env,
- jmethodID method,
- jboolean * is_synthetic_ptr);
+ jmethodID method,
+ jboolean * is_synthetic_ptr);
+
jvmtiError (JNICALL * GetLoadedClasses) (jvmtiEnv * env,
- jint * class_count_ptr,
- jclass ** classes_ptr);
+ jint * class_count_ptr,
+ jclass ** classes_ptr);
+
jvmtiError (JNICALL * GetClassLoaderClasses) (jvmtiEnv * env,
- jobject initiating_loader,
- jint * class_count_ptr,
- jclass ** classes_ptr);
+ jobject initiating_loader,
+ jint * class_count_ptr,
+ jclass ** classes_ptr);
+
jvmtiError (JNICALL * PopFrame) (jvmtiEnv * env, jthread thread);
+
void *reserved81;
+
void *reserved82;
+
void *reserved83;
+
void *reserved84;
+
void *reserved85;
+
void *reserved86;
- jvmtiError (JNICALL * RedefineClasses) (jvmtiEnv * env, jint class_count,
- const jvmtiClassDefinition *
- class_definitions);
+
+ jvmtiError (JNICALL * RedefineClasses) (jvmtiEnv * env,
+ jint class_count,
+ const jvmtiClassDefinition *
+ class_definitions);
+
jvmtiError (JNICALL * GetVersionNumber) (jvmtiEnv * env,
- jint * version_ptr);
+ jint * version_ptr);
+
jvmtiError (JNICALL * GetCapabilities) (jvmtiEnv * env,
- jvmtiCapabilities *
- capabilities_ptr);
+ jvmtiCapabilities *
+ capabilities_ptr);
+
jvmtiError (JNICALL * GetSourceDebugExtension) (jvmtiEnv * env,
- jclass klass,
- char
- **source_debug_extension_ptr);
- jvmtiError (JNICALL * IsMethodObsolete) (jvmtiEnv * env, jmethodID method,
- jboolean * is_obsolete_ptr);
+ jclass clazz,
+ char
+ **source_debug_extension_ptr);
+
+ jvmtiError (JNICALL * IsMethodObsolete) (jvmtiEnv * env,
+ jmethodID method,
+ jboolean * is_obsolete_ptr);
+
jvmtiError (JNICALL * SuspendThreadList) (jvmtiEnv * env,
- jint request_count,
- const jthread * request_list,
- jvmtiError * results);
+ jint request_count,
+ const jthread * request_list,
+ jvmtiError * results);
+
jvmtiError (JNICALL * ResumeThreadList) (jvmtiEnv * env,
- jint request_count,
- const jthread * request_list,
- jvmtiError * results);
+ jint request_count,
+ const jthread * request_list,
+ jvmtiError * results);
+
void *reserved94;
+
void *reserved95;
+
void *reserved96;
+
void *reserved97;
+
void *reserved98;
+
void *reserved99;
+
jvmtiError (JNICALL * GetAllStackTraces) (jvmtiEnv * env,
- jint max_frame_count,
- jvmtiStackInfo **
- stack_info_ptr,
- jint * thread_count_ptr);
+ jint max_frame_count,
+ jvmtiStackInfo **
+ stack_info_ptr,
+ jint * thread_count_ptr);
+
jvmtiError (JNICALL * GetThreadListStackTraces) (jvmtiEnv * env,
- jint thread_count,
- const jthread *
- thread_list,
- jint max_frame_count,
- jvmtiStackInfo **
- stack_info_ptr);
+ jint thread_count,
+ const jthread *
+ thread_list,
+ jint max_frame_count,
+ jvmtiStackInfo **
+ stack_info_ptr);
+
jvmtiError (JNICALL * GetThreadLocalStorage) (jvmtiEnv * env,
- jthread thread,
- void **data_ptr);
+ jthread thread,
+ void **data_ptr);
+
jvmtiError (JNICALL * SetThreadLocalStorage) (jvmtiEnv * env,
- jthread thread,
- const void *data);
- jvmtiError (JNICALL * GetStackTrace) (jvmtiEnv * env, jthread thread,
- jint start_depth,
- jint max_frame_count,
- jvmtiFrameInfo * frame_buffer,
- jint * count_ptr);
+ jthread thread,
+ const void *data);
+
+ jvmtiError (JNICALL * GetStackTrace) (jvmtiEnv * env,
+ jthread thread,
+ jint start_depth,
+ jint max_frame_count,
+ jvmtiFrameInfo * frame_buffer,
+ jint * count_ptr);
+
void *reserved105;
- jvmtiError (JNICALL * GetTag) (jvmtiEnv * env, jobject object,
- jlong * tag_ptr);
+
+ jvmtiError (JNICALL * GetTag) (jvmtiEnv * env,
+ jobject object, jlong * tag_ptr);
+
jvmtiError (JNICALL * SetTag) (jvmtiEnv * env, jobject object, jlong tag);
+
jvmtiError (JNICALL * ForceGarbageCollection) (jvmtiEnv * env);
+
jvmtiError (JNICALL * IterateOverObjectsReachableFromObject) (jvmtiEnv *
- env,
- jobject
- object,
- jvmtiObjectReferenceCallback
- object_reference_callback,
- void
- *user_data);
+ env,
+ jobject
+ object,
+ jvmtiObjectReferenceCallback
+ object_reference_callback,
+ void
+ *user_data);
+
jvmtiError (JNICALL * IterateOverReachableObjects) (jvmtiEnv * env,
- jvmtiHeapRootCallback
- heap_root_callback,
- jvmtiStackReferenceCallback
- stack_ref_callback,
- jvmtiObjectReferenceCallback
- object_ref_callback,
- void *user_data);
+ jvmtiHeapRootCallback
+ heap_root_callback,
+ jvmtiStackReferenceCallback
+ stack_ref_callback,
+ jvmtiObjectReferenceCallback
+ object_ref_callback,
+ void *user_data);
+
jvmtiError (JNICALL * IterateOverHeap) (jvmtiEnv * env,
- jvmtiHeapObjectFilter
- object_filter,
- jvmtiHeapObjectCallback
- heap_object_callback,
- void *user_data);
+ jvmtiHeapObjectFilter
+ object_filter,
+ jvmtiHeapObjectCallback
+ heap_object_callback,
+ void *user_data);
+
jvmtiError (JNICALL * IterateOverInstancesOfClass) (jvmtiEnv * env,
- jclass klass,
- jvmtiHeapObjectFilter
- object_filter,
- jvmtiHeapObjectCallback
- heap_object_callback,
- void *user_data);
+ jclass clazz,
+ jvmtiHeapObjectFilter
+ object_filter,
+ jvmtiHeapObjectCallback
+ heap_object_callback,
+ void *user_data);
+
void *reserved113;
- jvmtiError (JNICALL * GetObjectsWithTags) (jvmtiEnv * env, jint tag_count,
- const jlong * tags,
- jint * count_ptr,
- jobject ** object_result_ptr,
- jlong ** tag_result_ptr);
+
+ jvmtiError (JNICALL * GetObjectsWithTags) (jvmtiEnv * env,
+ jint tag_count,
+ const jlong * tags,
+ jint * count_ptr,
+ jobject ** object_result_ptr,
+ jlong ** tag_result_ptr);
+
void *reserved115;
+
void *reserved116;
+
void *reserved117;
+
void *reserved118;
+
void *reserved119;
+
jvmtiError (JNICALL * SetJNIFunctionTable) (jvmtiEnv * env,
- const jniNativeInterface *
- function_table);
+ const jniNativeInterface *
+ function_table);
+
jvmtiError (JNICALL * GetJNIFunctionTable) (jvmtiEnv * env,
- jniNativeInterface **
- function_table);
+ jniNativeInterface **
+ function_table);
+
jvmtiError (JNICALL * SetEventCallbacks) (jvmtiEnv * env,
- const jvmtiEventCallbacks *
- callbacks,
- jint size_of_callbacks);
+ const jvmtiEventCallbacks *
+ callbacks,
+ jint size_of_callbacks);
+
jvmtiError (JNICALL * GenerateEvents) (jvmtiEnv * env,
- jvmtiEvent event_type);
+ jvmtiEvent event_type);
+
jvmtiError (JNICALL * GetExtensionFunctions) (jvmtiEnv * env,
- jint * extension_count_ptr,
- jvmtiExtensionFunctionInfo
- ** extensions);
+ jint * extension_count_ptr,
+ jvmtiExtensionFunctionInfo
+ ** extensions);
+
jvmtiError (JNICALL * GetExtensionEvents) (jvmtiEnv * env,
- jint * extension_count_ptr,
- jvmtiExtensionEventInfo **
- extensions);
+ jint * extension_count_ptr,
+ jvmtiExtensionEventInfo **
+ extensions);
+
jvmtiError (JNICALL * SetExtensionEventCallback) (jvmtiEnv * env,
- jint
- extension_event_index,
- jvmtiExtensionEvent
- callback);
+ jint
+ extension_event_index,
+ jvmtiExtensionEvent
+ callback);
+
jvmtiError (JNICALL * DisposeEnvironment) (jvmtiEnv * env);
- jvmtiError (JNICALL * GetErrorName) (jvmtiEnv * env, jvmtiError error,
- char **name_ptr);
+
+ jvmtiError (JNICALL * GetErrorName) (jvmtiEnv * env,
+ jvmtiError error, char **name_ptr);
+
jvmtiError (JNICALL * GetJLocationFormat) (jvmtiEnv * env,
- jvmtiJlocationFormat *
- format_ptr);
+ jvmtiJlocationFormat *
+ format_ptr);
+
jvmtiError (JNICALL * GetSystemProperties) (jvmtiEnv * env,
- jint * count_ptr,
- char ***property_ptr);
+ jint * count_ptr,
+ char ***property_ptr);
+
jvmtiError (JNICALL * GetSystemProperty) (jvmtiEnv * env,
- const char *property,
- char **value_ptr);
+ const char *property,
+ char **value_ptr);
+
jvmtiError (JNICALL * SetSystemProperty) (jvmtiEnv * env,
- const char *property,
- const char *value);
+ const char *property,
+ const char *value);
+
jvmtiError (JNICALL * GetPhase) (jvmtiEnv * env, jvmtiPhase * phase_ptr);
+
jvmtiError (JNICALL * GetCurrentThreadCpuTimerInfo) (jvmtiEnv * env,
- jvmtiTimerInfo *
- info_ptr);
+ jvmtiTimerInfo *
+ info_ptr);
+
jvmtiError (JNICALL * GetCurrentThreadCpuTime) (jvmtiEnv * env,
- jlong * nanos_ptr);
+ jlong * nanos_ptr);
+
jvmtiError (JNICALL * GetThreadCpuTimerInfo) (jvmtiEnv * env,
- jvmtiTimerInfo * info_ptr);
- jvmtiError (JNICALL * GetThreadCpuTime) (jvmtiEnv * env, jthread thread,
- jlong * nanos_ptr);
+ jvmtiTimerInfo * info_ptr);
+
+ jvmtiError (JNICALL * GetThreadCpuTime) (jvmtiEnv * env,
+ jthread thread,
+ jlong * nanos_ptr);
+
jvmtiError (JNICALL * GetTimerInfo) (jvmtiEnv * env,
- jvmtiTimerInfo * info_ptr);
+ jvmtiTimerInfo * info_ptr);
+
jvmtiError (JNICALL * GetTime) (jvmtiEnv * env, jlong * nanos_ptr);
+
+
jvmtiError (JNICALL * GetPotentialCapabilities) (jvmtiEnv * env,
- jvmtiCapabilities *
- capabilities_ptr);
+ jvmtiCapabilities *
+ capabilities_ptr);
+
void *reserved141;
+
jvmtiError (JNICALL * AddCapabilities) (jvmtiEnv * env,
- const jvmtiCapabilities *
- capabilities_ptr);
+ const jvmtiCapabilities *
+ capabilities_ptr);
+
jvmtiError (JNICALL * RelinquishCapabilities) (jvmtiEnv * env,
- const jvmtiCapabilities *
- capabilities_ptr);
+ const jvmtiCapabilities *
+ capabilities_ptr);
+
jvmtiError (JNICALL * GetAvailableProcessors) (jvmtiEnv * env,
- jint *
- processor_count_ptr);
+ jint *
+ processor_count_ptr);
+
void *reserved145;
+
void *reserved146;
+
jvmtiError (JNICALL * GetEnvironmentLocalStorage) (jvmtiEnv * env,
- void **data_ptr);
+ void **data_ptr);
+
jvmtiError (JNICALL * SetEnvironmentLocalStorage) (jvmtiEnv * env,
- const void *data);
+ const void *data);
+
jvmtiError (JNICALL * AddToBootstrapClassLoaderSearch) (jvmtiEnv * env,
- const char
- *segment);
+ const char
+ *segment);
+
jvmtiError (JNICALL * SetVerboseFlag) (jvmtiEnv * env,
- jvmtiVerboseFlag flag,
- jboolean value);
+ jvmtiVerboseFlag flag,
+ jboolean value);
+
void *reserved151;
+
void *reserved152;
+
void *reserved153;
- jvmtiError (JNICALL * GetObjectSize) (jvmtiEnv * env, jobject object,
- jlong * size_ptr);
-} jvmtiNativeInterface;
-#endif /* jvmti_h */
+ jvmtiError (JNICALL * GetObjectSize) (jvmtiEnv * env,
+ jobject object, jlong * size_ptr);
+};
+
+
+struct jvmtiEnv_struct
+{
+ const struct ti_interface *funcs;
+
+#ifdef __cplusplus
+
+ jvmtiError Allocate (jlong size, unsigned char **mem_ptr)
+ {
+ return funcs->Allocate (this, size, mem_ptr);
+ }
+
+ jvmtiError Deallocate (unsigned char *mem)
+ {
+ return funcs->Deallocate (this, mem);
+ }
+
+ jvmtiError GetThreadState (jthread thread, jint * thread_state_ptr)
+ {
+ return funcs->GetThreadState (this, thread, thread_state_ptr);
+ }
+
+ jvmtiError GetAllThreads (jint * threads_count_ptr, jthread ** threads_ptr)
+ {
+ return funcs->GetAllThreads (this, threads_count_ptr, threads_ptr);
+ }
+
+ jvmtiError SuspendThread (jthread thread)
+ {
+ return funcs->SuspendThread (this, thread);
+ }
+
+ jvmtiError SuspendThreadList (jint request_count,
+ const jthread * request_list,
+ jvmtiError * results)
+ {
+ return funcs->SuspendThreadList (this, request_count, request_list,
+ results);
+ }
+
+ jvmtiError ResumeThread (jthread thread)
+ {
+ return funcs->ResumeThread (this, thread);
+ }
+
+ jvmtiError ResumeThreadList (jint request_count,
+ const jthread * request_list,
+ jvmtiError * results)
+ {
+ return funcs->ResumeThreadList (this, request_count, request_list,
+ results);
+ }
+
+ jvmtiError StopThread (jthread thread, jobject exception)
+ {
+ return funcs->StopThread (this, thread, exception);
+ }
+
+ jvmtiError InterruptThread (jthread thread)
+ {
+ return funcs->InterruptThread (this, thread);
+ }
+
+ jvmtiError GetThreadInfo (jthread thread, jvmtiThreadInfo * info_ptr)
+ {
+ return funcs->GetThreadInfo (this, thread, info_ptr);
+ }
+
+ jvmtiError GetOwnedMonitorInfo (jthread thread,
+ jint * owned_monitor_count_ptr,
+ jobject ** owned_monitors_ptr)
+ {
+ return funcs->GetOwnedMonitorInfo (this, thread,
+ owned_monitor_count_ptr,
+ owned_monitors_ptr);
+ }
+
+ jvmtiError GetCurrentContendedMonitor (jthread thread,
+ jobject * monitor_ptr)
+ {
+ return funcs->GetCurrentContendedMonitor (this, thread, monitor_ptr);
+ }
+
+ jvmtiError RunAgentThread (jthread thread,
+ jvmtiStartFunction proc,
+ const void *arg, jint priority)
+ {
+ return funcs->RunAgentThread (this, thread, proc, arg, priority);
+ }
+
+ jvmtiError SetThreadLocalStorage (jthread thread, const void *data)
+ {
+ return funcs->SetThreadLocalStorage (this, thread, data);
+ }
+
+ jvmtiError GetThreadLocalStorage (jthread thread, void **data_ptr)
+ {
+ return funcs->GetThreadLocalStorage (this, thread, data_ptr);
+ }
+
+ jvmtiError GetTopThreadGroups (jint * group_count_ptr,
+ jthreadGroup ** groups_ptr)
+ {
+ return funcs->GetTopThreadGroups (this, group_count_ptr, groups_ptr);
+ }
+
+ jvmtiError GetThreadGroupInfo (jthreadGroup group,
+ jvmtiThreadGroupInfo * info_ptr)
+ {
+ return funcs->GetThreadGroupInfo (this, group, info_ptr);
+ }
+
+ jvmtiError GetThreadGroupChildren (jthreadGroup group,
+ jint * thread_count_ptr,
+ jthread ** threads_ptr,
+ jint * group_count_ptr,
+ jthreadGroup ** groups_ptr)
+ {
+ return funcs->GetThreadGroupChildren (this, group, thread_count_ptr,
+ threads_ptr, group_count_ptr,
+ groups_ptr);
+ }
+
+ jvmtiError GetStackTrace (jthread thread,
+ jint start_depth,
+ jint max_frame_count,
+ jvmtiFrameInfo * frame_buffer, jint * count_ptr)
+ {
+ return funcs->GetStackTrace (this, thread, start_depth,
+ max_frame_count, frame_buffer, count_ptr);
+ }
+
+ jvmtiError GetAllStackTraces (jint max_frame_count,
+ jvmtiStackInfo ** stack_info_ptr,
+ jint * thread_count_ptr)
+ {
+ return funcs->GetAllStackTraces (this, max_frame_count,
+ stack_info_ptr, thread_count_ptr);
+ }
+
+ jvmtiError GetThreadListStackTraces (jint thread_count,
+ const jthread * thread_list,
+ jint max_frame_count,
+ jvmtiStackInfo ** stack_info_ptr)
+ {
+ return funcs->GetThreadListStackTraces (this, thread_count,
+ thread_list, max_frame_count,
+ stack_info_ptr);
+ }
+
+ jvmtiError GetFrameCount (jthread thread, jint * count_ptr)
+ {
+ return funcs->GetFrameCount (this, thread, count_ptr);
+ }
+
+ jvmtiError PopFrame (jthread thread)
+ {
+ return funcs->PopFrame (this, thread);
+ }
+
+ jvmtiError GetFrameLocation (jthread thread,
+ jint depth,
+ jmethodID * method_ptr,
+ jlocation * location_ptr)
+ {
+ return funcs->GetFrameLocation (this, thread, depth, method_ptr,
+ location_ptr);
+ }
+
+ jvmtiError NotifyFramePop (jthread thread, jint depth)
+ {
+ return funcs->NotifyFramePop (this, thread, depth);
+ }
+
+ jvmtiError GetTag (jobject object, jlong * tag_ptr)
+ {
+ return funcs->GetTag (this, object, tag_ptr);
+ }
+
+ jvmtiError SetTag (jobject object, jlong tag)
+ {
+ return funcs->SetTag (this, object, tag);
+ }
+
+ jvmtiError ForceGarbageCollection ()
+ {
+ return funcs->ForceGarbageCollection (this);
+ }
+
+ jvmtiError IterateOverObjectsReachableFromObject (jobject object,
+ jvmtiObjectReferenceCallback
+ object_reference_callback,
+ void *user_data)
+ {
+ return funcs->IterateOverObjectsReachableFromObject (this, object,
+ object_reference_callback,
+ user_data);
+ }
+
+ jvmtiError IterateOverReachableObjects (jvmtiHeapRootCallback
+ heap_root_callback,
+ jvmtiStackReferenceCallback
+ stack_ref_callback,
+ jvmtiObjectReferenceCallback
+ object_ref_callback,
+ void *user_data)
+ {
+ return funcs->IterateOverReachableObjects (this, heap_root_callback,
+ stack_ref_callback,
+ object_ref_callback,
+ user_data);
+ }
+
+ jvmtiError IterateOverHeap (jvmtiHeapObjectFilter object_filter,
+ jvmtiHeapObjectCallback heap_object_callback,
+ void *user_data)
+ {
+ return funcs->IterateOverHeap (this, object_filter,
+ heap_object_callback, user_data);
+ }
+
+ jvmtiError IterateOverInstancesOfClass (jclass clazz,
+ jvmtiHeapObjectFilter object_filter,
+ jvmtiHeapObjectCallback
+ heap_object_callback,
+ void *user_data)
+ {
+ return funcs->IterateOverInstancesOfClass (this, clazz, object_filter,
+ heap_object_callback,
+ user_data);
+ }
+
+ jvmtiError GetObjectsWithTags (jint tag_count,
+ const jlong * tags,
+ jint * count_ptr,
+ jobject ** object_result_ptr,
+ jlong ** tag_result_ptr)
+ {
+ return funcs->GetObjectsWithTags (this, tag_count, tags, count_ptr,
+ object_result_ptr, tag_result_ptr);
+ }
+
+ jvmtiError GetLocalObject (jthread thread,
+ jint depth, jint slot, jobject * value_ptr)
+ {
+ return funcs->GetLocalObject (this, thread, depth, slot, value_ptr);
+ }
+
+ jvmtiError GetLocalInt (jthread thread,
+ jint depth, jint slot, jint * value_ptr)
+ {
+ return funcs->GetLocalInt (this, thread, depth, slot, value_ptr);
+ }
+
+ jvmtiError GetLocalLong (jthread thread,
+ jint depth, jint slot, jlong * value_ptr)
+ {
+ return funcs->GetLocalLong (this, thread, depth, slot, value_ptr);
+ }
+
+ jvmtiError GetLocalFloat (jthread thread,
+ jint depth, jint slot, jfloat * value_ptr)
+ {
+ return funcs->GetLocalFloat (this, thread, depth, slot, value_ptr);
+ }
+
+ jvmtiError GetLocalDouble (jthread thread,
+ jint depth, jint slot, jdouble * value_ptr)
+ {
+ return funcs->GetLocalDouble (this, thread, depth, slot, value_ptr);
+ }
+
+ jvmtiError SetLocalObject (jthread thread,
+ jint depth, jint slot, jobject value)
+ {
+ return funcs->SetLocalObject (this, thread, depth, slot, value);
+ }
+
+ jvmtiError SetLocalInt (jthread thread, jint depth, jint slot, jint value)
+ {
+ return funcs->SetLocalInt (this, thread, depth, slot, value);
+ }
+
+ jvmtiError SetLocalLong (jthread thread, jint depth, jint slot, jlong value)
+ {
+ return funcs->SetLocalLong (this, thread, depth, slot, value);
+ }
+
+ jvmtiError SetLocalFloat (jthread thread,
+ jint depth, jint slot, jfloat value)
+ {
+ return funcs->SetLocalFloat (this, thread, depth, slot, value);
+ }
+
+ jvmtiError SetLocalDouble (jthread thread,
+ jint depth, jint slot, jdouble value)
+ {
+ return funcs->SetLocalDouble (this, thread, depth, slot, value);
+ }
+
+ jvmtiError SetBreakpoint (jmethodID method, jlocation location)
+ {
+ return funcs->SetBreakpoint (this, method, location);
+ }
+
+ jvmtiError ClearBreakpoint (jmethodID method, jlocation location)
+ {
+ return funcs->ClearBreakpoint (this, method, location);
+ }
+
+ jvmtiError SetFieldAccessWatch (jclass clazz, jfieldID field)
+ {
+ return funcs->SetFieldAccessWatch (this, clazz, field);
+ }
+
+ jvmtiError ClearFieldAccessWatch (jclass clazz, jfieldID field)
+ {
+ return funcs->ClearFieldAccessWatch (this, clazz, field);
+ }
+
+ jvmtiError SetFieldModificationWatch (jclass clazz, jfieldID field)
+ {
+ return funcs->SetFieldModificationWatch (this, clazz, field);
+ }
+
+ jvmtiError ClearFieldModificationWatch (jclass clazz, jfieldID field)
+ {
+ return funcs->ClearFieldModificationWatch (this, clazz, field);
+ }
+
+ jvmtiError GetLoadedClasses (jint * class_count_ptr, jclass ** classes_ptr)
+ {
+ return funcs->GetLoadedClasses (this, class_count_ptr, classes_ptr);
+ }
+
+ jvmtiError GetClassLoaderClasses (jobject initiating_loader,
+ jint * class_count_ptr,
+ jclass ** classes_ptr)
+ {
+ return funcs->GetClassLoaderClasses (this, initiating_loader,
+ class_count_ptr, classes_ptr);
+ }
+
+ jvmtiError GetClassSignature (jclass clazz,
+ char **signature_ptr, char **generic_ptr)
+ {
+ return funcs->GetClassSignature (this, clazz, signature_ptr, generic_ptr);
+ }
+
+ jvmtiError GetClassStatus (jclass clazz, jint * status_ptr)
+ {
+ return funcs->GetClassStatus (this, clazz, status_ptr);
+ }
+
+ jvmtiError GetSourceFileName (jclass clazz, char **source_name_ptr)
+ {
+ return funcs->GetSourceFileName (this, clazz, source_name_ptr);
+ }
+
+ jvmtiError GetClassModifiers (jclass clazz, jint * modifiers_ptr)
+ {
+ return funcs->GetClassModifiers (this, clazz, modifiers_ptr);
+ }
+
+ jvmtiError GetClassMethods (jclass clazz,
+ jint * method_count_ptr,
+ jmethodID ** methods_ptr)
+ {
+ return funcs->GetClassMethods (this, clazz, method_count_ptr,
+ methods_ptr);
+ }
+
+ jvmtiError GetClassFields (jclass clazz,
+ jint * field_count_ptr, jfieldID ** fields_ptr)
+ {
+ return funcs->GetClassFields (this, clazz, field_count_ptr, fields_ptr);
+ }
+
+ jvmtiError GetImplementedInterfaces (jclass clazz,
+ jint * interface_count_ptr,
+ jclass ** interfaces_ptr)
+ {
+ return funcs->GetImplementedInterfaces (this, clazz,
+ interface_count_ptr,
+ interfaces_ptr);
+ }
+
+ jvmtiError IsInterface (jclass clazz, jboolean * is_interface_ptr)
+ {
+ return funcs->IsInterface (this, clazz, is_interface_ptr);
+ }
+
+ jvmtiError IsArrayClass (jclass clazz, jboolean * is_array_class_ptr)
+ {
+ return funcs->IsArrayClass (this, clazz, is_array_class_ptr);
+ }
+
+ jvmtiError GetClassLoader (jclass clazz, jobject * classloader_ptr)
+ {
+ return funcs->GetClassLoader (this, clazz, classloader_ptr);
+ }
+
+ jvmtiError GetSourceDebugExtension (jclass clazz,
+ char **source_debug_extension_ptr)
+ {
+ return funcs->GetSourceDebugExtension (this, clazz,
+ source_debug_extension_ptr);
+ }
+
+ jvmtiError RedefineClasses (jint class_count,
+ const jvmtiClassDefinition * class_definitions)
+ {
+ return funcs->RedefineClasses (this, class_count, class_definitions);
+ }
+
+ jvmtiError GetObjectSize (jobject object, jlong * size_ptr)
+ {
+ return funcs->GetObjectSize (this, object, size_ptr);
+ }
+
+ jvmtiError GetObjectHashCode (jobject object, jint * hash_code_ptr)
+ {
+ return funcs->GetObjectHashCode (this, object, hash_code_ptr);
+ }
+
+ jvmtiError GetObjectMonitorUsage (jobject object,
+ jvmtiMonitorUsage * info_ptr)
+ {
+ return funcs->GetObjectMonitorUsage (this, object, info_ptr);
+ }
+
+ jvmtiError GetFieldName (jclass clazz,
+ jfieldID field,
+ char **name_ptr,
+ char **signature_ptr, char **generic_ptr)
+ {
+ return funcs->GetFieldName (this, clazz, field, name_ptr,
+ signature_ptr, generic_ptr);
+ }
+
+ jvmtiError GetFieldDeclaringClass (jclass clazz,
+ jfieldID field,
+ jclass * declaring_class_ptr)
+ {
+ return funcs->GetFieldDeclaringClass (this, clazz, field,
+ declaring_class_ptr);
+ }
+
+ jvmtiError GetFieldModifiers (jclass clazz,
+ jfieldID field, jint * modifiers_ptr)
+ {
+ return funcs->GetFieldModifiers (this, clazz, field, modifiers_ptr);
+ }
+
+ jvmtiError IsFieldSynthetic (jclass clazz,
+ jfieldID field, jboolean * is_synthetic_ptr)
+ {
+ return funcs->IsFieldSynthetic (this, clazz, field, is_synthetic_ptr);
+ }
+
+ jvmtiError GetMethodName (jmethodID method,
+ char **name_ptr,
+ char **signature_ptr, char **generic_ptr)
+ {
+ return funcs->GetMethodName (this, method, name_ptr, signature_ptr,
+ generic_ptr);
+ }
+
+ jvmtiError GetMethodDeclaringClass (jmethodID method,
+ jclass * declaring_class_ptr)
+ {
+ return funcs->GetMethodDeclaringClass (this, method, declaring_class_ptr);
+ }
+
+ jvmtiError GetMethodModifiers (jmethodID method, jint * modifiers_ptr)
+ {
+ return funcs->GetMethodModifiers (this, method, modifiers_ptr);
+ }
+
+ jvmtiError GetMaxLocals (jmethodID method, jint * max_ptr)
+ {
+ return funcs->GetMaxLocals (this, method, max_ptr);
+ }
+
+ jvmtiError GetArgumentsSize (jmethodID method, jint * size_ptr)
+ {
+ return funcs->GetArgumentsSize (this, method, size_ptr);
+ }
+
+ jvmtiError GetLineNumberTable (jmethodID method,
+ jint * entry_count_ptr,
+ jvmtiLineNumberEntry ** table_ptr)
+ {
+ return funcs->GetLineNumberTable (this, method, entry_count_ptr,
+ table_ptr);
+ }
+
+ jvmtiError GetMethodLocation (jmethodID method,
+ jlocation * start_location_ptr,
+ jlocation * end_location_ptr)
+ {
+ return funcs->GetMethodLocation (this, method, start_location_ptr,
+ end_location_ptr);
+ }
+
+ jvmtiError GetLocalVariableTable (jmethodID method,
+ jint * entry_count_ptr,
+ jvmtiLocalVariableEntry ** table_ptr)
+ {
+ return funcs->GetLocalVariableTable (this, method, entry_count_ptr,
+ table_ptr);
+ }
+
+ jvmtiError GetBytecodes (jmethodID method,
+ jint * bytecode_count_ptr,
+ unsigned char **bytecodes_ptr)
+ {
+ return funcs->GetBytecodes (this, method, bytecode_count_ptr,
+ bytecodes_ptr);
+ }
+
+ jvmtiError IsMethodNative (jmethodID method, jboolean * is_native_ptr)
+ {
+ return funcs->IsMethodNative (this, method, is_native_ptr);
+ }
+
+ jvmtiError IsMethodSynthetic (jmethodID method, jboolean * is_synthetic_ptr)
+ {
+ return funcs->IsMethodSynthetic (this, method, is_synthetic_ptr);
+ }
+
+ jvmtiError IsMethodObsolete (jmethodID method, jboolean * is_obsolete_ptr)
+ {
+ return funcs->IsMethodObsolete (this, method, is_obsolete_ptr);
+ }
+
+ jvmtiError CreateRawMonitor (const char *name, jrawMonitorID * monitor_ptr)
+ {
+ return funcs->CreateRawMonitor (this, name, monitor_ptr);
+ }
+
+ jvmtiError DestroyRawMonitor (jrawMonitorID monitor)
+ {
+ return funcs->DestroyRawMonitor (this, monitor);
+ }
+
+ jvmtiError RawMonitorEnter (jrawMonitorID monitor)
+ {
+ return funcs->RawMonitorEnter (this, monitor);
+ }
+
+ jvmtiError RawMonitorExit (jrawMonitorID monitor)
+ {
+ return funcs->RawMonitorExit (this, monitor);
+ }
+
+ jvmtiError RawMonitorWait (jrawMonitorID monitor, jlong millis)
+ {
+ return funcs->RawMonitorWait (this, monitor, millis);
+ }
+
+ jvmtiError RawMonitorNotify (jrawMonitorID monitor)
+ {
+ return funcs->RawMonitorNotify (this, monitor);
+ }
+
+ jvmtiError RawMonitorNotifyAll (jrawMonitorID monitor)
+ {
+ return funcs->RawMonitorNotifyAll (this, monitor);
+ }
+
+ jvmtiError SetJNIFunctionTable (const jniNativeInterface * function_table)
+ {
+ return funcs->SetJNIFunctionTable (this, function_table);
+ }
+
+ jvmtiError GetJNIFunctionTable (jniNativeInterface ** function_table)
+ {
+ return funcs->GetJNIFunctionTable (this, function_table);
+ }
+
+ jvmtiError SetEventCallbacks (const jvmtiEventCallbacks * callbacks,
+ jint size_of_callbacks)
+ {
+ return funcs->SetEventCallbacks (this, callbacks, size_of_callbacks);
+ }
+
+ jvmtiError SetEventNotificationMode (jvmtiEventMode mode,
+ jvmtiEvent event_type,
+ jthread event_thread, ...)
+ {
+ return funcs->SetEventNotificationMode (this, mode, event_type,
+ event_thread);
+ }
+
+ jvmtiError GenerateEvents (jvmtiEvent event_type)
+ {
+ return funcs->GenerateEvents (this, event_type);
+ }
+
+ jvmtiError GetExtensionFunctions (jint * extension_count_ptr,
+ jvmtiExtensionFunctionInfo ** extensions)
+ {
+ return funcs->GetExtensionFunctions (this, extension_count_ptr,
+ extensions);
+ }
+
+ jvmtiError GetExtensionEvents (jint * extension_count_ptr,
+ jvmtiExtensionEventInfo ** extensions)
+ {
+ return funcs->GetExtensionEvents (this, extension_count_ptr, extensions);
+ }
+
+ jvmtiError SetExtensionEventCallback (jint extension_event_index,
+ jvmtiExtensionEvent callback)
+ {
+ return funcs->SetExtensionEventCallback (this, extension_event_index,
+ callback);
+ }
+
+ jvmtiError GetPotentialCapabilities (jvmtiCapabilities * capabilities_ptr)
+ {
+ return funcs->GetPotentialCapabilities (this, capabilities_ptr);
+ }
+
+ jvmtiError AddCapabilities (const jvmtiCapabilities * capabilities_ptr)
+ {
+ return funcs->AddCapabilities (this, capabilities_ptr);
+ }
+
+ jvmtiError RelinquishCapabilities (const jvmtiCapabilities *
+ capabilities_ptr)
+ {
+ return funcs->RelinquishCapabilities (this, capabilities_ptr);
+ }
+
+ jvmtiError GetCapabilities (jvmtiCapabilities * capabilities_ptr)
+ {
+ return funcs->GetCapabilities (this, capabilities_ptr);
+ }
+
[... 101 lines stripped ...]