summaryrefslogtreecommitdiff
path: root/libjava/include/jni.h
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include/jni.h')
-rw-r--r--libjava/include/jni.h302
1 files changed, 302 insertions, 0 deletions
diff --git a/libjava/include/jni.h b/libjava/include/jni.h
new file mode 100644
index 00000000000..bf7b015cdca
--- /dev/null
+++ b/libjava/include/jni.h
@@ -0,0 +1,302 @@
+/* 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. */
+
+#ifndef __JAVA_JNI_H__
+#define __JAVA_JNI_H__
+
+#ifdef __GNUC__
+# define __need___va_list
+# include <stdarg.h>
+# define _Jv_va_list __gnuc_va_list
+#else
+# include <stdarg.h>
+# define _Jv_va_list va_list
+#endif
+
+#ifdef __cplusplus
+
+// This is wrong, because it pollutes the name-space too much!
+#include <javaprims.h>
+
+typedef struct _Jv_JNIEnv JNIEnv;
+#else
+
+typedef int jbyte __attribute__((__mode__(__QI__)));
+typedef int jshort __attribute__((__mode__(__HI__)));
+typedef int jint __attribute__((__mode__(__SI__)));
+typedef int jlong __attribute__((__mode__(__DI__)));
+typedef bool jboolean __attribute__((__mode__(__QI__)));
+typedef unsigned short jchar __attribute__((__mode__(__HI__)));
+typedef float jfloat;
+typedef double jdouble;
+typedef jint jsize;
+
+typedef const struct JNINativeInterface *JNIEnv;
+#endif
+
+typedef union jvalue
+{
+ jboolean z;
+ jbyte b;
+ jchar c;
+ jshort s;
+ jint i;
+ jlong j;
+ jfloat f;
+ jdouble d;
+ jobject l;
+} jvalue;
+
+typedef void * (*_Jv_func)(...);
+
+struct JNINativeInterface
+{
+ _Jv_func reserved0;
+ _Jv_func reserved1;
+ _Jv_func reserved2;
+ _Jv_func reserved3;
+ _Jv_func GetVersion;
+ _Jv_func DefineClass;
+ _Jv_func FindClass;
+ _Jv_func reserved4;
+ _Jv_func reserved5;
+ _Jv_func reserved6;
+ jclass (*GetSuperclass) (JNIEnv*, jclass);
+ jboolean (*IsAssignableFrom) (JNIEnv*, jclass, jclass);
+ _Jv_func reserved7;
+ jint (*Throw) (JNIEnv*, jthrowable);
+ _Jv_func ThrowNew;
+ _Jv_func ExceptionOccurred;
+ _Jv_func ExceptionDescribe;
+ _Jv_func ExceptionClear;
+ _Jv_func FatalError;
+ _Jv_func reserved8;
+ _Jv_func reserved9;
+ _Jv_func NewGlobalRef;
+ _Jv_func DeleteGlobalRef;
+ _Jv_func DeleteLocalRef;
+ _Jv_func IsSameObject;
+ _Jv_func reserved10;
+ _Jv_func reserved11;
+ _Jv_func AllocObject;
+ _Jv_func NewObject;
+ _Jv_func NewObjectV;
+ _Jv_func NewObjectA;
+ _Jv_func GetObjectClass;
+ _Jv_func IsInstanceOf;
+ _Jv_func GetMethodID;
+ _Jv_func CallObjectMethod;
+ _Jv_func CallObjectMethodV;
+ _Jv_func CallObjectMethodA;
+ _Jv_func CallBooleanMethod;
+ _Jv_func CallBooleanMethodV;
+ _Jv_func CallBooleanMethodA;
+ _Jv_func CallByteMethod;
+ _Jv_func CallByteMethodV;
+ _Jv_func CallByteMethodA;
+ _Jv_func CallCharMethod;
+ _Jv_func CallCharMethodV;
+ _Jv_func CallCharMethodA;
+ _Jv_func CallShortMethod;
+ _Jv_func CallShortMethodV;
+ _Jv_func CallShortMethodA;
+ _Jv_func CallIntMethod;
+ _Jv_func CallIntMethodV;
+ _Jv_func CallIntMethodA;
+ _Jv_func CallLongMethod;
+ _Jv_func CallLongMethodV;
+ _Jv_func CallLongMethodA;
+ _Jv_func CallFloatMethod;
+ _Jv_func CallFloatMethodV;
+ _Jv_func CallFloatMethodA;
+ _Jv_func CallDoubleMethod;
+ _Jv_func CallDoubleMethodV;
+ _Jv_func CallDoubleMethodA;
+ _Jv_func CallVoidMethod;
+ _Jv_func CallVoidMethodV;
+ _Jv_func CallVoidMethodA;
+ _Jv_func CallNonvirtualObjectMethod;
+ _Jv_func CallNonvirtualObjectMethodV;
+ _Jv_func CallNonvirtualObjectMethodA;
+ jboolean (*CallNonvirtualBooleanMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
+ jboolean (*CallNonvirtualBooleanMethodV) (JNIEnv*, jobject, jclass, jmethodID, _Jv_va_list);
+ jboolean (*CallNonvirtualBooleanMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
+ _Jv_func CallNonvirtualByteMethod;
+ _Jv_func CallNonvirtualByteMethodV;
+ _Jv_func CallNonvirtualByteMethodA;
+ _Jv_func CallNonvirtualCharMethod;
+ _Jv_func CallNonvirtualCharMethodV;
+ _Jv_func CallNonvirtualCharMethodA;
+ _Jv_func CallNonvirtualShortMethod;
+ _Jv_func CallNonvirtualShortMethodV;
+ _Jv_func CallNonvirtualShortMethodA;
+ _Jv_func CallNonvirtualIntMethod;
+ _Jv_func CallNonvirtualIntMethodV;
+ _Jv_func CallNonvirtualIntMethodA;
+ _Jv_func CallNonvirtualLongMethod;
+ _Jv_func CallNonvirtualLongMethodV;
+ _Jv_func CallNonvirtualLongMethodA;
+ _Jv_func CallNonvirtualFloatMethod;
+ _Jv_func CallNonvirtualFloatMethodV;
+ _Jv_func CallNonvirtualFloatMethodA;
+ _Jv_func CallNonvirtualDoubleMethod;
+ jdouble (*CallNonvirtualDoubleMethodV) (JNIEnv*, jobject, jclass, jmethodID, _Jv_va_list);
+ _Jv_func CallNonvirtualDoubleMethodA;
+ _Jv_func CallNonvirtualVoidMethod;
+ _Jv_func CallNonvirtualVoidMethodV;
+ _Jv_func CallNonvirtualVoidMethodA;
+ _Jv_func GetFieldID;
+ jobject (*GetObjectField) (JNIEnv*, jobject, jfieldID);
+ jboolean (*GetBooleanField) (JNIEnv*, jobject, jfieldID);
+ jbyte (*GetByteField) (JNIEnv*, jobject, jfieldID);
+ jchar (*GetCharField) (JNIEnv*, jobject, jfieldID);
+ jshort (*GetShortField) (JNIEnv*, jobject, jfieldID);
+ jint (*GetIntField) (JNIEnv*, jobject, jfieldID);
+ jlong (*GetLongField) (JNIEnv*, jobject, jfieldID);
+ jfloat (*GetFloatField) (JNIEnv*, jobject, jfieldID);
+ jdouble (*GetDoubleField) (JNIEnv*, jobject, jfieldID);
+ _Jv_func SetObjectField;
+ _Jv_func SetBooleanField;
+ _Jv_func SetByteField;
+ _Jv_func SetCharField;
+ _Jv_func SetShortField;
+ _Jv_func SetIntField;
+ _Jv_func SetLongField;
+ _Jv_func SetFloatField;
+ _Jv_func SetDoubleField;
+ _Jv_func GetStaticMethodID;
+ _Jv_func CallStaticObjectMethod;
+ _Jv_func CallStaticObjectMethodV;
+ _Jv_func CallStaticObjectMethodA;
+ _Jv_func CallStaticBooleanMethod;
+ _Jv_func CallStaticBooleanMethodV;
+ _Jv_func CallStaticBooleanMethodA;
+ _Jv_func CallStaticByteMethod;
+ _Jv_func CallStaticByteMethodV;
+ _Jv_func CallStaticByteMethodA;
+ _Jv_func CallStaticCharMethod;
+ _Jv_func CallStaticCharMethodV;
+ _Jv_func CallStaticCharMethodA;
+ _Jv_func CallStaticShortMethod;
+ _Jv_func CallStaticShortMethodV;
+ _Jv_func CallStaticShortMethodA;
+ _Jv_func CallStaticIntMethod;
+ _Jv_func CallStaticIntMethodV;
+ _Jv_func CallStaticIntMethodA;
+ _Jv_func CallStaticLongMethod;
+ _Jv_func CallStaticLongMethodV;
+ _Jv_func CallStaticLongMethodA;
+ _Jv_func CallStaticFloatMethod;
+ _Jv_func CallStaticFloatMethodV;
+ _Jv_func CallStaticFloatMethodA;
+ _Jv_func CallStaticDoubleMethod;
+ _Jv_func CallStaticDoubleMethodV;
+ _Jv_func CallStaticDoubleMethodA;
+ _Jv_func CallStaticVoidMethod;
+ _Jv_func CallStaticVoidMethodV;
+ _Jv_func CallStaticVoidMethodA;
+ _Jv_func GetStaticFieldID;
+ _Jv_func GetStaticObjectField;
+ _Jv_func GetStaticBooleanField;
+ _Jv_func GetStaticByteField;
+ _Jv_func GetStaticCharField;
+ _Jv_func GetStaticShortField;
+ _Jv_func GetStaticIntField;
+ _Jv_func GetStaticLongField;
+ _Jv_func GetStaticFloatField;
+ _Jv_func GetStaticDoubleField;
+ _Jv_func SetStaticObjectField;
+ _Jv_func SetStaticBooleanField;
+ _Jv_func SetStaticByteField;
+ _Jv_func SetStaticCharField;
+ _Jv_func SetStaticShortField;
+ _Jv_func SetStaticIntField;
+ _Jv_func SetStaticLongField;
+ _Jv_func SetStaticFloatField;
+ _Jv_func SetStaticDoubleField;
+ _Jv_func NewString;
+ jint (*GetStringLength) (JNIEnv*, jstring);
+ _Jv_func GetStringChars;
+ _Jv_func ReleaseStringChars;
+ _Jv_func NewStringUTF;
+ _Jv_func GetStringUTFLength;
+ _Jv_func GetStringUTFChars;
+ _Jv_func ReleaseStringUTFChars;
+ _Jv_func GetArrayLength;
+ _Jv_func NewObjectArray;
+ _Jv_func GetObjectArrayElement;
+ _Jv_func SetObjectArrayElement;
+ _Jv_func NewBooleanArray;
+ _Jv_func NewByteArray;
+ _Jv_func NewCharArray;
+ _Jv_func NewShortArray;
+ _Jv_func NewIntArray;
+ _Jv_func NewLongArray;
+ _Jv_func NewFloatArray;
+ _Jv_func NewDoubleArray;
+ _Jv_func GetBooleanArrayElements;
+ _Jv_func GetByteArrayElements;
+ _Jv_func GetCharArrayElements;
+ _Jv_func GetShortArrayElements;
+ _Jv_func GetIntArrayElements;
+ _Jv_func GetLongArrayElements;
+ _Jv_func GetFloatArrayElements;
+ _Jv_func GetDoubleArrayElements;
+ _Jv_func ReleaseBooleanArrayElements;
+ _Jv_func ReleaseByteArrayElements;
+ _Jv_func ReleaseCharArrayElements;
+ _Jv_func ReleaseShortArrayElements;
+ _Jv_func ReleaseIntArrayElements;
+ _Jv_func ReleaseLongArrayElements;
+ _Jv_func ReleaseFloatArrayElements;
+ _Jv_func ReleaseDoubleArrayElements;
+ _Jv_func GetBooleanArrayRegion;
+ _Jv_func GetByteArrayRegion;
+ _Jv_func GetCharArrayRegion;
+ _Jv_func GetShortArrayRegion;
+ _Jv_func GetIntArrayRegion;
+ _Jv_func GetLongArrayRegion;
+ _Jv_func GetFloatArrayRegion;
+ _Jv_func GetDoubleArrayRegion;
+ _Jv_func SetBooleanArrayRegion;
+ _Jv_func SetByteArrayRegion;
+ _Jv_func SetCharArrayRegion;
+ _Jv_func SetShortArrayRegion;
+ _Jv_func SetIntArrayRegion;
+ _Jv_func SetLongArrayRegion;
+ _Jv_func SetFloatArrayRegion;
+ _Jv_func SetDoubleArrayRegion;
+ _Jv_func RegisterNatives;
+ _Jv_func UnregisterNatives;
+ _Jv_func MonitorEnter;
+ _Jv_func MonitorExit;
+ _Jv_func GetJavaVM;
+};
+
+#ifdef __cplusplus
+
+struct _Jv_JNIEnv
+{
+ struct JNINativeInterface *p;
+
+ jclass GetSuperclass (jclass cl);
+ jsize GetStringLength (jstring str);
+
+};
+
+extern inline jclass
+_Jv_JNIEnv::GetSuperclass (jclass cl)
+{ return p->GetSuperclass (this, cl); }
+
+extern inline jsize
+_Jv_JNIEnv::GetStringLength (jstring str)
+{ return p->GetStringLength (this, str); }
+
+#endif
+
+#endif /* __JAVA_JNI_H__ */