diff options
Diffstat (limited to 'libjava/jni.cc')
-rw-r--r-- | libjava/jni.cc | 308 |
1 files changed, 308 insertions, 0 deletions
diff --git a/libjava/jni.cc b/libjava/jni.cc new file mode 100644 index 0000000..e227c03 --- /dev/null +++ b/libjava/jni.cc @@ -0,0 +1,308 @@ +// jni.cc - JNI implementation, including the jump table. + +/* Copyright (C) 1998, 1999 Cygnus Solutions + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#include <config.h> + +#include <stddef.h> + +#include <jni.h> +#include <java-field.h> + +static jclass +_Jv_JNI_GetSuperclass (JNIEnv *, jclass clazz) +{ + return clazz->getSuperclass (); +} + +static jboolean +IsAssignableFrom(JNIEnv *, jclass clazz1, jclass clazz2) +{ + return clazz1->isAssignableFrom (clazz2); +} + +static jobject +_Jv_JNI_GetObjectField (JNIEnv *, jobject obj, jfieldID field) +{ + return _Jv_GetObjectField (obj, field); +} + +static jbyte +_Jv_JNI_GetByteField (JNIEnv *, jobject obj, jfieldID field) +{ + return _Jv_GetByteField (obj, field); +} + +static jshort +_Jv_JNI_GetShortField (JNIEnv *, jobject obj, jfieldID field) +{ + return _Jv_GetShortField (obj, field); +} + +static jint +_Jv_JNI_GetIntField (JNIEnv *, jobject obj, jfieldID field) +{ + return _Jv_GetIntField (obj, field); +} + +static jlong +_Jv_JNI_GetLongField (JNIEnv *, jobject obj, jfieldID field) +{ + return _Jv_GetLongField (obj, field); +} + +static jsize +_Jv_JNI_GetStringLength (JNIEnv *, jstring string) +{ + return string->length(); +} + +// JDK 1.2 +jobject +_Jv_JNI_ToReflectedField (JNIEnv *, jclass cls, jfieldID fieldID) +{ + java::lang::reflect::Field *field = new java::lang::reflect::Field(); + field->declaringClass = cls; + field->offset = (char*) fieldID - (char *) cls->fields; + field->name = _Jv_NewStringUtf8Const (fieldID->getNameUtf8Const (cls)); + return field; +} + +// JDK 1.2 +jfieldID +_Jv_JNI_FromReflectedField (JNIEnv *, java::lang::reflect::Field *field) +{ + return _Jv_FromReflectedField (field); +} + +#define NOT_IMPL NULL + +struct JNINativeInterface _Jv_JNIFunctions = +{ + NULL, + NULL, + NULL, + NULL, + NOT_IMPL /* GetVersion */, + NOT_IMPL /* DefineClass */, + NOT_IMPL /* FindClass */, + NULL, + NULL, + NULL, + _Jv_JNI_GetSuperclass, + IsAssignableFrom, + NULL, + NOT_IMPL /* Throw */, + NOT_IMPL /* ThrowNew */, + NOT_IMPL /* ExceptionOccurred */, + NOT_IMPL /* ExceptionDescribe */, + NOT_IMPL /* ExceptionClear */, + NOT_IMPL /* FatalError */, + NOT_IMPL /* NULL */, + NOT_IMPL /* NULL */, + NOT_IMPL /* NewGlobalRef */, + NOT_IMPL /* DeleteGlobalRef */, + NOT_IMPL /* DeleteLocalRef */, + NOT_IMPL /* IsSameObject */, + NOT_IMPL /* NULL */, + NOT_IMPL /* NULL */, + NOT_IMPL /* AllocObject */, + NOT_IMPL /* NewObject */, + NOT_IMPL /* NewObjectV */, + NOT_IMPL /* NewObjectA */, + NOT_IMPL /* GetObjectClass */, + NOT_IMPL /* IsInstanceOf */, + NOT_IMPL /* GetMethodID */, + NOT_IMPL /* CallObjectMethod */, + NOT_IMPL /* CallObjectMethodV */, + NOT_IMPL /* CallObjectMethodA */, + NOT_IMPL /* CallBooleanMethod */, + NOT_IMPL /* CallBooleanMethodV */, + NOT_IMPL /* CallBooleanMethodA */, + NOT_IMPL /* CallByteMethod */, + NOT_IMPL /* CallByteMethodV */, + NOT_IMPL /* CallByteMethodA */, + NOT_IMPL /* CallCharMethod */, + NOT_IMPL /* CallCharMethodV */, + NOT_IMPL /* CallCharMethodA */, + NOT_IMPL /* CallShortMethod */, + NOT_IMPL /* CallShortMethodV */, + NOT_IMPL /* CallShortMethodA */, + NOT_IMPL /* CallIntMethod */, + NOT_IMPL /* CallIntMethodV */, + NOT_IMPL /* CallIntMethodA */, + NOT_IMPL /* CallLongMethod */, + NOT_IMPL /* CallLongMethodV */, + NOT_IMPL /* CallLongMethodA */, + NOT_IMPL /* CallFloatMethod */, + NOT_IMPL /* CallFloatMethodV */, + NOT_IMPL /* CallFloatMethodA */, + NOT_IMPL /* CallDoubleMethod */, + NOT_IMPL /* CallDoubleMethodV */, + NOT_IMPL /* CallDoubleMethodA */, + NOT_IMPL /* CallVoidMethod */, + NOT_IMPL /* CallVoidMethodV */, + NOT_IMPL /* CallVoidMethodA */, + NOT_IMPL /* CallNonvirtualObjectMethod */, + NOT_IMPL /* CallNonvirtualObjectMethodV */, + NOT_IMPL /* CallNonvirtualObjectMethodA */, + NOT_IMPL /* CallNonvirtualBooleanMethod */, + NOT_IMPL /* CallNonvirtualBooleanMethodV */, + NOT_IMPL /* CallNonvirtualBooleanMethodA */, + NOT_IMPL /* CallNonvirtualByteMethod */, + NOT_IMPL /* CallNonvirtualByteMethodV */, + NOT_IMPL /* CallNonvirtualByteMethodA */, + NOT_IMPL /* CallNonvirtualCharMethod */, + NOT_IMPL /* CallNonvirtualCharMethodV */, + NOT_IMPL /* CallNonvirtualCharMethodA */, + NOT_IMPL /* CallNonvirtualShortMethod */, + NOT_IMPL /* CallNonvirtualShortMethodV */, + NOT_IMPL /* CallNonvirtualShortMethodA */, + NOT_IMPL /* CallNonvirtualIntMethod */, + NOT_IMPL /* CallNonvirtualIntMethodV */, + NOT_IMPL /* CallNonvirtualIntMethodA */, + NOT_IMPL /* CallNonvirtualLongMethod */, + NOT_IMPL /* CallNonvirtualLongMethodV */, + NOT_IMPL /* CallNonvirtualLongMethodA */, + NOT_IMPL /* CallNonvirtualFloatMethod */, + NOT_IMPL /* CallNonvirtualFloatMethodV */, + NOT_IMPL /* CallNonvirtualFloatMethodA */, + NOT_IMPL /* CallNonvirtualDoubleMethod */, + NOT_IMPL /* CallNonvirtualDoubleMethodV */, + NOT_IMPL /* CallNonvirtualDoubleMethodA */, + NOT_IMPL /* CallNonvirtualVoidMethod */, + NOT_IMPL /* CallNonvirtualVoidMethodV */, + NOT_IMPL /* CallNonvirtualVoidMethodA */, + NOT_IMPL /* GetFieldID */, + _Jv_JNI_GetObjectField, + NOT_IMPL /* GetBooleanField */, + _Jv_JNI_GetByteField, + NOT_IMPL /* GetCharField */, + _Jv_JNI_GetShortField, + _Jv_JNI_GetIntField, + _Jv_JNI_GetLongField, + NOT_IMPL /* GetFloatField */, + NOT_IMPL /* GetDoubleField */, + NOT_IMPL /* SetObjectField */, + NOT_IMPL /* SetBooleanField */, + NOT_IMPL /* SetByteField */, + NOT_IMPL /* SetCharField */, + NOT_IMPL /* SetShortField */, + NOT_IMPL /* SetIntField */, + NOT_IMPL /* SetLongField */, + NOT_IMPL /* SetFloatField */, + NOT_IMPL /* SetDoubleField */, + NOT_IMPL /* GetStaticMethodID */, + NOT_IMPL /* CallStaticObjectMethod */, + NOT_IMPL /* CallStaticObjectMethodV */, + NOT_IMPL /* CallStaticObjectMethodA */, + NOT_IMPL /* CallStaticBooleanMethod */, + NOT_IMPL /* CallStaticBooleanMethodV */, + NOT_IMPL /* CallStaticBooleanMethodA */, + NOT_IMPL /* CallStaticByteMethod */, + NOT_IMPL /* CallStaticByteMethodV */, + NOT_IMPL /* CallStaticByteMethodA */, + NOT_IMPL /* CallStaticCharMethod */, + NOT_IMPL /* CallStaticCharMethodV */, + NOT_IMPL /* CallStaticCharMethodA */, + NOT_IMPL /* CallStaticShortMethod */, + NOT_IMPL /* CallStaticShortMethodV */, + NOT_IMPL /* CallStaticShortMethodA */, + NOT_IMPL /* CallStaticIntMethod */, + NOT_IMPL /* CallStaticIntMethodV */, + NOT_IMPL /* CallStaticIntMethodA */, + NOT_IMPL /* CallStaticLongMethod */, + NOT_IMPL /* CallStaticLongMethodV */, + NOT_IMPL /* CallStaticLongMethodA */, + NOT_IMPL /* CallStaticFloatMethod */, + NOT_IMPL /* CallStaticFloatMethodV */, + NOT_IMPL /* CallStaticFloatMethodA */, + NOT_IMPL /* CallStaticDoubleMethod */, + NOT_IMPL /* CallStaticDoubleMethodV */, + NOT_IMPL /* CallStaticDoubleMethodA */, + NOT_IMPL /* CallStaticVoidMethod */, + NOT_IMPL /* CallStaticVoidMethodV */, + NOT_IMPL /* CallStaticVoidMethodA */, + NOT_IMPL /* GetStaticFieldID */, + NOT_IMPL /* GetStaticObjectField */, + NOT_IMPL /* GetStaticBooleanField */, + NOT_IMPL /* GetStaticByteField */, + NOT_IMPL /* GetStaticCharField */, + NOT_IMPL /* GetStaticShortField */, + NOT_IMPL /* GetStaticIntField */, + NOT_IMPL /* GetStaticLongField */, + NOT_IMPL /* GetStaticFloatField */, + NOT_IMPL /* GetStaticDoubleField */, + NOT_IMPL /* SetStaticObjectField */, + NOT_IMPL /* SetStaticBooleanField */, + NOT_IMPL /* SetStaticByteField */, + NOT_IMPL /* SetStaticCharField */, + NOT_IMPL /* SetStaticShortField */, + NOT_IMPL /* SetStaticIntField */, + NOT_IMPL /* SetStaticLongField */, + NOT_IMPL /* SetStaticFloatField */, + NOT_IMPL /* SetStaticDoubleField */, + NOT_IMPL /* NewString */, + _Jv_JNI_GetStringLength, + NOT_IMPL /* GetStringChars */, + NOT_IMPL /* ReleaseStringChars */, + NOT_IMPL /* NewStringUTF */, + NOT_IMPL /* GetStringUTFLength */, + NOT_IMPL /* GetStringUTFChars */, + NOT_IMPL /* ReleaseStringUTFChars */, + NOT_IMPL /* GetArrayLength */, + NOT_IMPL /* NewObjectArray */, + NOT_IMPL /* GetObjectArrayElement */, + NOT_IMPL /* SetObjectArrayElement */, + NOT_IMPL /* NewBooleanArray */, + NOT_IMPL /* NewByteArray */, + NOT_IMPL /* NewCharArray */, + NOT_IMPL /* NewShortArray */, + NOT_IMPL /* NewIntArray */, + NOT_IMPL /* NewLongArray */, + NOT_IMPL /* NewFloatArray */, + NOT_IMPL /* NewDoubleArray */, + NOT_IMPL /* GetBooleanArrayElements */, + NOT_IMPL /* GetByteArrayElements */, + NOT_IMPL /* GetCharArrayElements */, + NOT_IMPL /* GetShortArrayElements */, + NOT_IMPL /* GetIntArrayElements */, + NOT_IMPL /* GetLongArrayElements */, + NOT_IMPL /* GetFloatArrayElements */, + NOT_IMPL /* GetDoubleArrayElements */, + NOT_IMPL /* ReleaseBooleanArrayElements */, + NOT_IMPL /* ReleaseByteArrayElements */, + NOT_IMPL /* ReleaseCharArrayElements */, + NOT_IMPL /* ReleaseShortArrayElements */, + NOT_IMPL /* ReleaseIntArrayElements */, + NOT_IMPL /* ReleaseLongArrayElements */, + NOT_IMPL /* ReleaseFloatArrayElements */, + NOT_IMPL /* ReleaseDoubleArrayElements */, + NOT_IMPL /* GetBooleanArrayRegion */, + NOT_IMPL /* GetByteArrayRegion */, + NOT_IMPL /* GetCharArrayRegion */, + NOT_IMPL /* GetShortArrayRegion */, + NOT_IMPL /* GetIntArrayRegion */, + NOT_IMPL /* GetLongArrayRegion */, + NOT_IMPL /* GetFloatArrayRegion */, + NOT_IMPL /* GetDoubleArrayRegion */, + NOT_IMPL /* SetBooleanArrayRegion */, + NOT_IMPL /* SetByteArrayRegion */, + NOT_IMPL /* SetCharArrayRegion */, + NOT_IMPL /* SetShortArrayRegion */, + NOT_IMPL /* SetIntArrayRegion */, + NOT_IMPL /* SetLongArrayRegion */, + NOT_IMPL /* SetFloatArrayRegion */, + NOT_IMPL /* SetDoubleArrayRegion */, + NOT_IMPL /* RegisterNatives */, + NOT_IMPL /* UnregisterNatives */, + NOT_IMPL /* MonitorEnter */, + NOT_IMPL /* MonitorExit */, + NOT_IMPL /* GetJavaVM */, +}; |