31 typedef char *va_list;
39 #ifdef HAVE_INTTYPES_H
68 class _jclass :
public _jobject {};
69 class _jstring :
public _jobject {};
70 class _jarray :
public _jobject {};
71 class _jobjectArray :
public _jarray {};
72 class _jbooleanArray :
public _jarray {};
73 class _jbyteArray :
public _jarray {};
74 class _jcharArray :
public _jarray {};
75 class _jshortArray :
public _jarray {};
76 class _jintArray :
public _jarray {};
77 class _jlongArray :
public _jarray {};
78 class _jfloatArray :
public _jarray {};
79 class _jdoubleArray :
public _jarray {};
80 class _jthrowable :
public _jobject {};
96 typedef _jobject *
jweak;
158 #if defined(__cplusplus)
514 #if defined(__cplusplus)
567 va_start(
args, methodID);
583 #define CALL_TYPE_METHOD(_jtype, _jname) \
585 _jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...) { \
588 va_start(args, methodID); \
589 result = functions->Call##_jname##MethodV(this, obj, methodID, \
594 #define CALL_TYPE_METHODV(_jtype, _jname) \
596 _jtype Call##_jname##MethodV(jobject obj, jmethodID methodID, \
597 va_list args) { return functions->Call##_jname##MethodV(this, obj, methodID, args); }
598 #define CALL_TYPE_METHODA(_jtype, _jname) \
600 _jtype Call##_jname##MethodA(jobject obj, jmethodID methodID, \
601 jvalue *args) { return functions->Call##_jname##MethodA(this, obj, methodID, args); }
603 #define CALL_TYPE(_jtype, _jname) \
604 CALL_TYPE_METHOD(_jtype, _jname) \
605 CALL_TYPE_METHODV(_jtype, _jname) \
606 CALL_TYPE_METHODA(_jtype, _jname)
611 CALL_TYPE(
jchar, Char)
614 CALL_TYPE(
jlong, Long)
620 va_start(
args, methodID);
627 #define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \
629 _jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz, \
630 jmethodID methodID, ...) { \
633 va_start(args, methodID); \
634 result = functions->CallNonvirtual##_jname##MethodV(this, obj, \
635 clazz, methodID, args); \
639 #define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \
641 _jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz, \
642 jmethodID methodID, va_list args) { return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz, \
644 #define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) \
646 _jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz, \
647 jmethodID methodID, jvalue *args) { return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz, \
650 #define CALL_NONVIRT_TYPE(_jtype, _jname) \
651 CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \
652 CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \
653 CALL_NONVIRT_TYPE_METHODA(_jtype, _jname)
655 CALL_NONVIRT_TYPE(
jobject, Object)
656 CALL_NONVIRT_TYPE(
jboolean, Boolean)
658 CALL_NONVIRT_TYPE(
jchar, Char)
659 CALL_NONVIRT_TYPE(
jshort, Short)
660 CALL_NONVIRT_TYPE(
jint, Int)
661 CALL_NONVIRT_TYPE(
jlong, Long)
662 CALL_NONVIRT_TYPE(
jfloat, Float)
663 CALL_NONVIRT_TYPE(
jdouble, Double)
668 va_start(
args, methodID);
705 #define CALL_STATIC_TYPE_METHOD(_jtype, _jname) \
707 _jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID, \
711 va_start(args, methodID); \
712 result = functions->CallStatic##_jname##MethodV(this, clazz, \
717 #define CALL_STATIC_TYPE_METHODV(_jtype, _jname) \
719 _jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID, \
720 va_list args) { return functions->CallStatic##_jname##MethodV(this, clazz, methodID, \
722 #define CALL_STATIC_TYPE_METHODA(_jtype, _jname) \
724 _jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID, \
725 jvalue *args) { return functions->CallStatic##_jname##MethodA(this, clazz, methodID, \
728 #define CALL_STATIC_TYPE(_jtype, _jname) \
729 CALL_STATIC_TYPE_METHOD(_jtype, _jname) \
730 CALL_STATIC_TYPE_METHODV(_jtype, _jname) \
731 CALL_STATIC_TYPE_METHODA(_jtype, _jname)
733 CALL_STATIC_TYPE(
jobject, Object)
736 CALL_STATIC_TYPE(
jchar, Char)
737 CALL_STATIC_TYPE(
jshort, Short)
738 CALL_STATIC_TYPE(
jint, Int)
739 CALL_STATIC_TYPE(
jlong, Long)
740 CALL_STATIC_TYPE(
jfloat, Float)
741 CALL_STATIC_TYPE(
jdouble, Double)
745 va_start(
args, methodID);
934 #if defined(__cplusplus)
976 jint JNI_GetDefaultJavaVMInitArgs(
void*);
982 #define JNIEXPORT __attribute__((visibility("default")))
1002 #define JNI_VERSION_1_1 0x00010001
1003 #define JNI_VERSION_1_2 0x00010002
1004 #define JNI_VERSION_1_4 0x00010004
1005 #define JNI_VERSION_1_6 0x00010006
1008 #define JNI_ERR (-1)
1009 #define JNI_EDETACHED (-2)
1010 #define JNI_EVERSION (-3)
1012 #define JNI_COMMIT 1
static RzILOpEffect * cls(cs_insn *insn)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
struct JavaVMOption JavaVMOption
struct _jfieldID * jfieldID
JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved)
const struct JNINativeInterface * C_JNIEnv
struct _jmethodID * jmethodID
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
const struct JNIInvokeInterface * JavaVM
const struct JNINativeInterface * JNIEnv
struct JavaVMInitArgs JavaVMInitArgs
static struct sockaddr static addrlen static backlog const void msg
jint(* AttachCurrentThreadAsDaemon)(JavaVM *, JNIEnv **, void *)
jint(* AttachCurrentThread)(JavaVM *, JNIEnv **, void *)
jint(* DetachCurrentThread)(JavaVM *)
jint(* DestroyJavaVM)(JavaVM *)
jint(* GetEnv)(JavaVM *, void **, jint)
const jchar *(* GetStringCritical)(JNIEnv *, jstring, jboolean *)
jbyte(* CallNonvirtualByteMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jboolean(* CallStaticBooleanMethod)(JNIEnv *, jclass, jmethodID,...)
jint(* CallStaticIntMethod)(JNIEnv *, jclass, jmethodID,...)
jdouble(* CallDoubleMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
void(* SetStaticIntField)(JNIEnv *, jclass, jfieldID, jint)
jbyte(* CallNonvirtualByteMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
void(* SetStaticDoubleField)(JNIEnv *, jclass, jfieldID, jdouble)
void(* SetShortField)(JNIEnv *, jobject, jfieldID, jshort)
jlong(* GetStaticLongField)(JNIEnv *, jclass, jfieldID)
jbyte(* GetByteField)(JNIEnv *, jobject, jfieldID)
void(* ReleaseBooleanArrayElements)(JNIEnv *, jbooleanArray, jboolean *, jint)
jclass(* DefineClass)(JNIEnv *, const char *, jobject, const jbyte *, jsize)
jboolean(* ExceptionCheck)(JNIEnv *)
void(* SetCharArrayRegion)(JNIEnv *, jcharArray, jsize, jsize, const jchar *)
void(* SetBooleanField)(JNIEnv *, jobject, jfieldID, jboolean)
void(* ReleaseStringUTFChars)(JNIEnv *, jstring, const char *)
jfieldID(* FromReflectedField)(JNIEnv *, jobject)
void(* GetBooleanArrayRegion)(JNIEnv *, jbooleanArray, jsize, jsize, jboolean *)
void(* CallVoidMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
void(* SetBooleanArrayRegion)(JNIEnv *, jbooleanArray, jsize, jsize, const jboolean *)
jobject(* CallNonvirtualObjectMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jobject(* NewObject)(JNIEnv *, jclass, jmethodID,...)
jsize(* GetStringUTFLength)(JNIEnv *, jstring)
jbyte(* CallByteMethod)(JNIEnv *, jobject, jmethodID,...)
void(* SetDoubleField)(JNIEnv *, jobject, jfieldID, jdouble)
jfloat(* CallStaticFloatMethodV)(JNIEnv *, jclass, jmethodID, va_list)
void(* SetStaticCharField)(JNIEnv *, jclass, jfieldID, jchar)
jchar(* CallCharMethod)(JNIEnv *, jobject, jmethodID,...)
jobject(* GetStaticObjectField)(JNIEnv *, jclass, jfieldID)
jchar(* CallStaticCharMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jint(* CallIntMethod)(JNIEnv *, jobject, jmethodID,...)
jmethodID(* GetMethodID)(JNIEnv *, jclass, const char *, const char *)
jfloat(* CallNonvirtualFloatMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jboolean(* GetStaticBooleanField)(JNIEnv *, jclass, jfieldID)
void(* GetByteArrayRegion)(JNIEnv *, jbyteArray, jsize, jsize, jbyte *)
void(* CallVoidMethod)(JNIEnv *, jobject, jmethodID,...)
jdouble(* CallNonvirtualDoubleMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jdoubleArray(* NewDoubleArray)(JNIEnv *, jsize)
jbyte(* CallStaticByteMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jint(* GetStaticIntField)(JNIEnv *, jclass, jfieldID)
jfloat(* CallFloatMethod)(JNIEnv *, jobject, jmethodID,...)
jbyte(* CallStaticByteMethod)(JNIEnv *, jclass, jmethodID,...)
jobject(* CallObjectMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jboolean *(* GetBooleanArrayElements)(JNIEnv *, jbooleanArray, jboolean *)
jobject(* NewObjectA)(JNIEnv *, jclass, jmethodID, jvalue *)
void(* SetObjectField)(JNIEnv *, jobject, jfieldID, jobject)
jthrowable(* ExceptionOccurred)(JNIEnv *)
void(* SetStaticFloatField)(JNIEnv *, jclass, jfieldID, jfloat)
jlong(* CallLongMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jlong(* GetDirectBufferCapacity)(JNIEnv *, jobject)
jobject(* GetObjectArrayElement)(JNIEnv *, jobjectArray, jsize)
void(* SetIntField)(JNIEnv *, jobject, jfieldID, jint)
jint(* GetIntField)(JNIEnv *, jobject, jfieldID)
jfieldID(* GetFieldID)(JNIEnv *, jclass, const char *, const char *)
jfloat(* GetFloatField)(JNIEnv *, jobject, jfieldID)
jboolean(* CallNonvirtualBooleanMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
void *(* GetDirectBufferAddress)(JNIEnv *, jobject)
jint(* CallStaticIntMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jobject(* CallObjectMethod)(JNIEnv *, jobject, jmethodID,...)
jint(* MonitorExit)(JNIEnv *, jobject)
void(* SetObjectArrayElement)(JNIEnv *, jobjectArray, jsize, jobject)
jdouble *(* GetDoubleArrayElements)(JNIEnv *, jdoubleArray, jboolean *)
void(* CallNonvirtualVoidMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jobjectArray(* NewObjectArray)(JNIEnv *, jsize, jclass, jobject)
jfieldID(* GetStaticFieldID)(JNIEnv *, jclass, const char *, const char *)
jobject(* ToReflectedField)(JNIEnv *, jclass, jfieldID, jboolean)
jshort(* CallShortMethodV)(JNIEnv *, jobject, jmethodID, va_list)
jlong(* CallNonvirtualLongMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jchar(* GetCharField)(JNIEnv *, jobject, jfieldID)
jint(* CallNonvirtualIntMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jdouble(* GetDoubleField)(JNIEnv *, jobject, jfieldID)
void(* ReleaseDoubleArrayElements)(JNIEnv *, jdoubleArray, jdouble *, jint)
jint(* GetVersion)(JNIEnv *)
jfloat(* CallFloatMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jbyte(* CallByteMethodV)(JNIEnv *, jobject, jmethodID, va_list)
void(* CallStaticVoidMethod)(JNIEnv *, jclass, jmethodID,...)
void(* SetLongField)(JNIEnv *, jobject, jfieldID, jlong)
void(* ReleaseFloatArrayElements)(JNIEnv *, jfloatArray, jfloat *, jint)
jint *(* GetIntArrayElements)(JNIEnv *, jintArray, jboolean *)
jdouble(* CallStaticDoubleMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jbyte(* GetStaticByteField)(JNIEnv *, jclass, jfieldID)
jdouble(* CallNonvirtualDoubleMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jbyte(* CallByteMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jshort(* CallStaticShortMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jint(* UnregisterNatives)(JNIEnv *, jclass)
void(* GetLongArrayRegion)(JNIEnv *, jlongArray, jsize, jsize, jlong *)
jboolean(* CallStaticBooleanMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jstring(* NewStringUTF)(JNIEnv *, const char *)
void(* ReleaseShortArrayElements)(JNIEnv *, jshortArray, jshort *, jint)
void(* SetByteArrayRegion)(JNIEnv *, jbyteArray, jsize, jsize, const jbyte *)
void(* ReleaseLongArrayElements)(JNIEnv *, jlongArray, jlong *, jint)
jobject(* ToReflectedMethod)(JNIEnv *, jclass, jmethodID, jboolean)
void(* GetStringRegion)(JNIEnv *, jstring, jsize, jsize, jchar *)
jshort(* CallStaticShortMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jlong(* CallLongMethod)(JNIEnv *, jobject, jmethodID,...)
void(* SetStaticLongField)(JNIEnv *, jclass, jfieldID, jlong)
jdouble(* CallStaticDoubleMethod)(JNIEnv *, jclass, jmethodID,...)
jint(* CallIntMethodV)(JNIEnv *, jobject, jmethodID, va_list)
void(* SetLongArrayRegion)(JNIEnv *, jlongArray, jsize, jsize, const jlong *)
jshort(* CallShortMethod)(JNIEnv *, jobject, jmethodID,...)
void(* CallNonvirtualVoidMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jint(* EnsureLocalCapacity)(JNIEnv *, jint)
void(* GetStringUTFRegion)(JNIEnv *, jstring, jsize, jsize, char *)
void(* SetByteField)(JNIEnv *, jobject, jfieldID, jbyte)
jlongArray(* NewLongArray)(JNIEnv *, jsize)
jbyteArray(* NewByteArray)(JNIEnv *, jsize)
const char *(* GetStringUTFChars)(JNIEnv *, jstring, jboolean *)
jobject(* CallNonvirtualObjectMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jboolean(* GetBooleanField)(JNIEnv *, jobject, jfieldID)
jdouble(* CallDoubleMethodV)(JNIEnv *, jobject, jmethodID, va_list)
jshort(* GetShortField)(JNIEnv *, jobject, jfieldID)
jchar(* CallNonvirtualCharMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
void(* ExceptionDescribe)(JNIEnv *)
jshort(* CallStaticShortMethod)(JNIEnv *, jclass, jmethodID,...)
void(* ReleasePrimitiveArrayCritical)(JNIEnv *, jarray, void *, jint)
void(* SetFloatArrayRegion)(JNIEnv *, jfloatArray, jsize, jsize, const jfloat *)
jclass(* GetObjectClass)(JNIEnv *, jobject)
jfloat(* CallStaticFloatMethod)(JNIEnv *, jclass, jmethodID,...)
void(* CallVoidMethodV)(JNIEnv *, jobject, jmethodID, va_list)
void(* GetShortArrayRegion)(JNIEnv *, jshortArray, jsize, jsize, jshort *)
jfloatArray(* NewFloatArray)(JNIEnv *, jsize)
jshort(* CallNonvirtualShortMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jobjectRefType(* GetObjectRefType)(JNIEnv *, jobject)
jshort(* CallNonvirtualShortMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jobject(* NewDirectByteBuffer)(JNIEnv *, void *, jlong)
jfloat(* CallStaticFloatMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
void(* FatalError)(JNIEnv *, const char *)
jbyte *(* GetByteArrayElements)(JNIEnv *, jbyteArray, jboolean *)
const jchar *(* GetStringChars)(JNIEnv *, jstring, jboolean *)
void(* ExceptionClear)(JNIEnv *)
jfloat(* CallNonvirtualFloatMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jfloat(* GetStaticFloatField)(JNIEnv *, jclass, jfieldID)
void(* SetIntArrayRegion)(JNIEnv *, jintArray, jsize, jsize, const jint *)
jclass(* FindClass)(JNIEnv *, const char *)
void(* SetShortArrayRegion)(JNIEnv *, jshortArray, jsize, jsize, const jshort *)
jbyte(* CallStaticByteMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jmethodID(* FromReflectedMethod)(JNIEnv *, jobject)
void(* CallStaticVoidMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jint(* GetJavaVM)(JNIEnv *, JavaVM **)
jboolean(* CallBooleanMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
void(* SetFloatField)(JNIEnv *, jobject, jfieldID, jfloat)
jint(* MonitorEnter)(JNIEnv *, jobject)
jboolean(* CallBooleanMethodV)(JNIEnv *, jobject, jmethodID, va_list)
void(* SetStaticByteField)(JNIEnv *, jclass, jfieldID, jbyte)
jchar(* CallNonvirtualCharMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jdouble(* CallStaticDoubleMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jboolean(* IsAssignableFrom)(JNIEnv *, jclass, jclass)
jobject(* NewGlobalRef)(JNIEnv *, jobject)
jshort *(* GetShortArrayElements)(JNIEnv *, jshortArray, jboolean *)
jint(* Throw)(JNIEnv *, jthrowable)
jboolean(* CallNonvirtualBooleanMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jbyte(* CallNonvirtualByteMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jshort(* CallShortMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
void(* DeleteWeakGlobalRef)(JNIEnv *, jweak)
void(* GetDoubleArrayRegion)(JNIEnv *, jdoubleArray, jsize, jsize, jdouble *)
jint(* ThrowNew)(JNIEnv *, jclass, const char *)
jclass(* GetSuperclass)(JNIEnv *, jclass)
jlong(* CallNonvirtualLongMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jlong(* GetLongField)(JNIEnv *, jobject, jfieldID)
jlong(* CallStaticLongMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jint(* CallStaticIntMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jboolean(* CallStaticBooleanMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
void(* ReleaseCharArrayElements)(JNIEnv *, jcharArray, jchar *, jint)
void(* GetFloatArrayRegion)(JNIEnv *, jfloatArray, jsize, jsize, jfloat *)
jint(* CallIntMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jcharArray(* NewCharArray)(JNIEnv *, jsize)
jfloat(* CallFloatMethodV)(JNIEnv *, jobject, jmethodID, va_list)
jobject(* CallStaticObjectMethod)(JNIEnv *, jclass, jmethodID,...)
void *(* GetPrimitiveArrayCritical)(JNIEnv *, jarray, jboolean *)
jobject(* CallObjectMethodV)(JNIEnv *, jobject, jmethodID, va_list)
jboolean(* IsInstanceOf)(JNIEnv *, jobject, jclass)
jshort(* GetStaticShortField)(JNIEnv *, jclass, jfieldID)
jdouble(* CallNonvirtualDoubleMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jstring(* NewString)(JNIEnv *, const jchar *, jsize)
jdouble(* GetStaticDoubleField)(JNIEnv *, jclass, jfieldID)
jint(* CallNonvirtualIntMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
void(* SetStaticShortField)(JNIEnv *, jclass, jfieldID, jshort)
jchar(* CallCharMethodV)(JNIEnv *, jobject, jmethodID, va_list)
jobject(* CallStaticObjectMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jlong(* CallNonvirtualLongMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
void(* GetIntArrayRegion)(JNIEnv *, jintArray, jsize, jsize, jint *)
jboolean(* CallBooleanMethod)(JNIEnv *, jobject, jmethodID,...)
void(* CallStaticVoidMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jmethodID(* GetStaticMethodID)(JNIEnv *, jclass, const char *, const char *)
jobject(* CallStaticObjectMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jchar(* CallNonvirtualCharMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jchar(* CallStaticCharMethod)(JNIEnv *, jclass, jmethodID,...)
jboolean(* IsSameObject)(JNIEnv *, jobject, jobject)
jbooleanArray(* NewBooleanArray)(JNIEnv *, jsize)
jobject(* NewObjectV)(JNIEnv *, jclass, jmethodID, va_list)
void(* DeleteLocalRef)(JNIEnv *, jobject)
jshort(* CallNonvirtualShortMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jobject(* GetObjectField)(JNIEnv *, jobject, jfieldID)
jobject(* CallNonvirtualObjectMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
void(* DeleteGlobalRef)(JNIEnv *, jobject)
jlong(* CallLongMethodV)(JNIEnv *, jobject, jmethodID, va_list)
void(* SetDoubleArrayRegion)(JNIEnv *, jdoubleArray, jsize, jsize, const jdouble *)
jlong(* CallStaticLongMethod)(JNIEnv *, jclass, jmethodID,...)
jdouble(* CallDoubleMethod)(JNIEnv *, jobject, jmethodID,...)
void(* SetStaticBooleanField)(JNIEnv *, jclass, jfieldID, jboolean)
void(* SetStaticObjectField)(JNIEnv *, jclass, jfieldID, jobject)
jboolean(* CallNonvirtualBooleanMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jsize(* GetArrayLength)(JNIEnv *, jarray)
void(* ReleaseStringChars)(JNIEnv *, jstring, const jchar *)
jlong *(* GetLongArrayElements)(JNIEnv *, jlongArray, jboolean *)
jfloat(* CallNonvirtualFloatMethodV)(JNIEnv *, jobject, jclass, jmethodID, va_list)
jintArray(* NewIntArray)(JNIEnv *, jsize)
jobject(* NewLocalRef)(JNIEnv *, jobject)
void(* SetCharField)(JNIEnv *, jobject, jfieldID, jchar)
jint(* PushLocalFrame)(JNIEnv *, jint)
jsize(* GetStringLength)(JNIEnv *, jstring)
jchar(* GetStaticCharField)(JNIEnv *, jclass, jfieldID)
jobject(* AllocObject)(JNIEnv *, jclass)
jlong(* CallStaticLongMethodV)(JNIEnv *, jclass, jmethodID, va_list)
jint(* CallNonvirtualIntMethodA)(JNIEnv *, jobject, jclass, jmethodID, jvalue *)
jchar(* CallStaticCharMethodA)(JNIEnv *, jclass, jmethodID, jvalue *)
jint(* RegisterNatives)(JNIEnv *, jclass, const JNINativeMethod *, jint)
void(* ReleaseByteArrayElements)(JNIEnv *, jbyteArray, jbyte *, jint)
jfloat *(* GetFloatArrayElements)(JNIEnv *, jfloatArray, jboolean *)
jweak(* NewWeakGlobalRef)(JNIEnv *, jobject)
jshortArray(* NewShortArray)(JNIEnv *, jsize)
void(* CallNonvirtualVoidMethod)(JNIEnv *, jobject, jclass, jmethodID,...)
jchar *(* GetCharArrayElements)(JNIEnv *, jcharArray, jboolean *)
void(* GetCharArrayRegion)(JNIEnv *, jcharArray, jsize, jsize, jchar *)
void(* ReleaseIntArrayElements)(JNIEnv *, jintArray, jint *, jint)
void(* ReleaseStringCritical)(JNIEnv *, jstring, const jchar *)
jobject(* PopLocalFrame)(JNIEnv *, jobject)
jchar(* CallCharMethodA)(JNIEnv *, jobject, jmethodID, jvalue *)
jboolean ignoreUnrecognized
const char * optionString
const struct JNINativeInterface * functions
const struct JNIInvokeInterface * functions