Index: include/jni.h =================================================================== --- include/jni.h (revision 525049) +++ include/jni.h (working copy) @@ -1,10 +1,10 @@ -/* +/** * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with + * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at + * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * @@ -16,13 +16,12 @@ */ /** * @file - * This file describes the JNI interface as per the JNI - * specification 1.5 available from Sun + * The JNI interface description as per Sun Java Native Interface (JNI) + * Specification 1.5. * - * See specification - * for details. - */ + * @sa + * Java Native Interface Specification*/ #ifndef _JNI_H_ #define _JNI_H_ @@ -31,28 +30,27 @@ #include #include "jni_types.h" -/* - * Supported JNI versions - */ /** - * Constant which specifies JNI interface version 1.1 + * @name Supported JNI versions + * @{*/ +/** + * The constant specifying the JNI interface, version 1.1. */ #define JNI_VERSION_1_1 0x00010001 /** - * Constant which specifies JNI interface version 1.2 + * The constant specifying the JNI interface, version 1.2. */ #define JNI_VERSION_1_2 0x00010002 /** - * Constant which specifies JNI interface version 1.4 + * The constant specifying the JNI interface, version 1.4. */ #define JNI_VERSION_1_4 0x00010004 - -/** - * JNI Native Method Interface table for use in C sources +/** @}*/ +/** The JNI Native Method Interface table used in C sources. * * See specification - * for details + * href="http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html#wp23720"> + * Java Native Interface Specification */ struct JNINativeInterface_ { void *reserved0; @@ -606,11 +604,11 @@ /** - * JNI Native Method Interface table for use in C++ sources + * The JNI Native Method Interface table used in C++ sources. * - * See specification - * for details + * @sa + * Java Native Interface Specification */ struct JNIEnv_External { const struct JNINativeInterface_ *functions; @@ -1690,11 +1688,11 @@ }; /** - * Structure which describes one Java VM invocation argument + * Describes one Java VM invocation argument. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef struct JavaVMOption { char *optionString; @@ -1702,12 +1700,12 @@ } JavaVMOption; /** - * Structure which describes one Java VM invocation arguments for JNI - * interface version 1.2 and greater + * Describes one Java VM invocation arguments for the JNI + * interface, version 1.2 and higher. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef struct JavaVMInitArgs { jint version; @@ -1717,24 +1715,23 @@ } JavaVMInitArgs; /** - * Structure which describes arguments for attaching a native thread to a Java VM + * Describes arguments for attaching a native thread to Java VM. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef struct JavaVMAttachArgs { jint version; char *name; jobject group; } JavaVMAttachArgs; - /** - * JNI Invocation Interface table for use in C sources + * The JNI Invocation Interface table used in C sources. * - * See - * specification for details + * Java Native Interface Specification */ struct JNIInvokeInterface_ { void* reserved0; @@ -1750,13 +1747,12 @@ jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM*, void** penv, void* args); }; - -/** - * JNI Invocation Interface table for use in C++ sources +/** + * The JNI Invocation Interface table used in C++ sources. * - * See - * specification for details + * Java Native Interface Specification */ struct JavaVM_External { const struct JNIInvokeInterface_* functions; @@ -1791,41 +1787,40 @@ /** * @def _JNI_EXPORT_ - * Function attribute used when building VM from sources + * The function attribute used while building VM from sources. */ #ifdef BUILDING_VM #define _JNI_EXPORT_ JNIEXPORT #else #define _JNI_EXPORT_ JNIIMPORT #endif - /** - * Function to get the default VM arguments + * Gets the default VM arguments. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ _JNI_EXPORT_ jint JNICALL JNI_GetDefaultJavaVMInitArgs(void * vm_args); /** - * Function to get an array of already created Java VMs in the current - * process + * Gets an array of already created Java VMs in the current process. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ + _JNI_EXPORT_ jint JNICALL JNI_GetCreatedJavaVMs(JavaVM ** vmBuf, jsize bufLen, jsize * nVMs); /** - * Creates Java VM in the current process + * Creates Java VM in the current process. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ _JNI_EXPORT_ jint JNICALL JNI_CreateJavaVM(JavaVM ** p_vm, JNIEnv ** p_env, void * vm_args); Index: include/jni_types.h =================================================================== --- include/jni_types.h (revision 525049) +++ include/jni_types.h (working copy) @@ -1,6 +1,6 @@ -/* +/** * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with + * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with @@ -22,30 +22,34 @@ * @file * Types used in JNI and OPEN interfaces. * - * For the most part JNI types are defined by Sun specification on - * Java Native Interface (JNI). See specification - * for details. + * For the most part, JNI types are defined by Sun Java Native Interface (JNI) + * Specification 1.5. + * + * @sa + * Java Native Interface Specification */ -/* The following documentation is both for windows and linux, so it - * resides outside of ifdef-endif block */ /** + * The current documentation is both for Windows and Linux, so it + * is resided outside of the ifdef-endif block. + */ +/** * @def JNIEXPORT - * Function attribute to make native JNI function exportable + * The function attribute making the native JNI function exportable. */ /** * @def JNIIMPORT - * Function attribute used when building VM from sources + * The function attribute used when building VM from sources. */ /** * @def JNICALL - * Function attribute to specify calling conventions that should be - * used for native JNI functions + * The function attribute specifying calling conventions that should be + * used for native JNI functions. */ /** * @typedef jlong - * Signed 64-bit long type equivalent to Java "long" type + * The signed 64-bit long type equivalent to the Java long type. */ #if defined (_WIN32) || defined (__WIN32__) || defined (WIN32) @@ -65,222 +69,225 @@ #endif -/* - * Primitive types - */ /** - * Unsigned 8-bit primitive boolean type equivalent to Java "boolean" - * type + * @name Primitive Types + * @{*/ + +/** + * The unsigned 8-bit primitive boolean type equivalent to the Java + * boolean type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef unsigned char jboolean; /** - * Signed 8-bit primitive byte type equivalent to Java "byte" type + * The signed 8-bit primitive byte type equivalent to the Java + * byte type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef signed char jbyte; /** - * Unsigned 16-bit primitive char type equivalent to Java "char" type + * The unsigned 16-bit primitive char type equivalent to Java + * char type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef unsigned short jchar; /** - * Signed 16-bit primitive short type equivalent to Java "short" type - * - * See specification - * for details. + * The signed 16-bit primitive short type equivalent to the Java + * short type. + * + * @sa + * Java Native Interface Specification */ typedef signed short jshort; /** - * Signed 32-bit primitive integer type equivalent to Java "int" type + * The signed 32-bit primitive integer type equivalent to the Java + * int type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef signed int jint; /** - * Signed 32-bit primitive floating point type equivalent to Java - * "float" type + * The signed 32-bit primitive floating point type equivalent to + * the Java float type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef float jfloat; /** - * Signed 64-bit primitive floating point type equivalent to Java - * "double" type + * The signed 64-bit primitive floating point type equivalent to the Java + * double type. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef double jdouble; /** - * Signed 32-bit primitive integer type used to describe sizes + * The signed 32-bit primitive integer type used to describe sizes. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jint jsize; +/** @} */ -/* - * Java types - */ +/** + *@name Java Types + *@{*/ struct _jobject; /** - * Reference type which describes a general Java object in native - * function + * The reference type describing the general Java object in the native + * function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef struct _jobject* jobject; /** - * Reference type which describes a java.lang.Class instance object in - * native function + * The reference type describing the java.lang.Class instance object + * in the native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jobject jclass; /** - * Reference type which describes a java.lang.String instance object - * in native function + * The reference type describing the java.lang.String instance + * object in the native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jobject jstring; /** - * Reference type which describes a generic array instance object in - * native function + * The reference type describing the generic array instance object in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jobject jarray; /** - * Reference type which describes an array of java.lang.Object - * instances in native function + * The reference type describing the array of java.lang.Object + * instances in the native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ - typedef jarray jobjectArray; +typedef jarray jobjectArray; /** - * Reference type which describes an array of booleans in native - * function + * The reference type describing the array of booleans in the native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jbooleanArray; /** - * Reference type which describes an array of bytes type in native - * function + * The reference type describing the bytes type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jbyteArray; /** - * Reference type which describes an array of chars type in native - * function + * The reference type describing the chars type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jcharArray; /** - * Reference type which describes an array of shorts type in native - * function + * The reference type describing the shorts type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jshortArray; /** - * Reference type which describes an array of ints type in native - * function + * The reference type describing the ints type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jintArray; /** - * Reference type which describes an array of longs type in native - * function + * The reference type describing the longs type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jlongArray; /** - * Reference type which describes an array of floats type in native - * function + * The reference type describing the floats type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jfloatArray; /** - * Reference type which describes an array of doubles type in native - * function + * The reference type describing the doubles type array in the + * native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jarray jdoubleArray; /** - * Reference type which describes a java.lang.Throwable instance - * object in native function + * The reference type describing the java.lang.Throwable instance + * object in the native function. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ typedef jobject jthrowable; /** - * Reference type which describes a weak reference to a general object + * The reference type describing a weak reference to the general object. * - * This type is the same as #jobject but the reference held in it - * is weak, so if the referred object is weakly reacheable, it may be - * garbage collected to VM. + * This type is the same as #jobject, but the reference held in it is weak, so + * if the referred object is weakly reacheable, it may be garbage collected to VM. */ typedef jobject jweak; - /** - * This union used to pass arguments to native functions when Call<type>MethodA - * and CallStatic<type>MethodA - * functions are used + * This union is used to pass arguments to native functions when + * Call<type>MethodA and + * CallStatic<type>MethodA functions are used. * * It consists of all possible primitive Java types plus #jobject, so * it is possible to pass any kind of argument type through it. @@ -299,154 +306,153 @@ struct _jfieldID; /** - * Type which describes an identfier of a field inside of class + * Describes the field identfier inside the class. * - * This type together with a #jclass reference uniquily identifies a + * This type together with a #jclass reference uniquily identifies the * field inside of the class described by #jclass. */ typedef struct _jfieldID* jfieldID; struct _jmethodID; /** - * Type which describes an identfier of a method inside of class + * Describes the method identfier inside the class. * - * This type together with a #jclass reference uniquily identifies a - * method inside of the class described by #jclass. + * This type together with a #jclass reference uniquily identifies the + * method inside the class described by #jclass. */ typedef struct _jmethodID* jmethodID; -/* - * Constants - */ +/** @}*/ -/* - * Boolean constants - */ +/** + * @name Boolean Constants + * @{*/ + /** - * Constant which defines boolean truth in native Java functions. It - * is equivalent to Java constant "true" + * Defines boolean truth in native Java functions. This constant is equivalent + * to the Java constant TRUE. */ #define JNI_FALSE 0 /** - * Constant which defines boolean false in native Java functions. It - * is equivalent to Java constant "false" + * Defines boolean false in native Java functions. This constant is equivalent + * to the Java constant FALSE. */ #define JNI_TRUE 1 +/** @}*/ -/* - * Return values - */ /** - * Constant which describes success when returned by JNI API functions - */ + * @name Return Value Constants + * @{*/ + +/** Describes success, when returned by JNI API functions.*/ #define JNI_OK 0 -/** - * Constant which describes an error when returned by JNI API - * functions - */ +/** Describes an error, when returned by JNI API functions.*/ #define JNI_ERR (-1) /** - * Constant which describes a deatached thread condition when returned - * by JNI API functions + * Describes a deatached thread condition, when returned by JNI API functions. */ #define JNI_EDETACHED (-2) /** - * Constant which describes wrong JNI interface verions when returned - * by JNI API functions + * Describes wrong JNI interface versions, when returned by JNI API functions. */ #define JNI_EVERSION (-3) /** - * Constant which describes out of memory condition when returned by - * JNI API functions + * Describes the out-of-memory condition, when returned by JNI API functions. */ #define JNI_ENOMEM (-4) /** - * Constant which means that a limited resource already exists when - * returned by JNI API functions + * Means that a limited resource already exists, when returned by JNI API + * functions. */ #define JNI_EEXIST (-5) /** - * Constant which means that an illegal argument value was passed to a - * JNI function + * Means that an illegal argument value was passed to the JNI function. */ #define JNI_EINVAL (-6) +/** @}*/ -/* - * Release modes for working with arrays. - */ /** - * Constant which means that an array region should be committed into - * memory. Used in ReleaseArrayElements functions + * @name Release Modes for Working with Arrays Constants + * @{*/ + +/** + * Means that the array region should be committed into memory. This constant is + * used in ReleaseArrayElements functions. */ #define JNI_COMMIT 1 /** - * Constant which means that an array region should be discarded. Used - * in ReleaseArrayElements functions + * Means that the array region should be discarded. This constant is used + * in ReleaseArrayElements functions. */ #define JNI_ABORT 2 +/** @}*/ -/* - * Used as a generic pointer to a function. - */ /** - * Structure which describes a generic pointer to a native - * function. Used in RegisterNatives - * function. + * @name Constants Used as a Generic Pointer to a Function + * @{*/ + +/** + * Describes the generic pointer to the native function. This structure is used + * in the + * RegisterNatives function as a generic pointer to the function. */ typedef struct { char *name; char *signature; void *fnPtr; } JNINativeMethod; +/** @}*/ -/* - * JNI Native Method Interface - */ +/** + * @name JNI Native Method Interface + * @{*/ struct JNINativeInterface_; struct JNIEnv_External; #ifdef __cplusplus /** - * JNI API interface table type for usage in C++ + * The JNI API interface table type used in C++. * - * See specification - * for details. */ + * @sa + * Java Native Interface Specification + */ typedef JNIEnv_External JNIEnv; #else /** - * JNI API interface table type for usage in C + * The JNI API interface table type used in C. * - * See specification - * for details. */ + * @sa + * Java Native Interface Specification + */ typedef const struct JNINativeInterface_ *JNIEnv; #endif +/** @}*/ -/* - * JNI Invocation Interface - */ +/** + * @name JNI Invocation Interface + * @{*/ struct JNIInvokeInterface_; struct JavaVM_External; #ifdef __cplusplus /** - * Java VM interface table type for usage in C++ + * The Java VM interface table type used in C++. * - * See specification - * for details + * @sa + * Java Native Interface Specification */ typedef JavaVM_External JavaVM; #else /** - * Java VM interface table type for usage in C + * The Java VM interface table type used in C. * - * See specification - * for details + * @sa + * Java Native Interface Specification */ typedef const struct JNIInvokeInterface_ *JavaVM; #endif - +/** @}*/ #endif /* _JNI_TYPES_H_ */ Index: include/jvmti.h =================================================================== --- include/jvmti.h (revision 525049) +++ include/jvmti.h (working copy) @@ -1,4 +1,4 @@ -/* +/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + #ifndef _JVMTI_H_ #define _JVMTI_H_ @@ -23,45 +23,50 @@ #include "jni.h" #include "jvmti_types.h" -/* - * Supported JVMTI versions +/** + * @file + * Supported JVMTI versions. */ -/** Constant which specifies JNI interface mask */ +/** The constant specifying the JNI interface mask.*/ #define JVMTI_VERSION_INTERFACE_JNI 0x00000000 -/** Constant which specifies JVMTI interface mask */ +/** The constant specifying the JVMTI interface mask.*/ #define JVMTI_VERSION_INTERFACE_JVMTI 0x30000000 -/** Constant which specifies VM externals interface mask */ +/** The constant specifying the VM externals interface mask.*/ #define JVMTI_VERSION_MASK_INTERFACE_TYPE 0x70000000 -/** Constant which specifies major JVMTI version interface mask */ +/** The constant specifying the major JVMTI version interface mask.*/ #define JVMTI_VERSION_MASK_MAJOR 0x0FFF0000 -/** Constant which specifies minor JVMTI version interface mask */ +/** The constant specifying the minor JVMTI version interface mask.*/ #define JVMTI_VERSION_MASK_MINOR 0x0000FF00 -/** Constant which specifies micro JVMTI version interface mask */ +/** The constant specifying the micro JVMTI version interface mask.*/ #define JVMTI_VERSION_MASK_MICRO 0x000000FF -/** Constant which specifies major JVMTI version left shit */ +/** The constant specifying the major JVMTI version left shit.*/ #define JVMTI_VERSION_SHIFT_MAJOR 16 -/** Constant which specifies minor JVMTI version left shit */ +/** The constant specifying the minor JVMTI version left shit.*/ #define JVMTI_VERSION_SHIFT_MINOR 8 -/** Constant which specifies micro JVMTI version left shit */ +/** The constant specifying the micro JVMTI version left shit.*/ #define JVMTI_VERSION_SHIFT_MICRO 0 -/** JVMTI major version supported by VM */ +/** The JVMTI major version supported by VM.*/ #define JVMTI_VERSION_MAJOR 1 -/** JVMTI minor version supported by VM */ +/** The JVMTI minor version supported by VM.*/ #define JVMTI_VERSION_MINOR 0 -/** JVMTI micro version supported by VM */ +/** The JVMTI micro version supported by VM.*/ #define JVMTI_VERSION_MICRO 36 -/** Constant which defines JVMTI version identifier for JVMTI version - * 1.0.0 */ +/** + * The constant defining the JVMTI version identifier for JVMTI, version + * 1.0.0. + */ #define JVMTI_VERSION_1_0 \ (JVMTI_VERSION_INTERFACE_JVMTI | \ (JVMTI_VERSION_MAJOR << JVMTI_VERSION_SHIFT_MAJOR) | \ (0 << JVMTI_VERSION_SHIFT_MINOR) | \ (0 << JVMTI_VERSION_SHIFT_MICRO)) -/** Constant which defines JVMTI version identifier for JVMTI version - * supported by VM */ +/** + * The constant defining the JVMTI version identifier for the JVMTI version + * supported by VM. + */ #define JVMTI_VERSION \ (JVMTI_VERSION_INTERFACE_JVMTI | \ (JVMTI_VERSION_MAJOR << JVMTI_VERSION_SHIFT_MAJOR) | \ @@ -73,23 +78,24 @@ { #endif - /** - * Agent StartUp function prototype which should be exported by agent library - * - * See specification - * for details. - */ +/** + * The agent StartUp function prototype, which should be exported + * by the agent library. + * + * @sa + * Java Native Interface Specification + */ JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM * vm, char *options, void *reserved); - - /** - * Agent Shutdown prototype which should be exported by agent library - * - * See specification - * for details. - */ +/** + * The agent Shutdown prototype, which should be exported by the + * agent library. + * + * @sa + * Java Native Interface Specification + */ JNIEXPORT void JNICALL Agent_OnUnload(JavaVM * vm); #ifdef __cplusplus @@ -97,11 +103,11 @@ #endif /** - * JVMTI interface functions table for use in C sources + * The JVMTI interface functions table for use in C sources. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ struct ti_interface { @@ -700,11 +706,11 @@ /** - * JVMTI interface functions table for use in C++ sources + * The JVMTI interface functions table for use in C++ sources. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ struct jvmtiEnv_struct { Index: include/jvmti_types.h =================================================================== --- include/jvmti_types.h (revision 525049) +++ include/jvmti_types.h (working copy) @@ -1,4 +1,4 @@ -/* +/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -17,11 +17,11 @@ /** * @file - * Definition of JVMTI interface types + * The JVMTI interface type definitions. * - * See specification - * for details. + * @sa + * Java Native Interface Specification */ #ifndef _JVMTI_TYPES_H_ #define _JVMTI_TYPES_H_ @@ -32,94 +32,90 @@ extern "C" { #endif +/** Basic types*/ - /** - * Basic types - */ struct ti_interface; struct jvmtiEnv_struct; #ifdef __cplusplus - /** - * JVMTI environment definition for use in C++ sources - * - * See specification - * for details. - */ +/** + * The JVMTI environment definition used in C++ sources. + * + * @sa + * Java Native Interface Specification + */ typedef jvmtiEnv_struct jvmtiEnv; #else - /** - * JVMTI environment definition for use in C sources - * - * See specification - * for details. - */ +/** + * The JVMTI environment definition used in C sources. + * + * @sa + * Java Native Interface Specification + */ typedef const struct ti_interface *jvmtiEnv; #endif - /** - * Reference type which describes a java.lang.Thread instance - * object in native function - * - * See specification - * for details. - */ +/** + * The reference type describing the java.lang.Thread instance + * object in the native function. + * + * @sa + * Java Native Interface Specification + */ typedef jobject jthread; - /** - * 64-bit type which defines executable positon inside of method - * - * See specification - * for details. - */ +/** + * The 64-bit type defining the executable positon inside of the method. + * + * @sa + * Java Native Interface Specification + */ typedef jlong jlocation; - /** - * Reference type which describes a java.lang.ThreadGroup instance - * object in native function - * - * See specification - * for details. - */ +/** + * The reference type describing the java.lang.ThreadGroup + * instance object in the native function. + * + * @sa + * Java Native Interface Specification + */ typedef jobject jthreadGroup; - /** - * Raw monitor ID type - * - * See specification - * for details. - */ +/** + * The raw monitor ID type. + * + * @sa + * Java Native Interface Specification + */ typedef int jrawMonitorID; - /** - * JNI API interface table type for usage in C - * - * See specification - * for details. */ +/** + * The JNI API interface table type used in C. + * + * @sa + * Java Native Interface Specification + */ typedef struct JNINativeInterface_ jniNativeInterface; - - - /** - * Pointer to a function which could be launched as a separate - * agent thread - * - * See specification - * for details. - */ +/** + * The function pointer that can be launched as a separate agent thread. + * + * @sa + * Java Native Interface Specification + */ typedef void (JNICALL * jvmtiStartFunction) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, void *arg); - /** - * Error codes which JVMTI API functions may return - * - * See specification - * for details. - */ +/** + * Error codes that JVMTI API functions may return. + * + * @sa + * Java Native Interface Specification + */ typedef enum { JVMTI_ERROR_NONE = 0, @@ -172,75 +168,74 @@ JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71, JVMTI_NYI = 666 } jvmtiError; - - /** - * Class status flags which GetClassStatus - * function may return - */ +/** + * Class-status flags that the + * GetClassStatus function may return. + */ + enum { - /** - * Class bytecodes have been verified - * - * See specification - * for details. - */ +/** + * Class bytecodes have been verified. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_VERIFIED = 1, - /** - * Class preparation is complete - * - * See specification - * for details. - */ +/** + * The class preparation is complete. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_PREPARED = 2, - /** - * Class initialization is complete. Static initializer has been run - * - * See specification - * for details. - */ +/** + * The class initialization is complete. The static initializer has been run. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_INITIALIZED = 4, - /** - * Error during initialization makes class unusable - * - * See specification - * for details. - */ +/** + * The initialization error making the class unusable. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_ERROR = 8, - /** - * Class is an array. If set, all other bits are zero - * - * See specification - * for details. - */ +/** + * The class is an array. If set, all other bits are zero. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_ARRAY = 16, - /** - * Class is a primitive class (for example, - * java.lang.Integer.TYPE). If set, all other - * bits are zero - * - * See specification - * for details. - */ +/** + * The class is a primitive class (for example, + * java.lang.Integer.TYPE). If set, all other bits are zero. + * + * @sa + * Java Native Interface Specification + */ JVMTI_CLASS_STATUS_PRIMITIVE = 32 }; - /** - * Thread states which may be returned by GetThreadState - * function - * - * See specification - * for details. - */ +/** + * Thread states that may be returned by the + * GetThreadState function. + * + * @sa + * Java Native Interface Specification + */ enum { JVMTI_THREAD_STATE_ALIVE = 0x0001, @@ -261,16 +256,17 @@ JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000 }; - /** - * Thread states masks which may be used to filter out thread - * states in bit mask returned by specification - * function - * - * See specification - * for details. - */ +/** + * Thread state masks that may be used to filter out thread states in the bit + * mask returned by + * specification function. + * + * @sa + * Java Native Interface Specification + */ + enum { JVMTI_JAVA_LANG_THREAD_STATE_MASK = @@ -295,13 +291,14 @@ JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT }; - /** - * Thread priorities - * - * See specification - * for details. - */ +/** + * Thread priorities. + * + * @sa + * Java Native Interface Specification + */ + enum { JVMTI_THREAD_MIN_PRIORITY = 1, @@ -309,15 +306,16 @@ JVMTI_THREAD_MAX_PRIORITY = 10 }; - /** - * Thread information structure returned by GetThreadInfo - * function - * - * See specification - * for details. - */ +/** + * The thread information structure returned by the + * GetThreadInfo function. + * + * @sa + * Java Native Interface Specification + */ + typedef struct { char *name; @@ -327,15 +325,16 @@ jobject context_class_loader; } jvmtiThreadInfo; - /** - * Thread group information structure returned by GetThreadGroupInfo - * function - * - * See specification - * for details. - */ +/** + * The thread group information structure returned by the + * GetThreadGroupInfo function. + * + * @sa + * Java Native Interface Specification + */ + typedef struct { jthreadGroup parent; @@ -344,26 +343,25 @@ jboolean is_daemon; } jvmtiThreadGroupInfo; - /** - * Single stack frame information structure - * - * See specification - * for details. - */ +/** + * The single stack-frame information structure. + * + * @sa + * Java Native Interface Specification + */ typedef struct { jmethodID method; jlocation location; } jvmtiFrameInfo; - - /** - * Single thread stack information structure - * - * See specification - * for details. - */ +/** + * The single thread-stack information structure. + * + * @sa + * Java Native Interface Specification + */ typedef struct { jthread thread; @@ -372,14 +370,14 @@ jint frame_count; } jvmtiStackInfo; - /** - * Event numbers. Custom events could be added after - * JVMTI_MAX_EVENT_TYPE_VAL. - * - * See specification - * for details. - */ +/** + * Event numbers. Custom events can be added after + * JVMTI_MAX_EVENT_TYPE_VAL. + * + * @sa + * Java Native Interface Specification + */ typedef enum { JVMTI_MIN_EVENT_TYPE_VAL = 50, @@ -417,20 +415,19 @@ JVMTI_MAX_EVENT_TYPE_VAL = 84 } jvmtiEvent; - /** - * Total number of events specified in JVMTI interface - */ +/** The total number of events specified in the JVMTI interface.*/ #define TOTAL_EVENT_TYPE_NUM (JVMTI_MAX_EVENT_TYPE_VAL - JVMTI_MIN_EVENT_TYPE_VAL + 1) - /** - * Root types used in JVMTI heap - * iteration - * - * See specification - * for details. - */ +/** + * Root types used in the JVMTI heap + * iteration. + * + * @sa + * Java Native Interface Specification + */ + typedef enum { JVMTI_HEAP_ROOT_JNI_GLOBAL = 1, @@ -441,32 +438,30 @@ JVMTI_HEAP_ROOT_THREAD = 6, JVMTI_HEAP_ROOT_OTHER = 7 } jvmtiHeapRootKind; - - /** - * Generic iteration control used in JVMTI heap - * iteration - * - * See specification - * for details. - */ +/** + * The generic iteration control used in the JVMTI heap + * iteration. + * + * @sa + * Java Native Interface Specification + */ typedef enum { JVMTI_ITERATION_CONTINUE = 1, JVMTI_ITERATION_IGNORE = 2, JVMTI_ITERATION_ABORT = 0 } jvmtiIterationControl; - - /** - * Describes enumerated references in JVMTI heap - * iteration - * - * See specification - * for details. - */ +/** + * Describes enumerated references in the JVMTI heap + * iteration. + * + * @sa + * Java Native Interface Specification + */ typedef enum { JVMTI_REFERENCE_CLASS = 1, @@ -479,30 +474,28 @@ JVMTI_REFERENCE_STATIC_FIELD = 8, JVMTI_REFERENCE_CONSTANT_POOL = 9 } jvmtiObjectReferenceKind; - - /** - * Tagged objects filters used in JVMTI heap - * iteration - * - * See specification - * for details. - */ +/** + * Tagged objects filters used in the JVMTI heap + * iteration. + * + * @sa + * Java Native Interface Specification + */ typedef enum { JVMTI_HEAP_OBJECT_TAGGED = 1, JVMTI_HEAP_OBJECT_UNTAGGED = 2, JVMTI_HEAP_OBJECT_EITHER = 3 } jvmtiHeapObjectFilter; - - /** - * Monitor usage information structure - * - * See specification - * for details. - */ +/** + * The monitor usage information structure. + * + * @sa + * Java Native Interface Specification + */ typedef struct { jthread owner; @@ -512,27 +505,26 @@ jint notify_waiter_count; jthread *notify_waiters; } jvmtiMonitorUsage; - - /** - * Line numbers information structure - * - * See specification - * for details. - */ +/** + * The line-number information structure. + * + * @sa + * Java Native Interface Specification + */ typedef struct { jlocation start_location; jint line_number; } jvmtiLineNumberEntry; +/** + * The local-variable information structure. + * + * @sa + * Java Native Interface Specification + */ - /** - * Local variables information structure - * - * See specification - * for details. - */ typedef struct { jlocation start_location; @@ -543,176 +535,191 @@ jint slot; } jvmtiLocalVariableEntry; - /** - * Callback function type for VMInit event - * - * See specification - * for details. - */ +/** + * The callback function type for the VMInit event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventVMInit) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread); - /** - * Callback function type for SingleStep event - * - * See specification - * for details. - */ +/** + * The callback function type for the SingleStep event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventSingleStep) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location); - /** - * Callback function type for Breakpoint event - * - * See specification - * for details. - */ +/** + * The callback function type for the Breakpoint event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventBreakpoint) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location); - /** - * Callback function type for FieldAccess event - * - * See specification - * for details. - */ +/** + * The callback function type for the FieldAccess event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventFieldAccess) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location, jclass field_clazz, jobject object, jfieldID field); - /** - * Callback function type for FieldModification event - * - * See specification - * for details. - */ +/** + * The callback function type for the FieldModification event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventFieldModification) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location, jclass field_clazz, jobject object, jfieldID field, char signature_type, jvalue new_value); - /** - * Callback function type for FramePop event - * - * See specification - * for details. - */ +/** + * The callback function type for the FramePop event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventFramePop) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception); - /** - * Callback function type for MethodEntry event - * - * See specification - * for details. - */ +/** + * The callback function type for the MethodEntry event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMethodEntry) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method); - /** - * Callback function type for MethodExit event - * - * See specification - * for details. - */ +/** + * The callback function type for MethodExit event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMethodExit) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception, jvalue return_value); - /** - * Callback function type for NativeMethodBind event - * - * See specification - * for details. - */ +/** + * The callback function type for the NativeMethodBind event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventNativeMethodBind) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, void *address, void **new_address_ptr); - /** - * Callback function type for Exception event - * - * See specification - * for details. - */ +/** + * The callback function type for the Exception event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventException) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location, jobject exception, jmethodID catch_method, jlocation catch_location); - /** - * Callback function type for ExceptionCatch event - * - * See specification - * for details. - */ +/** + * The callback function type for the ExceptionCatch event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventExceptionCatch) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jmethodID method, jlocation location, jobject exception); - /** - * Callback function type for ThreadStart event - * - * See specification - * for details. - */ +/** + * The callback function type for the ThreadStart event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventThreadStart) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread); - /** - * Callback function type for ThreadEnd event - * - * See specification - * for details. - */ +/** + * The callback function type for the ThreadEnd event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventThreadEnd) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread); - /** - * Callback function type for ClassLoad event - * - * See specification - * for details. - */ +/** + * The callback function type for the ClassLoad event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventClassLoad) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jclass clazz); - /** - * Callback function type for ClassPrepare event - * - * See specification - * for details. - */ +/** + * The callback function type for the ClassPrepare event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventClassPrepare) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jclass clazz); - /** - * Callback function type for ClassFileLoadHook event - * - * See specification - * for details. - */ +/** + * The callback function type for the ClassFileLoadHook event. + * + * @sa + * Java Native Interface Specification*/ + typedef void (JNICALL * jvmtiEventClassFileLoadHook) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jclass class_being_redefined, jobject loader, @@ -720,183 +727,199 @@ jint class_data_len, const unsigned char *class_data, jint * new_class_data_len, unsigned char **new_class_data); - /** - * Callback function type for VMStart event - * - * See specification - * for details. - */ +/** + * The callback function type for the VMStart event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventVMStart) (jvmtiEnv * jvmti_env, JNIEnv * jni_env); - /** - * Callback function type for VMDeath event - * - * See specification - * for details. - */ +/** + * The callback function type for the VMDeath event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventVMDeath) (jvmtiEnv * jvmti_env, JNIEnv * jni_env); - /** - * Native to bytecode location mapping information - * - * See + * Java Native Interface Specification + */ + typedef struct { const void *start_address; jlocation location; } jvmtiAddrLocationMap; - /** - * Callback function type for CompiledMethodLoad event - * - * See specification - * for details. - */ +/** + * The callback function type for the CompiledMethodLoad event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventCompiledMethodLoad) (jvmtiEnv * jvmti_env, jmethodID method, jint code_size, const void *code_addr, jint map_length, const jvmtiAddrLocationMap * almap, const void *compile_info); - /** - * Callback function type for CompiledMethodUnload event - * - * See specification - * for details. - */ +/** + * The callback function type for the CompiledMethodUnload event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventCompiledMethodUnload) (jvmtiEnv * jvmti_env, jmethodID method, const void *code_addr); - /** - * Callback function type for DynamicCodeGenerated event - * - * See specification - * for details. - */ +/** + * The callback function type for the DynamicCodeGenerated event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventDynamicCodeGenerated) (jvmtiEnv * jvmti_env, const char *name, const void *address, jint length); - /** - * Callback function type for DataDumpRequest event - * - * See specification - * for details. - */ +/** + * The callback function type for the DataDumpRequest event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventDataDumpRequest) (jvmtiEnv * jvmti_env); - /** - * Callback function type for DataResetRequest event - * - * See specification - * for details. - */ +/** + * The callback function type for the DataResetRequest event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventDataResetRequest) (jvmtiEnv * jvmti_env); - /** - * Callback function type for MonitorContendedEnter event - * - * See specification - * for details. - */ +/** + * The callback function type for the MonitorContendedEnter event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMonitorContendedEnter) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jobject object); - /** - * Callback function type for MonitorContendedEntered event - * - * See specification - * for details. - */ +/** + * The callback function type for the MonitorContendedEntered event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMonitorContendedEntered) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jobject object); - /** - * Callback function type for MonitorWait event - * - * See specification - * for details. - */ +/** + * The callback function type for the MonitorWait event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMonitorWait) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jobject object, jlong timeout); - /** - * Callback function type for MonitorWaited event - * - * See specification - * for details. - */ +/** + * The callback function type for the MonitorWaited event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventMonitorWaited) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jobject object, jboolean timed_out); - /** - * Callback function type for VMObjectAlloc event - * - * See specification - * for details. - */ +/** + * The callback function type for the VMObjectAlloc event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventVMObjectAlloc) (jvmtiEnv * jvmti_env, JNIEnv * jni_env, jthread thread, jobject object, jclass object_clazz, jlong size); - /** - * Callback function type for ObjectFree event - * - * See specification - * for details. - */ +/** + * The callback function type for the ObjectFree event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventObjectFree) (jvmtiEnv * jvmti_env, jlong tag); - /** - * Callback function type for GarbageCollectionStart event - * - * See specification - * for details. - */ +/** + * The callback function type for the GarbageCollectionStart event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventGarbageCollectionStart) (jvmtiEnv * jvmti_env); - /** - * Callback function type for GarbageCollectionFinish event - * - * See specification for details. - */ +/** + * The callback function type for the GarbageCollectionFinish event. + * + * @sa + * Java Native Interface Specification + */ + typedef void (JNICALL * jvmtiEventGarbageCollectionFinish) (jvmtiEnv * jvmti_env); - /** - * Callback type for reserved event types - */ +/** The callback type for reserved event types.*/ typedef void *jvmtiEventReserved; - /** - * Event callbacks table - * - * See + * Java Native Interface Specification + */ + typedef struct { jvmtiEventVMInit VMInit; @@ -936,14 +959,13 @@ jvmtiEventVMObjectAlloc VMObjectAlloc; } jvmtiEventCallbacks; - - /** - * Arguments kinds for extension events callbacks - * - * See + * Java Native Interface Specification + */ typedef enum { JVMTI_KIND_IN = 91, @@ -955,13 +977,14 @@ JVMTI_KIND_OUT_BUF = 97 } jvmtiParamKind; - /** - * Arguments types for extension events callbacks - * - * See + * Java Native Interface Specification + */ + typedef enum { JVMTI_TYPE_JBYTE = 101, @@ -983,13 +1006,14 @@ JVMTI_TYPE_JNIENV = 117 } jvmtiParamTypes; - /** - * Arguments information for extension events callbacks - * - * See + * Java Native Interface Specification + */ + typedef struct { char *name; @@ -998,36 +1022,39 @@ jboolean null_ok; } jvmtiParamInfo; - /** - * Callback function type for extension events - * - * See + * Java Native Interface Specification + */ + typedef jvmtiError (JNICALL * jvmtiExtensionFunction) (jvmtiEnv * jvmti_env, ...); - /** - * Event generation mode - * - * See + * Java Native Interface Specification + */ + typedef enum { JVMTI_ENABLE = 1, JVMTI_DISABLE = 0 } jvmtiEventMode; - /** - * Extenstion functions information structure - * - * See + * Java Native Interface Specification + */ + typedef struct { jvmtiExtensionFunction func; @@ -1039,13 +1066,14 @@ jvmtiError *errors; } jvmtiExtensionFunctionInfo; - /** - * Extension events information structure - * - * See + * Java Native Interface Specification + */ + typedef struct { jint extension_event_index; @@ -1055,13 +1083,14 @@ jvmtiParamInfo *params; } jvmtiExtensionEventInfo; - /** - * Bit table of JVMTI capabilities supported by VM - * - * See + * Java Native Interface Specification + */ + typedef struct { unsigned int can_tag_objects:1; @@ -1105,27 +1134,29 @@ unsigned int:16; } jvmtiCapabilities; - /** - * Timer type identifier - * - * See + * Java Native Interface Specification + */ + + typedef enum { JVMTI_TIMER_USER_CPU = 30, JVMTI_TIMER_TOTAL_CPU = 31, JVMTI_TIMER_ELAPSED = 32 } jvmtiTimerKind; - /** - * Timer information structure - * - * See + * Java Native Interface Specification + */ + typedef struct { jlong max_value; @@ -1136,13 +1167,14 @@ jlong reserved2; } jvmtiTimerInfo; - /** - * VM operation phase identifier - * - * See + * Java Native Interface Specification + */ + typedef enum { JVMTI_PHASE_ONLOAD = 1, @@ -1152,13 +1184,14 @@ JVMTI_PHASE_DEAD = 8 } jvmtiPhase; - /** - * VM verbosity level - * - * See + * Java Native Interface Specification + */ + typedef enum { JVMTI_VERBOSE_OTHER = 0, @@ -1167,13 +1200,14 @@ JVMTI_VERBOSE_JNI = 4 } jvmtiVerboseFlag; - /** - * JLocation format identifier - * - * See + * Java Native Interface Specification + */ + typedef enum { JVMTI_JLOCATION_JVMBCI = 1, @@ -1181,73 +1215,75 @@ JVMTI_JLOCATION_OTHER = 0 } jvmtiJlocationFormat; - /** - * Callback function type for heap - * iteration callback which is called for all objects - * - * See heap + * iteration callback, called for all objects. + * + * @sa + * Java Native Interface Specification + */ + typedef jvmtiIterationControl (JNICALL * jvmtiHeapObjectCallback) (jlong class_tag, jlong size, jlong * tag_ptr, void *user_data); - /** - * Callback function type for heap - * iteration callback which is called for all root set - * references - * - * See heap + * iteration callback, called for all root set references. + * + * @sa + * Java Native Interface Specification + */ + typedef jvmtiIterationControl (JNICALL * jvmtiHeapRootCallback) (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong * tag_ptr, void *user_data); - /** - * Callback function type for heap - * iteration callback which is called for objects referenced - * from thread stacks - * - * See heap + * iteration callback, called for objects referenced from thread stacks. + * + * @sa + * Java Native Interface Specification + */ + 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); - /** - * Callback function type for heap - * iteration callback which is called for objects referenced - * from object fields - * - * See heap + * iteration callback, called for objects referenced from object fields. + * + * @sa + * Java Native Interface Specification + */ + typedef jvmtiIterationControl (JNICALL * jvmtiObjectReferenceCallback) (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong * tag_ptr, jlong referrer_tag, jint referrer_index, void *user_data); - /** - * Class redefinition information structure - * - * See + * Java Native Interface Specification + */ + typedef struct { jclass klass;