⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jni_funcs.h

📁 java virtual machince kaffe
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * jni_funcs.h * Java Native Interface - Handles JNI function declarations. * * Copyright (c) 2004 *      The Kaffe.org's developers. See ChangeLog for details. * * See the file "license.terms" for information on usage and redistribution  * of this file.  */#ifndef KAFFE_JNI_FUNCTIONS_H#define KAFFE_JNI_FUNCTIONS_H/* ====== Invokation API ============================================================= */jint KaffeJNI_DestroyJavaVM(JavaVM* vm);/* ====== Helpers =================================================================== */jmethodID KaffeJNI_FromReflectedMethod (JNIEnv *, jobject);jfieldID  KaffeJNI_FromReflectedField (JNIEnv *, jobject);jobject   KaffeJNI_ToReflectedMethod (JNIEnv *, jclass, jmethodID, jboolean);jobject   KaffeJNI_ToReflectedField (JNIEnv *, jclass, jfieldID, jboolean);jobject   KaffeJNI_NewDirectByteBuffer(JNIEnv *, void *, jlong);void *    KaffeJNI_GetDirectBufferAddress(JNIEnv *, jobject);jlong     KaffeJNI_GetDirectBufferCapacity(JNIEnv *, jobject);void NONRETURNING          KaffeJNI_FatalError(JNIEnv* env, const char* mess);/* ====== String handling =========================================================== */void    KaffeJNI_ReleaseStringChars(JNIEnv* env, jstring data, const jchar* chars);jstring KaffeJNI_NewString(JNIEnv* env, const jchar* data, jsize len);jsize   KaffeJNI_GetStringLength(JNIEnv* env, jstring data);const jchar*        KaffeJNI_GetStringChars(JNIEnv* env, jstring data, jboolean* copy);jstring KaffeJNI_NewStringUTF(JNIEnv* env, const char* data);jsize   KaffeJNI_GetStringUTFLength(JNIEnv* env, jstring data);const char*        KaffeJNI_GetStringUTFChars(JNIEnv* env, jstring data, jboolean* copy);void    KaffeJNI_ReleaseStringUTFChars(JNIEnv* env, jstring data, const char* chars);void    KaffeJNI_GetStringRegion(JNIEnv *env, jstring data, jsize start, jsize len, jchar *buf);void    KaffeJNI_GetStringUTFRegion(JNIEnv *env, jstring data, jsize start, jsize len, char *buf);/* ====== Functions handling arrays ================================================= */jobject KaffeJNI_GetObjectArrayElement(JNIEnv* env, jobjectArray arr, jsize elem);void    KaffeJNI_SetObjectArrayElement(JNIEnv* env, jobjectArray arr, jsize elem, jobject val);jobjectArray        KaffeJNI_NewObjectArray(JNIEnv* env, jsize len, jclass cls, jobject init);jbooleanArray        KaffeJNI_NewBooleanArray(JNIEnv* env, jsize len);jbyteArray        KaffeJNI_NewByteArray(JNIEnv* env, jsize len);jcharArray        KaffeJNI_NewCharArray(JNIEnv* env, jsize len);jshortArray        KaffeJNI_NewShortArray(JNIEnv* env, jsize len);jintArray        KaffeJNI_NewIntArray(JNIEnv* env, jsize len);jlongArray        KaffeJNI_NewLongArray(JNIEnv* env, jsize len);jfloatArray        KaffeJNI_NewFloatArray(JNIEnv* env, jsize len);jdoubleArray        KaffeJNI_NewDoubleArray(JNIEnv* env, jsize len);jboolean* KaffeJNI_GetBooleanArrayElements(JNIEnv* env, jbooleanArray arr, jboolean* iscopy);jbyte*    KaffeJNI_GetByteArrayElements(JNIEnv* env, jbyteArray arr, jboolean* iscopy);void*     KaffeJNI_GetPrimitiveArrayCritical(JNIEnv* env, jarray arr, jboolean* iscopy);jchar*    KaffeJNI_GetCharArrayElements(JNIEnv* env, jcharArray arr, jboolean* iscopy);jshort*   KaffeJNI_GetShortArrayElements(JNIEnv* env, jshortArray arr, jboolean* iscopy);jint*     KaffeJNI_GetIntArrayElements(JNIEnv* env, jintArray arr, jboolean* iscopy);jlong*    KaffeJNI_GetLongArrayElements(JNIEnv* env, jlongArray arr, jboolean* iscopy);jfloat*   KaffeJNI_GetFloatArrayElements(JNIEnv* env, jfloatArray arr, jboolean* iscopy);jdouble*  KaffeJNI_GetDoubleArrayElements(JNIEnv* env, jdoubleArray arr, jboolean* iscopy);void      KaffeJNI_ReleaseBooleanArrayElements(JNIEnv* env, jbooleanArray arr, jboolean* elems, jint mode);void      KaffeJNI_ReleaseByteArrayElements(JNIEnv* env, jbyteArray arr, jbyte* elems, jint mode);void      KaffeJNI_ReleasePrimitiveArrayCritical(JNIEnv* env, jbyteArray arr, void* elems, jint mode);void      KaffeJNI_ReleaseCharArrayElements(JNIEnv* env, jcharArray arr, jchar* elems, jint mode);void      KaffeJNI_ReleaseShortArrayElements(JNIEnv* env, jshortArray arr, jshort* elems, jint mode);void      KaffeJNI_ReleaseIntArrayElements(JNIEnv* env, jintArray arr, jint* elems, jint mode);void      KaffeJNI_ReleaseLongArrayElements(JNIEnv* env, jlongArray arr, jlong* elems, jint mode);void      KaffeJNI_ReleaseFloatArrayElements(JNIEnv* env, jfloatArray arr, jfloat* elems, jint mode);void      KaffeJNI_ReleaseDoubleArrayElements(JNIEnv* env, jdoubleArray arr, jdouble* elems, jint mode);void      KaffeJNI_GetBooleanArrayRegion(JNIEnv* env, jbooleanArray arr, jsize start, jsize len, jboolean* data);void      KaffeJNI_GetByteArrayRegion(JNIEnv* env, jbyteArray arr, jsize start, jsize len, jbyte* data);void      KaffeJNI_GetCharArrayRegion(JNIEnv* env, jcharArray arr, jsize start, jsize len, jchar* data);void      KaffeJNI_GetShortArrayRegion(JNIEnv* env, jshortArray arr, jsize start, jsize len, jshort* data);void      KaffeJNI_GetIntArrayRegion(JNIEnv* env, jintArray arr, jsize start, jsize len, jint* data);void      KaffeJNI_GetLongArrayRegion(JNIEnv* env, jlongArray arr, jsize start, jsize len, jlong* data);void      KaffeJNI_GetFloatArrayRegion(JNIEnv* env, jfloatArray arr, jsize start, jsize len, jfloat* data);void      KaffeJNI_GetDoubleArrayRegion(JNIEnv* env, jdoubleArray arr, jsize start, jsize len, jdouble* data);void      KaffeJNI_SetBooleanArrayRegion(JNIEnv* env, jbooleanArray arr, jsize start, jsize len, jboolean* data);void      KaffeJNI_SetByteArrayRegion(JNIEnv* env, jbyteArray arr, jsize start, jsize len, jbyte* data);void      KaffeJNI_SetCharArrayRegion(JNIEnv* env, jcharArray arr, jsize start, jsize len, jchar* data);void      KaffeJNI_SetShortArrayRegion(JNIEnv* env, jshortArray arr, jsize start, jsize len, jshort* data);void      KaffeJNI_SetIntArrayRegion(JNIEnv* env, jintArray arr, jsize start, jsize len, jint* data);void      KaffeJNI_SetLongArrayRegion(JNIEnv* env, jlongArray arr, jsize start, jsize len, jlong* data);void      KaffeJNI_SetFloatArrayRegion(JNIEnv* env, jfloatArray arr, jsize start, jsize len, jfloat* data);void      KaffeJNI_SetDoubleArrayRegion(JNIEnv* env, jdoubleArray arr, jsize start, jsize len, jdouble* data);/* ====== Functions to get fields =================================================== */jobject   KaffeJNI_GetObjectField(JNIEnv* env, jobject obj, jfieldID fld);jboolean  KaffeJNI_GetBooleanField(JNIEnv* env, jobject obj, jfieldID fld);jbyte     KaffeJNI_GetByteField(JNIEnv* env, jobject obj, jfieldID fld);jchar     KaffeJNI_GetCharField(JNIEnv* env, jobject obj, jfieldID fld);jshort    KaffeJNI_GetShortField(JNIEnv* env, jobject obj, jfieldID fld);jint      KaffeJNI_GetIntField(JNIEnv* env, jobject obj, jfieldID fld);jlong     KaffeJNI_GetLongField(JNIEnv* env, jobject obj, jfieldID fld);jfloat    KaffeJNI_GetFloatField(JNIEnv* env, jobject obj, jfieldID fld);jdouble   KaffeJNI_GetDoubleField(JNIEnv* env, jobject obj, jfieldID fld);/* ====== Functions to set fields =================================================== */void      KaffeJNI_SetObjectField(JNIEnv* env, jobject obj, jfieldID fld, jobject val);void      KaffeJNI_SetBooleanField(JNIEnv* env, jobject obj, jfieldID fld, jboolean val);void      KaffeJNI_SetByteField(JNIEnv* env, jobject obj, jfieldID fld, jbyte val);void      KaffeJNI_SetCharField(JNIEnv* env, jobject obj, jfieldID fld, jchar val);void      KaffeJNI_SetShortField(JNIEnv* env, jobject obj, jfieldID fld, jshort val);void      KaffeJNI_SetIntField(JNIEnv* env, jobject obj, jfieldID fld, jint val);void      KaffeJNI_SetLongField(JNIEnv* env, jobject obj, jfieldID fld, jlong val);void      KaffeJNI_SetFloatField(JNIEnv* env, jobject obj, jfieldID fld, jfloat val);void      KaffeJNI_SetDoubleField(JNIEnv* env, jobject obj, jfieldID fld, jdouble val);/* ====== Functions to get static fields ============================================ */jobject   KaffeJNI_GetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fld);jboolean  KaffeJNI_GetStaticBooleanField(JNIEnv* env, jclass cls, jfieldID fld);jbyte     KaffeJNI_GetStaticByteField(JNIEnv* env, jclass cls, jfieldID fld);jchar     KaffeJNI_GetStaticCharField(JNIEnv* env, jclass cls, jfieldID fld);jshort    KaffeJNI_GetStaticShortField(JNIEnv* env, jclass cls, jfieldID fld);jint      KaffeJNI_GetStaticIntField(JNIEnv* env, jclass cls, jfieldID fld);jlong     KaffeJNI_GetStaticLongField(JNIEnv* env, jclass cls, jfieldID fld);jfloat    KaffeJNI_GetStaticFloatField(JNIEnv* env, jclass cls, jfieldID fld);jdouble   KaffeJNI_GetStaticDoubleField(JNIEnv* env, jclass cls, jfieldID fld);/* ====== Functions to set static fields ============================================ */void     KaffeJNI_SetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fld, jobject val);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -