aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni.cc')
-rw-r--r--libjava/jni.cc308
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 */,
+};