aboutsummaryrefslogtreecommitdiffstats
path: root/make/stub_includes/jni/macosx/jvmdi.h
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-03-18 05:58:29 +0100
committerSven Gothel <[email protected]>2011-03-18 05:58:29 +0100
commit9090e69547804f589796a457a19751487038d5e3 (patch)
treeacaac1f5bf0d7da91dfab79bb4b83bc330c4824e /make/stub_includes/jni/macosx/jvmdi.h
parent0b57c668703de3717badf8e779a91e64773d7f61 (diff)
Cleanup JNI/JAWT C Header with copyright statement
Diffstat (limited to 'make/stub_includes/jni/macosx/jvmdi.h')
-rw-r--r--make/stub_includes/jni/macosx/jvmdi.h1012
1 files changed, 0 insertions, 1012 deletions
diff --git a/make/stub_includes/jni/macosx/jvmdi.h b/make/stub_includes/jni/macosx/jvmdi.h
deleted file mode 100644
index 81e559db7..000000000
--- a/make/stub_includes/jni/macosx/jvmdi.h
+++ /dev/null
@@ -1,1012 +0,0 @@
-/*
- * @(#)jvmdi.h 1.48 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
-/*
- * Java Virtual Machine Debug Interface
- *
- * Defines debugging functionality that a VM should provide.
- *
- * Should not overlap functionality in jni.h
- */
-
-#ifndef _JAVASOFT_JVMDI_H_
-#define _JAVASOFT_JVMDI_H_
-
-#include "jni.h"
-
-#define JVMDI_VERSION_1 0x20010000
-#define JVMDI_VERSION_1_1 0x20010001
-#define JVMDI_VERSION_1_2 0x20010002
-#define JVMDI_VERSION_1_3 0x20010003
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef jobject jthread;
-
-typedef jobject jthreadGroup;
-
-struct _jframeID;
-typedef struct _jframeID *jframeID;
-
- /* specifies program location "pc" - often byte code index */
-typedef jlong jlocation;
-
- /* The jmethodID for methods that have been replaced */
- /* via RedefineClasses - used when the implementation */
- /* does not wish to retain replaced jmethodIDs */
-#define OBSOLETE_METHOD_ID ((jmethodID)(NULL))
-
- /*
- * Errors
- */
-
-typedef jint jvmdiError;
-
- /* no error */
-#define JVMDI_ERROR_NONE ((jvmdiError)0)
-
- /*
- * Errors on thread operations
- */
-
- /* invalid thread */
-#define JVMDI_ERROR_INVALID_THREAD ((jvmdiError)10)
- /* invalid thread group */
-#define JVMDI_ERROR_INVALID_THREAD_GROUP ((jvmdiError)11)
- /* invalid thread priority */
-#define JVMDI_ERROR_INVALID_PRIORITY ((jvmdiError)12)
- /* thread not suspended */
-#define JVMDI_ERROR_THREAD_NOT_SUSPENDED ((jvmdiError)13)
- /* thread already suspended */
-#define JVMDI_ERROR_THREAD_SUSPENDED ((jvmdiError)14)
-
- /*
- * Errors on object and class operations
- */
-
- /* invalid object (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_INVALID_OBJECT ((jvmdiError)20)
- /* invalid class (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_INVALID_CLASS ((jvmdiError)21)
- /* class not prepared */
-#define JVMDI_ERROR_CLASS_NOT_PREPARED ((jvmdiError)22)
- /* invalid methodID (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_INVALID_METHODID ((jvmdiError)23)
- /* invalid location */
-#define JVMDI_ERROR_INVALID_LOCATION ((jvmdiError)24)
- /* invalid fieldID (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_INVALID_FIELDID ((jvmdiError)25)
-
- /*
- * Errors on frame operations
- */
-
- /* invalid frameID (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_INVALID_FRAMEID ((jvmdiError)30)
- /* there are no more frames on the stack */
-#define JVMDI_ERROR_NO_MORE_FRAMES ((jvmdiError)31)
- /* operation cannot be performed on this frame */
-#define JVMDI_ERROR_OPAQUE_FRAME ((jvmdiError)32)
- /* operation can only be performed on current frame */
-#define JVMDI_ERROR_NOT_CURRENT_FRAME ((jvmdiError)33)
- /* type mismatch (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_TYPE_MISMATCH ((jvmdiError)34)
- /* invalid slot */
-#define JVMDI_ERROR_INVALID_SLOT ((jvmdiError)35)
-
- /*
- * Errors on set/clear/find operations
- */
-
- /* item already present */
-#define JVMDI_ERROR_DUPLICATE ((jvmdiError)40)
- /* item not found */
-#define JVMDI_ERROR_NOT_FOUND ((jvmdiError)41)
-
- /*
- * Errors on monitor operations
- */
-
- /* invalid monitor */
-#define JVMDI_ERROR_INVALID_MONITOR ((jvmdiError)50)
- /* wait, notify, notify all tried without entering monitor */
-#define JVMDI_ERROR_NOT_MONITOR_OWNER ((jvmdiError)51)
- /* waiting thread interrupted */
-#define JVMDI_ERROR_INTERRUPT ((jvmdiError)52)
-
- /*
- * Class redefinition / operand stack errors
- */
-
- /* The equivalent of ClassFormatError */
-#define JVMDI_ERROR_INVALID_CLASS_FORMAT ((jvmdiError)60)
- /* The equivalent of ClassCircularityError */
-#define JVMDI_ERROR_CIRCULAR_CLASS_DEFINITION ((jvmdiError)61)
- /* The class bytes fail verification */
-#define JVMDI_ERROR_FAILS_VERIFICATION ((jvmdiError)62)
- /* The new class version adds new methods */
- /* and can_add_method is false */
-#define JVMDI_ERROR_ADD_METHOD_NOT_IMPLEMENTED ((jvmdiError)63)
- /* The new class version changes fields */
- /* and can_unrestrictedly_redefine_classes is false */
-#define JVMDI_ERROR_SCHEMA_CHANGE_NOT_IMPLEMENTED ((jvmdiError)64)
- /* bci/operand stack/local var combination is not verifiably */
- /* type safe */
-#define JVMDI_ERROR_INVALID_TYPESTATE ((jvmdiError)65)
- /* A direct superclass is different for the new class */
- /* version, or the set of directly implemented */
- /* interfaces is different */
- /* and can_unrestrictedly_redefine_classes is false */
-#define JVMDI_ERROR_HIERARCHY_CHANGE_NOT_IMPLEMENTED ((jvmdiError)66)
- /* The new class version does not declare a method */
- /* declared in the old class version */
- /* and can_unrestrictedly_redefine_classes is false */
-#define JVMDI_ERROR_DELETE_METHOD_NOT_IMPLEMENTED ((jvmdiError)67)
- /* A class file has a version number not supported */
- /* by this VM. */
-#define JVMDI_ERROR_UNSUPPORTED_VERSION ((jvmdiError)68)
- /* The class name defined in the new class file is */
- /* different from the name in the old class object */
-#define JVMDI_ERROR_NAMES_DONT_MATCH ((jvmdiError)69)
- /* The new class version has different modifiers and */
- /* can_unrestrictedly_redefine_classes is false */
-#define JVMDI_ERROR_CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED ((jvmdiError)70)
- /* A method in the new class version has different modifiers */
- /* than its counterpart in the old class version */
- /* and can_unrestrictedly_redefine_classes is false */
-#define JVMDI_ERROR_METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED ((jvmdiError)71)
-
- /*
- * Miscellaneous errors
- */
-
- /* Not yet implemented */
-#define JVMDI_ERROR_NOT_IMPLEMENTED ((jvmdiError)99)
- /* null pointer */
-#define JVMDI_ERROR_NULL_POINTER ((jvmdiError)100)
- /* information is absent */
-#define JVMDI_ERROR_ABSENT_INFORMATION ((jvmdiError)101)
- /* invalid event type */
-#define JVMDI_ERROR_INVALID_EVENT_TYPE ((jvmdiError)102)
- /* invalid argument */
-#define JVMDI_ERROR_ILLEGAL_ARGUMENT ((jvmdiError)103)
-
- /*
- * Universal errors. These errors may be returned by
- * any JVMDI function, not just the ones for which they are listed
- * below.
- */
-
- /* no more memory available for allocation */
-#define JVMDI_ERROR_OUT_OF_MEMORY ((jvmdiError)110)
- /* debugging has not been enabled in this VM */
-#define JVMDI_ERROR_ACCESS_DENIED ((jvmdiError)111)
- /* VM is dead (implementation not required to gracefully catch) */
-#define JVMDI_ERROR_VM_DEAD ((jvmdiError)112)
- /* internal error */
-#define JVMDI_ERROR_INTERNAL ((jvmdiError)113)
- /* Thread calling JVMDI function not attached to VM */
-#define JVMDI_ERROR_UNATTACHED_THREAD ((jvmdiError)115)
-
-
- /*
- * Threads
- */
-
- /* Thread status is unknown */
-#define JVMDI_THREAD_STATUS_UNKNOWN ((jint)-1)
- /* Thread is waiting to die */
-#define JVMDI_THREAD_STATUS_ZOMBIE ((jint)0)
- /* Thread is runnable */
-#define JVMDI_THREAD_STATUS_RUNNING ((jint)1)
- /* Thread is sleeping - Thread.sleep() or JVM_Sleep() was called */
-#define JVMDI_THREAD_STATUS_SLEEPING ((jint)2)
- /* Thread is waiting on a java monitor */
-#define JVMDI_THREAD_STATUS_MONITOR ((jint)3)
- /* Thread is waiting - Thread.wait() or JVM_MonitorWait() was called */
-#define JVMDI_THREAD_STATUS_WAIT ((jint)4)
-
- /* Thread is suspended - Thread.suspend(), JVM_Suspend() or
- * JVMDI_Suspend was called */
-#define JVMDI_SUSPEND_STATUS_SUSPENDED ((jint)0x1)
- /* Thread is at a breakpoint */
-#define JVMDI_SUSPEND_STATUS_BREAK ((jint)0x2)
-
-
- /* Thread priority constants */
-#define JVMDI_THREAD_MIN_PRIORITY ((jint)1)
-#define JVMDI_THREAD_NORM_PRIORITY ((jint)5)
-#define JVMDI_THREAD_MAX_PRIORITY ((jint)10)
-
-typedef struct {
- char *name;
- jint priority;
- jboolean is_daemon;
- jthreadGroup thread_group;
- jobject context_class_loader;
-} JVMDI_thread_info;
-
-typedef struct {
- jthreadGroup parent;
- char *name;
- jint max_priority;
- jboolean is_daemon;
-} JVMDI_thread_group_info;
-
-#define JVMDI_DISABLE ((jint) 0)
-#define JVMDI_ENABLE ((jint) 1)
-
-/*
- * Initial function for debug threads created through JVMDI
- */
-typedef void (*JVMDI_StartFunction)(void *);
-
-/*
- * Type for debug monitors created through JVMDI
- */
-typedef void *JVMDI_RawMonitor;
-
-#define JVMDI_MONITOR_WAIT_FOREVER ((jlong)(0))
-
-/*
- * Monitor information
- */
-typedef struct {
- jthread owner;
- jint entry_count;
- jint waiter_count;
- jthread *waiters;
-} JVMDI_monitor_info;
-
-typedef struct {
- jint owned_monitor_count;
- jobject *owned_monitors;
-} JVMDI_owned_monitor_info;
-
- /*
- * Events
- */
-
- /* kind = JVMDI_EVENT_SINGLE_STEP */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- } JVMDI_single_step_event_data;
-
- /* kind = JVMDI_EVENT_BREAKPOINT */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- } JVMDI_breakpoint_event_data;
-
- /* kind = JVMDI_EVENT_FIELD_ACCESS */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- jclass field_clazz;
- jobject object;
- jfieldID field;
- } JVMDI_field_access_event_data;
-
- /* kind = JVMDI_EVENT_FIELD_MODIFICATION */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- jclass field_clazz;
- jobject object;
- jfieldID field;
- char signature_type;
- jvalue new_value;
- } JVMDI_field_modification_event_data;
-
- /* kind = JVMDI_EVENT_FRAME_POP */
- /* kind = JVMDI_EVENT_METHOD_ENTRY */
- /* kind = JVMDI_EVENT_METHOD_EXIT */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jframeID frame;
- } JVMDI_frame_event_data;
-
- /* kind = JVMDI_EVENT_EXCEPTION */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- jobject exception;
- jclass catch_clazz;
- jmethodID catch_method;
- jlocation catch_location;
- } JVMDI_exception_event_data;
-
- /* kind = JVMDI_EVENT_EXCEPTION_CATCH */
- typedef struct {
- jthread thread;
- jclass clazz;
- jmethodID method;
- jlocation location;
- jobject exception;
- } JVMDI_exception_catch_event_data;
-
- /* kind = JVMDI_EVENT_USER_DEFINED */
- typedef struct {
- jobject object;
- jint key;
- } JVMDI_user_event_data;
-
- /* kind = JVMDI_EVENT_THREAD_END or */
- /* JVMDI_EVENT_THREAD_START */
- typedef struct {
- jthread thread;
- } JVMDI_thread_change_event_data;
-
- /* kind = JVMDI_EVENT_CLASS_LOAD, */
- /* JVMDI_EVENT_CLASS_UNLOAD, or */
- /* JVMDI_EVENT_CLASS_PREPARE */
- typedef struct {
- jthread thread;
- jclass clazz;
- } JVMDI_class_event_data;
-
-/* This stucture passes information about the event.
- * location is the index of the last instruction executed.
- */
-typedef struct {
- jint kind; /* the discriminant */
-
- union {
- /* kind = JVMDI_EVENT_SINGLE_STEP */
- JVMDI_single_step_event_data single_step;
-
- /* kind = JVMDI_EVENT_BREAKPOINT */
- JVMDI_breakpoint_event_data breakpoint;
-
- /* kind = JVMDI_EVENT_FRAME_POP */
- /* kind = JVMDI_EVENT_METHOD_ENTRY */
- /* kind = JVMDI_EVENT_METHOD_EXIT */
- JVMDI_frame_event_data frame;
-
- /* kind = JVMDI_EVENT_FIELD_ACCESS */
- JVMDI_field_access_event_data field_access;
-
- /* kind = JVMDI_EVENT_FIELD_MODIFICATION */
- JVMDI_field_modification_event_data field_modification;
-
- /* kind = JVMDI_EVENT_EXCEPTION */
- JVMDI_exception_event_data exception;
-
- /* kind = JVMDI_EVENT_EXCEPTION_CATCH */
- JVMDI_exception_catch_event_data exception_catch;
-
- /* kind = JVMDI_EVENT_USER_DEFINED */
- JVMDI_user_event_data user;
-
- /* kind = JVMDI_EVENT_THREAD_END or */
- /* JVMDI_EVENT_THREAD_START */
- JVMDI_thread_change_event_data thread_change;
-
- /* kind = JVMDI_EVENT_CLASS_LOAD, */
- /* JVMDI_EVENT_CLASS_UNLOAD, or */
- /* JVMDI_EVENT_CLASS_PREPARE */
- JVMDI_class_event_data class_event;
-
- /* kind = JVMDI_EVENT_VM_DEATH, JVMDI_EVENT_VM_INIT */
- /* no additional fields */
- } u;
-} JVMDI_Event;
-
- /*** event kinds ***/
-#define JVMDI_EVENT_SINGLE_STEP ((jint)1)
-#define JVMDI_EVENT_BREAKPOINT ((jint)2)
-#define JVMDI_EVENT_FRAME_POP ((jint)3)
-#define JVMDI_EVENT_EXCEPTION ((jint)4)
-#define JVMDI_EVENT_USER_DEFINED ((jint)5)
-#define JVMDI_EVENT_THREAD_START ((jint)6)
-#define JVMDI_EVENT_THREAD_END ((jint)7)
-#define JVMDI_EVENT_CLASS_PREPARE ((jint)8)
-#define JVMDI_EVENT_CLASS_UNLOAD ((jint)9)
-#define JVMDI_EVENT_CLASS_LOAD ((jint)10)
-#define JVMDI_EVENT_FIELD_ACCESS ((jint)20)
-#define JVMDI_EVENT_FIELD_MODIFICATION ((jint)21)
-#define JVMDI_EVENT_EXCEPTION_CATCH ((jint)30)
-#define JVMDI_EVENT_METHOD_ENTRY ((jint)40)
-#define JVMDI_EVENT_METHOD_EXIT ((jint)41)
-#define JVMDI_EVENT_VM_INIT ((jint)90)
-#define JVMDI_EVENT_VM_DEATH ((jint)99)
-
-#define JVMDI_MAX_EVENT_TYPE_VAL ((jint)99)
-
-
-
-/* event handler hook */
-typedef void (*JVMDI_EventHook)(JNIEnv *env, JVMDI_Event *event);
-
-typedef jvmdiError (*JVMDI_AllocHook) (jlong size, jbyte** memPtr);
-typedef jvmdiError (*JVMDI_DeallocHook) (jbyte* buffer);
-
-/*
- * Class states used in JVMDI_GetClassStatus
- */
-#define JVMDI_CLASS_STATUS_VERIFIED ((jint)0x01)
-#define JVMDI_CLASS_STATUS_PREPARED ((jint)0x02)
-#define JVMDI_CLASS_STATUS_INITIALIZED ((jint)0x04)
- /* Error prevents initialization */
-#define JVMDI_CLASS_STATUS_ERROR ((jint)0x08)
-
-/* structure for returning line number information
- */
-typedef struct {
- jlocation start_location;
- jint line_number;
-} JVMDI_line_number_entry;
-
-
-/* structure for returning local variable information
- */
-typedef struct {
- jlocation start_location; /* variable valid start_location */
- jint length; /* upto start_location+length */
- char *name; /* name in UTF8 */
- char *signature; /* type signature in UTF8 */
- jint slot; /* variable slot, see JVMDI_GetLocal*() */
-} JVMDI_local_variable_entry;
-
-/* structure for returning exception handler information
- */
-typedef struct {
- jlocation start_location;
- jlocation end_location;
- jlocation handler_location;
- jclass exception; /* if null, all exceptions */
-} JVMDI_exception_handler_entry;
-
-#define JVMDI_OPERAND_TYPE_REFERENCE ((jint)1)
-#define JVMDI_OPERAND_TYPE_INT ((jint)2)
-#define JVMDI_OPERAND_TYPE_FLOAT ((jint)3)
-#define JVMDI_OPERAND_TYPE_LONG0 ((jint)4) /* least sig. 32 bits */
-#define JVMDI_OPERAND_TYPE_LONG1 ((jint)5) /* most sig. 32 bits */
-#define JVMDI_OPERAND_TYPE_DOUBLE0 ((jint)6) /* least sig. 32 bits */
-#define JVMDI_OPERAND_TYPE_DOUBLE1 ((jint)7) /* most sig. 32 bits */
-#define JVMDI_OPERAND_TYPE_RETURN_ADDRESS ((jint)8)
-
-typedef struct {
- jint word; /* 32 bit operand stack quantities */
- jint type; /* type encoding of the operand word */
- /* one of JVMDI_OPERAND_TYPE_* */
-} JVMDI_operand_stack_element;
-
-typedef struct {
- jint instance_field_count; /* number of instance fields referencing obj */
- struct JVMDI_instance_field {
- jobject instance; /* instance referencing obj */
- jfieldID field; /* field holding reference */
- } *instance_fields; /* instanceField_count of them */
-
- jint static_field_count; /* number of static fields referencing obj */
- struct JVMDI_static_field {
- jclass clazz; /* class referencing obj */
- jfieldID static_field; /* field holding reference */
- } *static_fields; /* static_field_count of them */
-
- jint array_element_count; /* number of array elements referencing obj */
- struct JVMDI_array_element {
- jobjectArray array; /* array referencing obj */
- jint index; /* index holding reference */
- } *array_elements; /* array_element_count of them */
-
- jint frame_slot_count; /* number of frame slots referencing obj */
- struct JVMDI_frame_slot {
- jthread thread; /* thread of the frame */
- jframeID frame; /* frame referencing obj */
- jint slot; /* slot holding reference */
- } *frame_slots; /* frame_slot_count of them */
-} JVMDI_object_reference_info;
-
-/* structure for defining a class
-*/
-typedef struct {
- jclass clazz; /* Class object for this class */
- jint class_byte_count; /* number of bytes defining class (below) */
- jbyte *class_bytes; /* bytes defining class (in JVM spec */
- /* Class File Format) */
-} JVMDI_class_definition;
-
- /* For backwards compatibility */
-#define can_change_schema can_unrestrictedly_redefine_classes
-
-typedef struct {
- unsigned int can_watch_field_modification : 1;
- unsigned int can_watch_field_access : 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_get_heap_info : 1;
- unsigned int can_get_operand_stack : 1;
- unsigned int can_set_operand_stack : 1;
- unsigned int can_pop_frame : 1;
- unsigned int can_get_class_definition : 1;
- unsigned int can_redefine_classes : 1;
- unsigned int can_add_method : 1;
- unsigned int can_unrestrictedly_redefine_classes : 1;
- unsigned int can_suspend_resume_thread_lists : 1;
-} JVMDI_capabilities;
-
-typedef struct JVMDI_Interface_1_ {
- jvmdiError (JNICALL *SetEventHook)
- (JVMDI_EventHook hook);
- jvmdiError (JNICALL *SetEventNotificationMode)
- (jint mode, jint eventType, jthread thread, ...);
-
- jvmdiError (JNICALL *GetThreadStatus)
- (jthread thread,
- jint *threadStatusPtr, jint *suspendStatusPtr);
- jvmdiError (JNICALL *GetAllThreads)
- (jint *threadsCountPtr, jthread **threadsPtr);
- jvmdiError (JNICALL *SuspendThread)
- (jthread thread);
- jvmdiError (JNICALL *ResumeThread)
- (jthread thread);
- jvmdiError (JNICALL *StopThread)
- (jthread thread, jobject exception);
- jvmdiError (JNICALL *InterruptThread)
- (jthread thread);
- jvmdiError (JNICALL *GetThreadInfo)
- (jthread thread, JVMDI_thread_info *infoPtr);
- jvmdiError (JNICALL *GetOwnedMonitorInfo)
- (jthread thread, JVMDI_owned_monitor_info *infoPtr);
- jvmdiError (JNICALL *GetCurrentContendedMonitor)
- (jthread thread, jobject *monitor);
- jvmdiError (JNICALL *RunDebugThread)
- (jthread thread, JVMDI_StartFunction proc, void *arg,
- int priority);
-
- jvmdiError (JNICALL *GetTopThreadGroups)
- (jint *groupCountPtr, jthreadGroup **groupsPtr);
- jvmdiError (JNICALL *GetThreadGroupInfo)
- (jthreadGroup group, JVMDI_thread_group_info *infoPtr);
- jvmdiError (JNICALL *GetThreadGroupChildren)
- (jthreadGroup group,
- jint *threadCountPtr, jthread **threadsPtr,
- jint *groupCountPtr, jthreadGroup **groupsPtr);
-
- jvmdiError (JNICALL *GetFrameCount)
- (jthread thread, jint *countPtr);
- jvmdiError (JNICALL *GetCurrentFrame)
- (jthread thread, jframeID *framePtr);
- jvmdiError (JNICALL *GetCallerFrame)
- (jframeID called, jframeID *framePtr);
- jvmdiError (JNICALL *GetFrameLocation)
- (jframeID frame, jclass *classPtr, jmethodID *methodPtr,
- jlocation *locationPtr);
- jvmdiError (JNICALL *NotifyFramePop)
- (jframeID frame);
- jvmdiError (JNICALL *GetLocalObject)
- (jframeID frame, jint slot, jobject *valuePtr);
- jvmdiError (JNICALL *GetLocalInt)
- (jframeID frame, jint slot, jint *valuePtr);
- jvmdiError (JNICALL *GetLocalLong)
- (jframeID frame, jint slot, jlong *valuePtr);
- jvmdiError (JNICALL *GetLocalFloat)
- (jframeID frame, jint slot, jfloat *valuePtr);
- jvmdiError (JNICALL *GetLocalDouble)
- (jframeID frame, jint slot, jdouble *valuePtr);
- jvmdiError (JNICALL *SetLocalObject)
- (jframeID frame, jint slot, jobject value);
- jvmdiError (JNICALL *SetLocalInt)
- (jframeID frame, jint slot, jint value);
- jvmdiError (JNICALL *SetLocalLong)
- (jframeID frame, jint slot, jlong value);
- jvmdiError (JNICALL *SetLocalFloat)
- (jframeID frame, jint slot, jfloat value);
- jvmdiError (JNICALL *SetLocalDouble)
- (jframeID frame, jint slot, jdouble value);
-
- jvmdiError (JNICALL *CreateRawMonitor)
- (char *name, JVMDI_RawMonitor *monitorPtr);
- jvmdiError (JNICALL *DestroyRawMonitor)
- (JVMDI_RawMonitor monitor);
- jvmdiError (JNICALL *RawMonitorEnter)
- (JVMDI_RawMonitor monitor);
- jvmdiError (JNICALL *RawMonitorExit)
- (JVMDI_RawMonitor monitor);
- jvmdiError (JNICALL *RawMonitorWait)
- (JVMDI_RawMonitor monitor, jlong millis);
- jvmdiError (JNICALL *RawMonitorNotify)
- (JVMDI_RawMonitor monitor);
- jvmdiError (JNICALL *RawMonitorNotifyAll)
- (JVMDI_RawMonitor monitor);
-
- jvmdiError (JNICALL *SetBreakpoint)
- (jclass clazz, jmethodID method, jlocation location);
- jvmdiError (JNICALL *ClearBreakpoint)
- (jclass clazz, jmethodID method, jlocation location);
- jvmdiError (JNICALL *ClearAllBreakpoints)
- ();
-
- jvmdiError (JNICALL *SetFieldAccessWatch)
- (jclass clazz, jfieldID field);
- jvmdiError (JNICALL *ClearFieldAccessWatch)
- (jclass clazz, jfieldID field);
- jvmdiError (JNICALL *SetFieldModificationWatch)
- (jclass clazz, jfieldID field);
- jvmdiError (JNICALL *ClearFieldModificationWatch)
- (jclass clazz, jfieldID field);
-
- jvmdiError (JNICALL *SetAllocationHooks)
- (JVMDI_AllocHook ahook, JVMDI_DeallocHook dhook);
- jvmdiError (JNICALL *Allocate)
- (jlong size, jbyte** memPtr);
- jvmdiError (JNICALL *Deallocate)
- (jbyte* mem);
-
- jvmdiError (JNICALL *GetClassSignature)
- (jclass clazz, char **sigPtr);
- jvmdiError (JNICALL *GetClassStatus)
- (jclass clazz, jint *statusPtr);
- jvmdiError (JNICALL *GetSourceFileName)
- (jclass clazz, char **sourceNamePtr);
- jvmdiError (JNICALL *GetClassModifiers)
- (jclass clazz, jint *modifiersPtr);
- jvmdiError (JNICALL *GetClassMethods)
- (jclass clazz, jint *methodCountPtr, jmethodID **methodsPtr);
- jvmdiError (JNICALL *GetClassFields)
- (jclass clazz, jint *fieldCountPtr, jfieldID **fieldsPtr);
- jvmdiError (JNICALL *GetImplementedInterfaces)
- (jclass clazz, jint *interfaceCountPtr, jclass **interfacesPtr);
- jvmdiError (JNICALL *IsInterface)
- (jclass clazz, jboolean *isInterfacePtr);
- jvmdiError (JNICALL *IsArrayClass)
- (jclass clazz, jboolean *isArrayClassPtr);
- jvmdiError (JNICALL *GetClassLoader)
- (jclass clazz, jobject *classloaderPtr);
-
- jvmdiError (JNICALL *GetObjectHashCode)
- (jobject object, jint *hashCodePtr);
- jvmdiError (JNICALL *GetMonitorInfo)
- (jobject object, JVMDI_monitor_info *infoPtr);
-
- jvmdiError (JNICALL *GetFieldName)
- (jclass clazz, jfieldID field, char **namePtr, char **signaturePtr);
- jvmdiError (JNICALL *GetFieldDeclaringClass)
- (jclass clazz, jfieldID field, jclass *declaringClassPtr);
- jvmdiError (JNICALL *GetFieldModifiers)
- (jclass clazz, jfieldID field, jint *modifiersPtr);
- jvmdiError (JNICALL *IsFieldSynthetic)
- (jclass clazz, jfieldID field, jboolean *isSyntheticPtr);
-
- jvmdiError (JNICALL *GetMethodName)
- (jclass clazz, jmethodID method,
- char **namePtr, char **signaturePtr);
- jvmdiError (JNICALL *GetMethodDeclaringClass)
- (jclass clazz, jmethodID method, jclass *declaringClassPtr);
- jvmdiError (JNICALL *GetMethodModifiers)
- (jclass clazz, jmethodID method, jint *modifiersPtr);
- jvmdiError (JNICALL *GetMaxStack)
- (jclass clazz, jmethodID method, jint *maxPtr);
- jvmdiError (JNICALL *GetMaxLocals)
- (jclass clazz, jmethodID method, jint *maxPtr);
- jvmdiError (JNICALL *GetArgumentsSize)
- (jclass clazz, jmethodID method, jint *sizePtr);
- jvmdiError (JNICALL *GetLineNumberTable)
- (jclass clazz, jmethodID method,
- jint *entryCountPtr, JVMDI_line_number_entry **tablePtr);
- jvmdiError (JNICALL *GetMethodLocation)
- (jclass clazz, jmethodID method,
- jlocation *startLocationPtr, jlocation *endLocationPtr);
- jvmdiError (JNICALL *GetLocalVariableTable)
- (jclass clazz, jmethodID method,
- jint *entryCountPtr, JVMDI_local_variable_entry **tablePtr);
- jvmdiError (JNICALL *GetExceptionHandlerTable)
- (jclass clazz, jmethodID method,
- jint *entryCountPtr, JVMDI_exception_handler_entry **tablePtr);
- jvmdiError (JNICALL *GetThrownExceptions)
- (jclass clazz, jmethodID method,
- jint *exceptionCountPtr, jclass **exceptionsPtr);
- jvmdiError (JNICALL *GetBytecodes)
- (jclass clazz, jmethodID method,
- jint *bytecodeCountPtr, jbyte **bytecodesPtr);
- jvmdiError (JNICALL *IsMethodNative)
- (jclass clazz, jmethodID method, jboolean *isNativePtr);
- jvmdiError (JNICALL *IsMethodSynthetic)
- (jclass clazz, jmethodID method, jboolean *isSyntheticPtr);
-
- jvmdiError (JNICALL *GetLoadedClasses)
- (jint *classCountPtr, jclass **classesPtr);
- jvmdiError (JNICALL *GetClassLoaderClasses)
- (jobject initiatingLoader, jint *classesCountPtr,
- jclass **classesPtr);
-
- jvmdiError (JNICALL *PopFrame)
- (jthread thread);
- jvmdiError (JNICALL *SetFrameLocation)
- (jframeID frame, jlocation location);
- jvmdiError (JNICALL *GetOperandStack)
- (jframeID frame, jint *operandStackSizePtr,
- JVMDI_operand_stack_element **operandStackPtr);
- jvmdiError (JNICALL *SetOperandStack)
- (jframeID frame, jint operandStackSize,
- JVMDI_operand_stack_element *operandStack);
- jvmdiError (JNICALL *AllInstances)
- (jclass clazz, jint *instanceCountPtr, jobject **instancesPtr);
- jvmdiError (JNICALL *References)
- (jobject obj, JVMDI_object_reference_info *refs);
- jvmdiError (JNICALL *GetClassDefinition)
- (jclass clazz, JVMDI_class_definition *classDefPtr);
- jvmdiError (JNICALL *RedefineClasses)
- (jint classCount, JVMDI_class_definition *classDefs);
-
- jvmdiError (JNICALL *GetVersionNumber)
- (jint *versionPtr);
- jvmdiError (JNICALL *GetCapabilities)
- (JVMDI_capabilities *capabilitiesPtr);
-
- jvmdiError (JNICALL *GetSourceDebugExtension)
- (jclass clazz, char **sourceDebugExtension);
- jvmdiError (JNICALL *IsMethodObsolete)
- (jclass clazz, jmethodID method, jboolean *isObsoletePtr);
-
- jvmdiError (JNICALL *SuspendThreadList)
- (jint reqCount, jthread *reqList, jvmdiError *results);
- jvmdiError (JNICALL *ResumeThreadList)
- (jint reqCount, jthread *reqList, jvmdiError *results);
-} JVMDI_Interface_1;
-
-#ifndef NO_JVMDI_MACROS
-
-#define JVMDI_ERROR_DUPLICATE_BREAKPOINT JVMDI_ERROR_DUPLICATE
-#define JVMDI_ERROR_NO_SUCH_BREAKPOINT JVMDI_ERROR_NOT_FOUND
-#define JVMDI_ERROR_DUPLICATE_FRAME_POP JVMDI_ERROR_DUPLICATE
-
-
-static JVMDI_Interface_1 *jvmdi_interface = NULL;
-static JavaVM *j_vm;
-
-#ifdef __cplusplus
-#define SetJVMDIfromJNIEnv(a_env) ( (jvmdi_interface == NULL)? \
- ((a_env)->GetJavaVM(&j_vm), \
- (j_vm)->GetEnv((void **)&jvmdi_interface, \
- JVMDI_VERSION_1)):0)
-#else
-#define SetJVMDIfromJNIEnv(a_env) ( (jvmdi_interface == NULL)? \
- ((*a_env)->GetJavaVM(a_env, &j_vm), \
- (*j_vm)->GetEnv(j_vm, (void **)&jvmdi_interface, \
- JVMDI_VERSION_1)):0)
-#endif
-
-#define JVMDI_SetEventHook(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetEventHook(a1) )
-#define JVMDI_GetThreadStatus(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetThreadStatus(a1, a2, a3) )
-#define JVMDI_GetAllThreads(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetAllThreads(a1, a2) )
-#define JVMDI_SuspendThread(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SuspendThread(a1) )
-#define JVMDI_ResumeThread(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->ResumeThread(a1) )
-#define JVMDI_StopThread(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->StopThread(a1, a2) )
-#define JVMDI_InterruptThread(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->InterruptThread(a1) )
-#define JVMDI_SetSingleStep(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetEventNotificationMode( \
- (a2) ? JVMDI_ENABLE : JVMDI_DISABLE, \
- JVMDI_EVENT_SINGLE_STEP, a1) )
-#define JVMDI_GetThreadInfo(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetThreadInfo(a1, a2) )
-#define JVMDI_RunDebugThread(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RunDebugThread(a1, a2, a3, a4) )
-#define JVMDI_GetTopThreadGroups(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetTopThreadGroups(a1, a2) )
-#define JVMDI_GetThreadGroupInfo(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetThreadGroupInfo(a1, a2) )
-#define JVMDI_GetThreadGroupChildren(a_env, a1, a2, a3, a4, a5) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetThreadGroupChildren(a1, a2, a3, a4, a5) )
-#define JVMDI_GetCurrentFrame(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetCurrentFrame(a1, a2) )
-#define JVMDI_GetCallerFrame(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetCallerFrame(a1, a2) )
-#define JVMDI_GetFrameLocation(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetFrameLocation(a1, a2, a3, a4) )
-#define JVMDI_NotifyFramePop(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->NotifyFramePop(a1) )
-#define JVMDI_GetLocalObject(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalObject(a1, a2, a3) )
-#define JVMDI_GetLocalInt(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalInt(a1, a2, a3) )
-#define JVMDI_GetLocalLong(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalLong(a1, a2, a3) )
-#define JVMDI_GetLocalFloat(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalFloat(a1, a2, a3) )
-#define JVMDI_GetLocalDouble(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalDouble(a1, a2, a3) )
-#define JVMDI_SetLocalObject(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetLocalObject(a1, a2, a3) )
-#define JVMDI_SetLocalInt(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetLocalInt(a1, a2, a3) )
-#define JVMDI_SetLocalLong(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetLocalLong(a1, a2, a3) )
-#define JVMDI_SetLocalFloat(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetLocalFloat(a1, a2, a3) )
-#define JVMDI_SetLocalDouble(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetLocalDouble(a1, a2, a3) )
-#define JVMDI_CreateRawMonitor(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->CreateRawMonitor(a1, a2) )
-#define JVMDI_DestroyRawMonitor(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->DestroyRawMonitor(a1) )
-#define JVMDI_RawMonitorEnter(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RawMonitorEnter(a1) )
-#define JVMDI_RawMonitorExit(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RawMonitorExit(a1) )
-#define JVMDI_RawMonitorWait(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RawMonitorWait(a1, a2) )
-#define JVMDI_RawMonitorNotify(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RawMonitorNotify(a1) )
-#define JVMDI_RawMonitorNotifyAll(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->RawMonitorNotifyAll(a1) )
-#define JVMDI_SetBreakpoint(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetBreakpoint(a1, a2, a3) )
-#define JVMDI_ClearBreakpoint(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->ClearBreakpoint(a1, a2, a3) )
-#define JVMDI_ClearAllBreakpoints(a_env) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->ClearAllBreakpoints() )
-#define JVMDI_SetAllocationHooks(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->SetAllocationHooks(a1, a2) )
-#define JVMDI_Allocate(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->Allocate(a1, a2) )
-#define JVMDI_Deallocate(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->Deallocate(a1) )
-#define JVMDI_GetClassSignature(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassSignature(a1, a2) )
-#define JVMDI_GetClassStatus(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassStatus(a1, a2) )
-#define JVMDI_GetSourceFileName(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetSourceFileName(a1, a2) )
-#define JVMDI_GetClassModifiers(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassModifiers(a1, a2) )
-#define JVMDI_GetClassMethods(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassMethods(a1, a2, a3) )
-#define JVMDI_GetClassFields(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassFields(a1, a2, a3) )
-#define JVMDI_GetImplementedInterfaces(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetImplementedInterfaces(a1, a2, a3) )
-#define JVMDI_IsInterface(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->IsInterface(a1, a2) )
-#define JVMDI_IsArrayClass(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->IsArrayClass(a1, a2) )
-#define JVMDI_ClassLoader(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassLoader(a1, a2) )
-#define JVMDI_GetFieldName(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetFieldName(a1, a2, a3, a4) )
-#define JVMDI_GetFieldDeclaringClass(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetFieldDeclaringClass(a1, a2, a3) )
-#define JVMDI_GetFieldModifiers(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetFieldModifiers(a1, a2, a3) )
-#define JVMDI_GetMethodName(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMethodName(a1, a2, a3, a4) )
-#define JVMDI_GetMethodDeclaringClass(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMethodDeclaringClass(a1, a2, a3) )
-#define JVMDI_GetMethodModifiers(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMethodModifiers(a1, a2, a3) )
-#define JVMDI_GetMaxStack(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMaxStack(a1, a2, a3) )
-#define JVMDI_GetMaxLocals(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMaxLocals(a1, a2, a3) )
-#define JVMDI_GetArgumentsSize(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetArgumentsSize(a1, a2, a3) )
-#define JVMDI_GetLineNumberTable(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLineNumberTable(a1, a2, a3, a4) )
-#define JVMDI_GetMethodLocation(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetMethodLocation(a1, a2, a3, a4) )
-#define JVMDI_GetLocalVariableTable(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLocalVariableTable(a1, a2, a3, a4) )
-#define JVMDI_GetExceptionHandlerTable(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetExceptionHandlerTable(a1, a2, a3, a4) )
-#define JVMDI_GetThrownExceptions(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetThrownExceptions(a1, a2, a3, a4) )
-#define JVMDI_GetBytecodes(a_env, a1, a2, a3, a4) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetBytecodes(a1, a2, a3, a4) )
-#define JVMDI_IsMethodNative(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->IsMethodNative(a1, a2, a3) )
-#define JVMDI_GetLoadedClasses(a_env, a1, a2) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetLoadedClasses(a1, a2) )
-#define JVMDI_GetClassLoaderClasses(a_env, a1, a2, a3) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetClassLoaderClasses(a1, a2, a3) )
-#define JVMDI_GetVersionNumber(a_env, a1) ( \
- SetJVMDIfromJNIEnv(a_env), \
- jvmdi_interface->GetVersionNumber(a1) )
-
-#endif /* !NO_JVMDI_MACROS */
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* !_JAVASOFT_JVMDI_H_ */
-
-