jboolean=typedef
typedef.jboolean=unsigned char

jbyte=typedef
typedef.jbyte=signed char

jchar=typedef
typedef.jchar=unsigned short

jshort=typedef
typedef.jshort=short

jint=typedef
typedef.jint=int

jlong=typedef
typedef.jlong=long long

jfloat=typedef
typedef.jfloat=float

jdouble=typedef
typedef.jdouble=double

jsize=typedef
typedef.jsize=int

jobject=typedef
typedef.jobject=void *

jclass=typedef
typedef.jclass=void *

jstring=typedef
typedef.jstring=void *

jarray=typedef
typedef.jarray=void *

jobjectArray=typedef
typedef.jobjectArray=void *

jbooleanArray=typedef
typedef.jbooleanArray=void *

jbyteArray=typedef
typedef.jbyteArray=void *

jcharArray=typedef
typedef.jcharArray=void *

jshortArray=typedef
typedef.jshortArray=void *

jintArray=typedef
typedef.jintArray=void *

jlongArray=typedef
typedef.jlongArray=void *

jfloatArray=typedef
typedef.jfloatArray=void *

jdoubleArray=typedef
typedef.jdoubleArray=void *

jthrowable=typedef
typedef.jthrowable=void *

jweak=typedef
typedef.jweak=void *

jfieldID=typedef
typedef.jfieldID=void *

jmethodID=typedef
typedef.jmethodID=void *

JNIEnv=typedef
typedef.JNIEnv=void *

JavaVM=typedef
typedef.JavaVM=void *

jvalue=union
union.jvalue=z,b,c,s,i,j,f,d,l
union.jvalue.z=jboolean,0,0
union.jvalue.b=jbyte,0,0
union.jvalue.c=jchar,0,0
union.jvalue.s=jshort,0,0
union.jvalue.i=jint,0,0
union.jvalue.j=jlong,0,0
union.jvalue.f=jfloat,0,0
union.jvalue.d=jdouble,0,0
union.jvalue.l=jobject,0,0

jobjectRefType=enum
enum.jobjectRefType=JNIInvalidRefType,JNILocalRefType,JNIGlobalRefType,JNIWeakGlobalRefType
enum.jobjectRefType.JNIInvalidRefType=0x0
enum.jobjectRefType.JNILocalRefType=0x1
enum.jobjectRefType.JNIGlobalRefType=0x2
enum.jobjectRefType.JNIWeakGlobalRefType=0x3
enum.jobjectRefType.0x0=JNIInvalidRefType
enum.jobjectRefType.0x1=JNILocalRefType
enum.jobjectRefType.0x2=JNIGlobalRefType
enum.jobjectRefType.0x3=JNIWeakGlobalRefType

JNINativeMethod=struct
struct.JNINativeMethod=name,signature,fnPtr
struct.JNINativeMethod.name=const char *,0,0
struct.JNINativeMethod.signature=const char *,8,0
struct.JNINativeMethod.fnPtr=void *,16,0

JNIInvokeInterface=struct
struct.JNIInvokeInterface=reserved0,reserved1,reserved2,DestroyJavaVM,AttachCurrentThread,DetachCurrentThread,GetEnv,AttachCurrentThreadAsDaemon
struct.JNIInvokeInterface.reserved0=void *,0,0
struct.JNIInvokeInterface.reserved1=void *,8,0
struct.JNIInvokeInterface.reserved2=void *,16,0
struct.JNIInvokeInterface.DestroyJavaVM=void *,24,0
struct.JNIInvokeInterface.AttachCurrentThread=void *,32,0
struct.JNIInvokeInterface.DetachCurrentThread=void *,40,0
struct.JNIInvokeInterface.GetEnv=void *,48,0
struct.JNIInvokeInterface.AttachCurrentThreadAsDaemon=void *,56,0

JNINativeInterface=struct
struct.JNINativeInterface=reserved0,reserved1,reserved2,reserved3,GetVersion,DefineClass,FindClass,FromReflectedMethod,FromReflectedField,ToReflectedMethod,GetSuperclass,IsAssignableFrom,ToReflectedField,Throw,ThrowNew,ExceptionOccurred,ExceptionDescribe,ExceptionClear,FatalError,PushLocalFrame,PopLocalFrame,NewGlobalRef,DeleteGlobalRef,DeleteLocalRef,IsSameObject,NewLocalRef,EnsureLocalCapacity,AllocObject,NewObject,NewObjectV,NewObjectA,GetObjectClass,IsInstanceOf,GetMethodID,CallObjectMethod,CallObjectMethodV,CallObjectMethodA,CallBooleanMethod,CallBooleanMethodV,CallBooleanMethodA,CallByteMethod,CallByteMethodV,CallByteMethodA,CallCharMethod,CallCharMethodV,CallCharMethodA,CallShortMethod,CallShortMethodV,CallShortMethodA,CallIntMethod,CallIntMethodV,CallIntMethodA,CallLongMethod,CallLongMethodV,CallLongMethodA,CallFloatMethod,CallFloatMethodV,CallFloatMethodA,CallDoubleMethod,CallDoubleMethodV,CallDoubleMethodA,CallVoidMethod,CallVoidMethodV,CallVoidMethodA,CallNonvirtualObjectMethod,CallNonvirtualObjectMethodV,CallNonvirtualObjectMethodA,CallNonvirtualBooleanMethod,CallNonvirtualBooleanMethodV,CallNonvirtualBooleanMethodA,CallNonvirtualByteMethod,CallNonvirtualByteMethodV,CallNonvirtualByteMethodA,CallNonvirtualCharMethod,CallNonvirtualCharMethodV,CallNonvirtualCharMethodA,CallNonvirtualShortMethod,CallNonvirtualShortMethodV,CallNonvirtualShortMethodA,CallNonvirtualIntMethod,CallNonvirtualIntMethodV,CallNonvirtualIntMethodA,CallNonvirtualLongMethod,CallNonvirtualLongMethodV,CallNonvirtualLongMethodA,CallNonvirtualFloatMethod,CallNonvirtualFloatMethodV,CallNonvirtualFloatMethodA,CallNonvirtualDoubleMethod,CallNonvirtualDoubleMethodV,CallNonvirtualDoubleMethodA,CallNonvirtualVoidMethod,CallNonvirtualVoidMethodV,CallNonvirtualVoidMethodA,GetFieldID,GetObjectField,GetBooleanField,GetByteField,GetCharField,GetShortField,GetIntField,GetLongField,GetFloatField,GetDoubleField,SetObjectField,SetBooleanField,SetByteField,SetCharField,SetShortField,SetIntField,SetLongField,SetFloatField,SetDoubleField,GetStaticMethodID,CallStaticObjectMethod,CallStaticObjectMethodV,CallStaticObjectMethodA,CallStaticBooleanMethod,CallStaticBooleanMethodV,CallStaticBooleanMethodA,CallStaticByteMethod,CallStaticByteMethodV,CallStaticByteMethodA,CallStaticCharMethod,CallStaticCharMethodV,CallStaticCharMethodA,CallStaticShortMethod,CallStaticShortMethodV,CallStaticShortMethodA,CallStaticIntMethod,CallStaticIntMethodV,CallStaticIntMethodA,CallStaticLongMethod,CallStaticLongMethodV,CallStaticLongMethodA,CallStaticFloatMethod,CallStaticFloatMethodV,CallStaticFloatMethodA,CallStaticDoubleMethod,CallStaticDoubleMethodV,CallStaticDoubleMethodA,CallStaticVoidMethod,CallStaticVoidMethodV,CallStaticVoidMethodA,GetStaticFieldID,GetStaticObjectField,GetStaticBooleanField,GetStaticByteField,GetStaticCharField,GetStaticShortField,GetStaticIntField,GetStaticLongField,GetStaticFloatField,GetStaticDoubleField,SetStaticObjectField,SetStaticBooleanField,SetStaticByteField,SetStaticCharField,SetStaticShortField,SetStaticIntField,SetStaticLongField,SetStaticFloatField,SetStaticDoubleField,NewString,GetStringLength,GetStringChars,ReleaseStringChars,NewStringUTF,GetStringUTFLength,GetStringUTFChars,ReleaseStringUTFChars,GetArrayLength,NewObjectArray,GetObjectArrayElement,SetObjectArrayElement,NewBooleanArray,NewByteArray,NewCharArray,NewShortArray,NewIntArray,NewLongArray,NewFloatArray,NewDoubleArray,GetBooleanArrayElements,GetByteArrayElements,GetCharArrayElements,GetShortArrayElements,GetIntArrayElements,GetLongArrayElements,GetFloatArrayElements,GetDoubleArrayElements,ReleaseBooleanArrayElements,ReleaseByteArrayElements,ReleaseCharArrayElements,ReleaseShortArrayElements,ReleaseIntArrayElements,ReleaseLongArrayElements,ReleaseFloatArrayElements,ReleaseDoubleArrayElements,GetBooleanArrayRegion,GetByteArrayRegion,GetCharArrayRegion,GetShortArrayRegion,GetIntArrayRegion,GetLongArrayRegion,GetFloatArrayRegion,GetDoubleArrayRegion,SetBooleanArrayRegion,SetByteArrayRegion,SetCharArrayRegion,SetShortArrayRegion,SetIntArrayRegion,SetLongArrayRegion,SetFloatArrayRegion,SetDoubleArrayRegion,RegisterNatives,UnregisterNatives,MonitorEnter,MonitorExit,GetJavaVM,GetStringRegion,GetStringUTFRegion,GetPrimitiveArrayCritical,ReleasePrimitiveArrayCritical,GetStringCritical,ReleaseStringCritical,NewWeakGlobalRef,DeleteWeakGlobalRef,ExceptionCheck,NewDirectByteBuffer,GetDirectBufferAddress,GetDirectBufferCapacity,GetObjectRefType
struct.JNINativeInterface.reserved0=void *,0,0
struct.JNINativeInterface.reserved1=void *,8,0
struct.JNINativeInterface.reserved2=void *,16,0
struct.JNINativeInterface.reserved3=void *,24,0
struct.JNINativeInterface.GetVersion=void *,32,0
struct.JNINativeInterface.DefineClass=void *,40,0
struct.JNINativeInterface.FindClass=void *,48,0
struct.JNINativeInterface.FromReflectedMethod=void *,56,0
struct.JNINativeInterface.FromReflectedField=void *,64,0
struct.JNINativeInterface.ToReflectedMethod=void *,72,0
struct.JNINativeInterface.GetSuperclass=void *,80,0
struct.JNINativeInterface.IsAssignableFrom=void *,88,0
struct.JNINativeInterface.ToReflectedField=void *,96,0
struct.JNINativeInterface.Throw=void *,104,0
struct.JNINativeInterface.ThrowNew=void *,112,0
struct.JNINativeInterface.ExceptionOccurred=void *,120,0
struct.JNINativeInterface.ExceptionDescribe=void *,128,0
struct.JNINativeInterface.ExceptionClear=void *,136,0
struct.JNINativeInterface.FatalError=void *,144,0
struct.JNINativeInterface.PushLocalFrame=void *,152,0
struct.JNINativeInterface.PopLocalFrame=void *,160,0
struct.JNINativeInterface.NewGlobalRef=void *,168,0
struct.JNINativeInterface.DeleteGlobalRef=void *,176,0
struct.JNINativeInterface.DeleteLocalRef=void *,184,0
struct.JNINativeInterface.IsSameObject=void *,192,0
struct.JNINativeInterface.NewLocalRef=void *,200,0
struct.JNINativeInterface.EnsureLocalCapacity=void *,208,0
struct.JNINativeInterface.AllocObject=void *,216,0
struct.JNINativeInterface.NewObject=void *,224,0
struct.JNINativeInterface.NewObjectV=void *,232,0
struct.JNINativeInterface.NewObjectA=void *,240,0
struct.JNINativeInterface.GetObjectClass=void *,248,0
struct.JNINativeInterface.IsInstanceOf=void *,256,0
struct.JNINativeInterface.GetMethodID=void *,264,0
struct.JNINativeInterface.CallObjectMethod=void *,272,0
struct.JNINativeInterface.CallObjectMethodV=void *,280,0
struct.JNINativeInterface.CallObjectMethodA=void *,288,0
struct.JNINativeInterface.CallBooleanMethod=void *,296,0
struct.JNINativeInterface.CallBooleanMethodV=void *,304,0
struct.JNINativeInterface.CallBooleanMethodA=void *,312,0
struct.JNINativeInterface.CallByteMethod=void *,320,0
struct.JNINativeInterface.CallByteMethodV=void *,328,0
struct.JNINativeInterface.CallByteMethodA=void *,336,0
struct.JNINativeInterface.CallCharMethod=void *,344,0
struct.JNINativeInterface.CallCharMethodV=void *,352,0
struct.JNINativeInterface.CallCharMethodA=void *,360,0
struct.JNINativeInterface.CallShortMethod=void *,368,0
struct.JNINativeInterface.CallShortMethodV=void *,376,0
struct.JNINativeInterface.CallShortMethodA=void *,384,0
struct.JNINativeInterface.CallIntMethod=void *,392,0
struct.JNINativeInterface.CallIntMethodV=void *,400,0
struct.JNINativeInterface.CallIntMethodA=void *,408,0
struct.JNINativeInterface.CallLongMethod=void *,416,0
struct.JNINativeInterface.CallLongMethodV=void *,424,0
struct.JNINativeInterface.CallLongMethodA=void *,432,0
struct.JNINativeInterface.CallFloatMethod=void *,440,0
struct.JNINativeInterface.CallFloatMethodV=void *,448,0
struct.JNINativeInterface.CallFloatMethodA=void *,456,0
struct.JNINativeInterface.CallDoubleMethod=void *,464,0
struct.JNINativeInterface.CallDoubleMethodV=void *,472,0
struct.JNINativeInterface.CallDoubleMethodA=void *,480,0
struct.JNINativeInterface.CallVoidMethod=void *,488,0
struct.JNINativeInterface.CallVoidMethodV=void *,496,0
struct.JNINativeInterface.CallVoidMethodA=void *,504,0
struct.JNINativeInterface.CallNonvirtualObjectMethod=void *,512,0
struct.JNINativeInterface.CallNonvirtualObjectMethodV=void *,520,0
struct.JNINativeInterface.CallNonvirtualObjectMethodA=void *,528,0
struct.JNINativeInterface.CallNonvirtualBooleanMethod=void *,536,0
struct.JNINativeInterface.CallNonvirtualBooleanMethodV=void *,544,0
struct.JNINativeInterface.CallNonvirtualBooleanMethodA=void *,552,0
struct.JNINativeInterface.CallNonvirtualByteMethod=void *,560,0
struct.JNINativeInterface.CallNonvirtualByteMethodV=void *,568,0
struct.JNINativeInterface.CallNonvirtualByteMethodA=void *,576,0
struct.JNINativeInterface.CallNonvirtualCharMethod=void *,584,0
struct.JNINativeInterface.CallNonvirtualCharMethodV=void *,592,0
struct.JNINativeInterface.CallNonvirtualCharMethodA=void *,600,0
struct.JNINativeInterface.CallNonvirtualShortMethod=void *,608,0
struct.JNINativeInterface.CallNonvirtualShortMethodV=void *,616,0
struct.JNINativeInterface.CallNonvirtualShortMethodA=void *,624,0
struct.JNINativeInterface.CallNonvirtualIntMethod=void *,632,0
struct.JNINativeInterface.CallNonvirtualIntMethodV=void *,640,0
struct.JNINativeInterface.CallNonvirtualIntMethodA=void *,648,0
struct.JNINativeInterface.CallNonvirtualLongMethod=void *,656,0
struct.JNINativeInterface.CallNonvirtualLongMethodV=void *,664,0
struct.JNINativeInterface.CallNonvirtualLongMethodA=void *,672,0
struct.JNINativeInterface.CallNonvirtualFloatMethod=void *,680,0
struct.JNINativeInterface.CallNonvirtualFloatMethodV=void *,688,0
struct.JNINativeInterface.CallNonvirtualFloatMethodA=void *,696,0
struct.JNINativeInterface.CallNonvirtualDoubleMethod=void *,704,0
struct.JNINativeInterface.CallNonvirtualDoubleMethodV=void *,712,0
struct.JNINativeInterface.CallNonvirtualDoubleMethodA=void *,720,0
struct.JNINativeInterface.CallNonvirtualVoidMethod=void *,728,0
struct.JNINativeInterface.CallNonvirtualVoidMethodV=void *,736,0
struct.JNINativeInterface.CallNonvirtualVoidMethodA=void *,744,0
struct.JNINativeInterface.GetFieldID=void *,752,0
struct.JNINativeInterface.GetObjectField=void *,760,0
struct.JNINativeInterface.GetBooleanField=void *,768,0
struct.JNINativeInterface.GetByteField=void *,776,0
struct.JNINativeInterface.GetCharField=void *,784,0
struct.JNINativeInterface.GetShortField=void *,792,0
struct.JNINativeInterface.GetIntField=void *,800,0
struct.JNINativeInterface.GetLongField=void *,808,0
struct.JNINativeInterface.GetFloatField=void *,816,0
struct.JNINativeInterface.GetDoubleField=void *,824,0
struct.JNINativeInterface.SetObjectField=void *,832,0
struct.JNINativeInterface.SetBooleanField=void *,840,0
struct.JNINativeInterface.SetByteField=void *,848,0
struct.JNINativeInterface.SetCharField=void *,856,0
struct.JNINativeInterface.SetShortField=void *,864,0
struct.JNINativeInterface.SetIntField=void *,872,0
struct.JNINativeInterface.SetLongField=void *,880,0
struct.JNINativeInterface.SetFloatField=void *,888,0
struct.JNINativeInterface.SetDoubleField=void *,896,0
struct.JNINativeInterface.GetStaticMethodID=void *,904,0
struct.JNINativeInterface.CallStaticObjectMethod=void *,912,0
struct.JNINativeInterface.CallStaticObjectMethodV=void *,920,0
struct.JNINativeInterface.CallStaticObjectMethodA=void *,928,0
struct.JNINativeInterface.CallStaticBooleanMethod=void *,936,0
struct.JNINativeInterface.CallStaticBooleanMethodV=void *,944,0
struct.JNINativeInterface.CallStaticBooleanMethodA=void *,952,0
struct.JNINativeInterface.CallStaticByteMethod=void *,960,0
struct.JNINativeInterface.CallStaticByteMethodV=void *,968,0
struct.JNINativeInterface.CallStaticByteMethodA=void *,976,0
struct.JNINativeInterface.CallStaticCharMethod=void *,984,0
struct.JNINativeInterface.CallStaticCharMethodV=void *,992,0
struct.JNINativeInterface.CallStaticCharMethodA=void *,1000,0
struct.JNINativeInterface.CallStaticShortMethod=void *,1008,0
struct.JNINativeInterface.CallStaticShortMethodV=void *,1016,0
struct.JNINativeInterface.CallStaticShortMethodA=void *,1024,0
struct.JNINativeInterface.CallStaticIntMethod=void *,1032,0
struct.JNINativeInterface.CallStaticIntMethodV=void *,1040,0
struct.JNINativeInterface.CallStaticIntMethodA=void *,1048,0
struct.JNINativeInterface.CallStaticLongMethod=void *,1056,0
struct.JNINativeInterface.CallStaticLongMethodV=void *,1064,0
struct.JNINativeInterface.CallStaticLongMethodA=void *,1072,0
struct.JNINativeInterface.CallStaticFloatMethod=void *,1080,0
struct.JNINativeInterface.CallStaticFloatMethodV=void *,1088,0
struct.JNINativeInterface.CallStaticFloatMethodA=void *,1096,0
struct.JNINativeInterface.CallStaticDoubleMethod=void *,1104,0
struct.JNINativeInterface.CallStaticDoubleMethodV=void *,1112,0
struct.JNINativeInterface.CallStaticDoubleMethodA=void *,1120,0
struct.JNINativeInterface.CallStaticVoidMethod=void *,1128,0
struct.JNINativeInterface.CallStaticVoidMethodV=void *,1136,0
struct.JNINativeInterface.CallStaticVoidMethodA=void *,1144,0
struct.JNINativeInterface.GetStaticFieldID=void *,1152,0
struct.JNINativeInterface.GetStaticObjectField=void *,1160,0
struct.JNINativeInterface.GetStaticBooleanField=void *,1168,0
struct.JNINativeInterface.GetStaticByteField=void *,1176,0
struct.JNINativeInterface.GetStaticCharField=void *,1184,0
struct.JNINativeInterface.GetStaticShortField=void *,1192,0
struct.JNINativeInterface.GetStaticIntField=void *,1200,0
struct.JNINativeInterface.GetStaticLongField=void *,1208,0
struct.JNINativeInterface.GetStaticFloatField=void *,1216,0
struct.JNINativeInterface.GetStaticDoubleField=void *,1224,0
struct.JNINativeInterface.SetStaticObjectField=void *,1232,0
struct.JNINativeInterface.SetStaticBooleanField=void *,1240,0
struct.JNINativeInterface.SetStaticByteField=void *,1248,0
struct.JNINativeInterface.SetStaticCharField=void *,1256,0
struct.JNINativeInterface.SetStaticShortField=void *,1264,0
struct.JNINativeInterface.SetStaticIntField=void *,1272,0
struct.JNINativeInterface.SetStaticLongField=void *,1280,0
struct.JNINativeInterface.SetStaticFloatField=void *,1288,0
struct.JNINativeInterface.SetStaticDoubleField=void *,1296,0
struct.JNINativeInterface.NewString=void *,1304,0
struct.JNINativeInterface.GetStringLength=void *,1312,0
struct.JNINativeInterface.GetStringChars=void *,1320,0
struct.JNINativeInterface.ReleaseStringChars=void *,1328,0
struct.JNINativeInterface.NewStringUTF=void *,1336,0
struct.JNINativeInterface.GetStringUTFLength=void *,1344,0
struct.JNINativeInterface.GetStringUTFChars=void *,1352,0
struct.JNINativeInterface.ReleaseStringUTFChars=void *,1360,0
struct.JNINativeInterface.GetArrayLength=void *,1368,0
struct.JNINativeInterface.NewObjectArray=void *,1376,0
struct.JNINativeInterface.GetObjectArrayElement=void *,1384,0
struct.JNINativeInterface.SetObjectArrayElement=void *,1392,0
struct.JNINativeInterface.NewBooleanArray=void *,1400,0
struct.JNINativeInterface.NewByteArray=void *,1408,0
struct.JNINativeInterface.NewCharArray=void *,1416,0
struct.JNINativeInterface.NewShortArray=void *,1424,0
struct.JNINativeInterface.NewIntArray=void *,1432,0
struct.JNINativeInterface.NewLongArray=void *,1440,0
struct.JNINativeInterface.NewFloatArray=void *,1448,0
struct.JNINativeInterface.NewDoubleArray=void *,1456,0
struct.JNINativeInterface.GetBooleanArrayElements=void *,1464,0
struct.JNINativeInterface.GetByteArrayElements=void *,1472,0
struct.JNINativeInterface.GetCharArrayElements=void *,1480,0
struct.JNINativeInterface.GetShortArrayElements=void *,1488,0
struct.JNINativeInterface.GetIntArrayElements=void *,1496,0
struct.JNINativeInterface.GetLongArrayElements=void *,1504,0
struct.JNINativeInterface.GetFloatArrayElements=void *,1512,0
struct.JNINativeInterface.GetDoubleArrayElements=void *,1520,0
struct.JNINativeInterface.ReleaseBooleanArrayElements=void *,1528,0
struct.JNINativeInterface.ReleaseByteArrayElements=void *,1536,0
struct.JNINativeInterface.ReleaseCharArrayElements=void *,1544,0
struct.JNINativeInterface.ReleaseShortArrayElements=void *,1552,0
struct.JNINativeInterface.ReleaseIntArrayElements=void *,1560,0
struct.JNINativeInterface.ReleaseLongArrayElements=void *,1568,0
struct.JNINativeInterface.ReleaseFloatArrayElements=void *,1576,0
struct.JNINativeInterface.ReleaseDoubleArrayElements=void *,1584,0
struct.JNINativeInterface.GetBooleanArrayRegion=void *,1592,0
struct.JNINativeInterface.GetByteArrayRegion=void *,1600,0
struct.JNINativeInterface.GetCharArrayRegion=void *,1608,0
struct.JNINativeInterface.GetShortArrayRegion=void *,1616,0
struct.JNINativeInterface.GetIntArrayRegion=void *,1624,0
struct.JNINativeInterface.GetLongArrayRegion=void *,1632,0
struct.JNINativeInterface.GetFloatArrayRegion=void *,1640,0
struct.JNINativeInterface.GetDoubleArrayRegion=void *,1648,0
struct.JNINativeInterface.SetBooleanArrayRegion=void *,1656,0
struct.JNINativeInterface.SetByteArrayRegion=void *,1664,0
struct.JNINativeInterface.SetCharArrayRegion=void *,1672,0
struct.JNINativeInterface.SetShortArrayRegion=void *,1680,0
struct.JNINativeInterface.SetIntArrayRegion=void *,1688,0
struct.JNINativeInterface.SetLongArrayRegion=void *,1696,0
struct.JNINativeInterface.SetFloatArrayRegion=void *,1704,0
struct.JNINativeInterface.SetDoubleArrayRegion=void *,1712,0
struct.JNINativeInterface.RegisterNatives=void *,1720,0
struct.JNINativeInterface.UnregisterNatives=void *,1728,0
struct.JNINativeInterface.MonitorEnter=void *,1736,0
struct.JNINativeInterface.MonitorExit=void *,1744,0
struct.JNINativeInterface.GetJavaVM=void *,1752,0
struct.JNINativeInterface.GetStringRegion=void *,1760,0
struct.JNINativeInterface.GetStringUTFRegion=void *,1768,0
struct.JNINativeInterface.GetPrimitiveArrayCritical=void *,1776,0
struct.JNINativeInterface.ReleasePrimitiveArrayCritical=void *,1784,0
struct.JNINativeInterface.GetStringCritical=void *,1792,0
struct.JNINativeInterface.ReleaseStringCritical=void *,1800,0
struct.JNINativeInterface.NewWeakGlobalRef=void *,1808,0
struct.JNINativeInterface.DeleteWeakGlobalRef=void *,1816,0
struct.JNINativeInterface.ExceptionCheck=void *,1824,0
struct.JNINativeInterface.NewDirectByteBuffer=void *,1832,0
struct.JNINativeInterface.GetDirectBufferAddress=void *,1840,0
struct.JNINativeInterface.GetDirectBufferCapacity=void *,1848,0
struct.JNINativeInterface.GetObjectRefType=void *,1856,0

jni_native=func
func.jni_native.args=2
func.jni_native.arg.0=JNIEnv *,env
func.jni_native.arg.1=jobject,thiz
func.jni_native.ret=void *

JNI_OnLoad=func
func.JNI_OnLoad.args=2
func.JNI_OnLoad.arg.0=JavaVM *,vm
func.JNI_OnLoad.arg.1=void *,reserved
func.JNI_OnLoad.ret=jint

JNI_OnUnload=func
func.JNI_OnUnload.args=2
func.JNI_OnUnload.arg.0=JavaVM *,vm
func.JNI_OnUnload.arg.1=void *,reserved
func.JNI_OnUnload.ret=void
