allow all arm targets to use -mstructure-size-boundary=XX
[official-gcc.git] / libjava / jni.cc
blob013fe1fd106439342d7a15c3ec854cae12a085b2
1 // jni.cc - JNI implementation, including the jump table.
3 /* Copyright (C) 1998, 1999 Cygnus Solutions
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9 details. */
11 #include <config.h>
13 #include <stddef.h>
15 #include <jni.h>
16 #include <gcj/field.h>
18 static jclass
19 _Jv_JNI_GetSuperclass (JNIEnv *, jclass clazz)
21 return clazz->getSuperclass ();
24 static jboolean
25 IsAssignableFrom(JNIEnv *, jclass clazz1, jclass clazz2)
27 return clazz1->isAssignableFrom (clazz2);
30 static jobject
31 _Jv_JNI_GetObjectField (JNIEnv *, jobject obj, jfieldID field)
33 return _Jv_GetObjectField (obj, field);
36 static jbyte
37 _Jv_JNI_GetByteField (JNIEnv *, jobject obj, jfieldID field)
39 return _Jv_GetByteField (obj, field);
42 static jshort
43 _Jv_JNI_GetShortField (JNIEnv *, jobject obj, jfieldID field)
45 return _Jv_GetShortField (obj, field);
48 static jint
49 _Jv_JNI_GetIntField (JNIEnv *, jobject obj, jfieldID field)
51 return _Jv_GetIntField (obj, field);
54 static jlong
55 _Jv_JNI_GetLongField (JNIEnv *, jobject obj, jfieldID field)
57 return _Jv_GetLongField (obj, field);
60 static jsize
61 _Jv_JNI_GetStringLength (JNIEnv *, jstring string)
63 return string->length();
66 // JDK 1.2
67 jobject
68 _Jv_JNI_ToReflectedField (JNIEnv *, jclass cls, jfieldID fieldID)
70 java::lang::reflect::Field *field = new java::lang::reflect::Field();
71 field->declaringClass = cls;
72 field->offset = (char*) fieldID - (char *) cls->fields;
73 field->name = _Jv_NewStringUtf8Const (fieldID->getNameUtf8Const (cls));
74 return field;
77 // JDK 1.2
78 jfieldID
79 _Jv_JNI_FromReflectedField (JNIEnv *, java::lang::reflect::Field *field)
81 return _Jv_FromReflectedField (field);
84 #define NOT_IMPL NULL
86 struct JNINativeInterface _Jv_JNIFunctions =
88 NULL,
89 NULL,
90 NULL,
91 NULL,
92 NOT_IMPL /* GetVersion */,
93 NOT_IMPL /* DefineClass */,
94 NOT_IMPL /* FindClass */,
95 NULL,
96 NULL,
97 NULL,
98 _Jv_JNI_GetSuperclass,
99 IsAssignableFrom,
100 NULL,
101 NOT_IMPL /* Throw */,
102 NOT_IMPL /* ThrowNew */,
103 NOT_IMPL /* ExceptionOccurred */,
104 NOT_IMPL /* ExceptionDescribe */,
105 NOT_IMPL /* ExceptionClear */,
106 NOT_IMPL /* FatalError */,
107 NOT_IMPL /* NULL */,
108 NOT_IMPL /* NULL */,
109 NOT_IMPL /* NewGlobalRef */,
110 NOT_IMPL /* DeleteGlobalRef */,
111 NOT_IMPL /* DeleteLocalRef */,
112 NOT_IMPL /* IsSameObject */,
113 NOT_IMPL /* NULL */,
114 NOT_IMPL /* NULL */,
115 NOT_IMPL /* AllocObject */,
116 NOT_IMPL /* NewObject */,
117 NOT_IMPL /* NewObjectV */,
118 NOT_IMPL /* NewObjectA */,
119 NOT_IMPL /* GetObjectClass */,
120 NOT_IMPL /* IsInstanceOf */,
121 NOT_IMPL /* GetMethodID */,
122 NOT_IMPL /* CallObjectMethod */,
123 NOT_IMPL /* CallObjectMethodV */,
124 NOT_IMPL /* CallObjectMethodA */,
125 NOT_IMPL /* CallBooleanMethod */,
126 NOT_IMPL /* CallBooleanMethodV */,
127 NOT_IMPL /* CallBooleanMethodA */,
128 NOT_IMPL /* CallByteMethod */,
129 NOT_IMPL /* CallByteMethodV */,
130 NOT_IMPL /* CallByteMethodA */,
131 NOT_IMPL /* CallCharMethod */,
132 NOT_IMPL /* CallCharMethodV */,
133 NOT_IMPL /* CallCharMethodA */,
134 NOT_IMPL /* CallShortMethod */,
135 NOT_IMPL /* CallShortMethodV */,
136 NOT_IMPL /* CallShortMethodA */,
137 NOT_IMPL /* CallIntMethod */,
138 NOT_IMPL /* CallIntMethodV */,
139 NOT_IMPL /* CallIntMethodA */,
140 NOT_IMPL /* CallLongMethod */,
141 NOT_IMPL /* CallLongMethodV */,
142 NOT_IMPL /* CallLongMethodA */,
143 NOT_IMPL /* CallFloatMethod */,
144 NOT_IMPL /* CallFloatMethodV */,
145 NOT_IMPL /* CallFloatMethodA */,
146 NOT_IMPL /* CallDoubleMethod */,
147 NOT_IMPL /* CallDoubleMethodV */,
148 NOT_IMPL /* CallDoubleMethodA */,
149 NOT_IMPL /* CallVoidMethod */,
150 NOT_IMPL /* CallVoidMethodV */,
151 NOT_IMPL /* CallVoidMethodA */,
152 NOT_IMPL /* CallNonvirtualObjectMethod */,
153 NOT_IMPL /* CallNonvirtualObjectMethodV */,
154 NOT_IMPL /* CallNonvirtualObjectMethodA */,
155 NOT_IMPL /* CallNonvirtualBooleanMethod */,
156 NOT_IMPL /* CallNonvirtualBooleanMethodV */,
157 NOT_IMPL /* CallNonvirtualBooleanMethodA */,
158 NOT_IMPL /* CallNonvirtualByteMethod */,
159 NOT_IMPL /* CallNonvirtualByteMethodV */,
160 NOT_IMPL /* CallNonvirtualByteMethodA */,
161 NOT_IMPL /* CallNonvirtualCharMethod */,
162 NOT_IMPL /* CallNonvirtualCharMethodV */,
163 NOT_IMPL /* CallNonvirtualCharMethodA */,
164 NOT_IMPL /* CallNonvirtualShortMethod */,
165 NOT_IMPL /* CallNonvirtualShortMethodV */,
166 NOT_IMPL /* CallNonvirtualShortMethodA */,
167 NOT_IMPL /* CallNonvirtualIntMethod */,
168 NOT_IMPL /* CallNonvirtualIntMethodV */,
169 NOT_IMPL /* CallNonvirtualIntMethodA */,
170 NOT_IMPL /* CallNonvirtualLongMethod */,
171 NOT_IMPL /* CallNonvirtualLongMethodV */,
172 NOT_IMPL /* CallNonvirtualLongMethodA */,
173 NOT_IMPL /* CallNonvirtualFloatMethod */,
174 NOT_IMPL /* CallNonvirtualFloatMethodV */,
175 NOT_IMPL /* CallNonvirtualFloatMethodA */,
176 NOT_IMPL /* CallNonvirtualDoubleMethod */,
177 NOT_IMPL /* CallNonvirtualDoubleMethodV */,
178 NOT_IMPL /* CallNonvirtualDoubleMethodA */,
179 NOT_IMPL /* CallNonvirtualVoidMethod */,
180 NOT_IMPL /* CallNonvirtualVoidMethodV */,
181 NOT_IMPL /* CallNonvirtualVoidMethodA */,
182 NOT_IMPL /* GetFieldID */,
183 _Jv_JNI_GetObjectField,
184 NOT_IMPL /* GetBooleanField */,
185 _Jv_JNI_GetByteField,
186 NOT_IMPL /* GetCharField */,
187 _Jv_JNI_GetShortField,
188 _Jv_JNI_GetIntField,
189 _Jv_JNI_GetLongField,
190 NOT_IMPL /* GetFloatField */,
191 NOT_IMPL /* GetDoubleField */,
192 NOT_IMPL /* SetObjectField */,
193 NOT_IMPL /* SetBooleanField */,
194 NOT_IMPL /* SetByteField */,
195 NOT_IMPL /* SetCharField */,
196 NOT_IMPL /* SetShortField */,
197 NOT_IMPL /* SetIntField */,
198 NOT_IMPL /* SetLongField */,
199 NOT_IMPL /* SetFloatField */,
200 NOT_IMPL /* SetDoubleField */,
201 NOT_IMPL /* GetStaticMethodID */,
202 NOT_IMPL /* CallStaticObjectMethod */,
203 NOT_IMPL /* CallStaticObjectMethodV */,
204 NOT_IMPL /* CallStaticObjectMethodA */,
205 NOT_IMPL /* CallStaticBooleanMethod */,
206 NOT_IMPL /* CallStaticBooleanMethodV */,
207 NOT_IMPL /* CallStaticBooleanMethodA */,
208 NOT_IMPL /* CallStaticByteMethod */,
209 NOT_IMPL /* CallStaticByteMethodV */,
210 NOT_IMPL /* CallStaticByteMethodA */,
211 NOT_IMPL /* CallStaticCharMethod */,
212 NOT_IMPL /* CallStaticCharMethodV */,
213 NOT_IMPL /* CallStaticCharMethodA */,
214 NOT_IMPL /* CallStaticShortMethod */,
215 NOT_IMPL /* CallStaticShortMethodV */,
216 NOT_IMPL /* CallStaticShortMethodA */,
217 NOT_IMPL /* CallStaticIntMethod */,
218 NOT_IMPL /* CallStaticIntMethodV */,
219 NOT_IMPL /* CallStaticIntMethodA */,
220 NOT_IMPL /* CallStaticLongMethod */,
221 NOT_IMPL /* CallStaticLongMethodV */,
222 NOT_IMPL /* CallStaticLongMethodA */,
223 NOT_IMPL /* CallStaticFloatMethod */,
224 NOT_IMPL /* CallStaticFloatMethodV */,
225 NOT_IMPL /* CallStaticFloatMethodA */,
226 NOT_IMPL /* CallStaticDoubleMethod */,
227 NOT_IMPL /* CallStaticDoubleMethodV */,
228 NOT_IMPL /* CallStaticDoubleMethodA */,
229 NOT_IMPL /* CallStaticVoidMethod */,
230 NOT_IMPL /* CallStaticVoidMethodV */,
231 NOT_IMPL /* CallStaticVoidMethodA */,
232 NOT_IMPL /* GetStaticFieldID */,
233 NOT_IMPL /* GetStaticObjectField */,
234 NOT_IMPL /* GetStaticBooleanField */,
235 NOT_IMPL /* GetStaticByteField */,
236 NOT_IMPL /* GetStaticCharField */,
237 NOT_IMPL /* GetStaticShortField */,
238 NOT_IMPL /* GetStaticIntField */,
239 NOT_IMPL /* GetStaticLongField */,
240 NOT_IMPL /* GetStaticFloatField */,
241 NOT_IMPL /* GetStaticDoubleField */,
242 NOT_IMPL /* SetStaticObjectField */,
243 NOT_IMPL /* SetStaticBooleanField */,
244 NOT_IMPL /* SetStaticByteField */,
245 NOT_IMPL /* SetStaticCharField */,
246 NOT_IMPL /* SetStaticShortField */,
247 NOT_IMPL /* SetStaticIntField */,
248 NOT_IMPL /* SetStaticLongField */,
249 NOT_IMPL /* SetStaticFloatField */,
250 NOT_IMPL /* SetStaticDoubleField */,
251 NOT_IMPL /* NewString */,
252 _Jv_JNI_GetStringLength,
253 NOT_IMPL /* GetStringChars */,
254 NOT_IMPL /* ReleaseStringChars */,
255 NOT_IMPL /* NewStringUTF */,
256 NOT_IMPL /* GetStringUTFLength */,
257 NOT_IMPL /* GetStringUTFChars */,
258 NOT_IMPL /* ReleaseStringUTFChars */,
259 NOT_IMPL /* GetArrayLength */,
260 NOT_IMPL /* NewObjectArray */,
261 NOT_IMPL /* GetObjectArrayElement */,
262 NOT_IMPL /* SetObjectArrayElement */,
263 NOT_IMPL /* NewBooleanArray */,
264 NOT_IMPL /* NewByteArray */,
265 NOT_IMPL /* NewCharArray */,
266 NOT_IMPL /* NewShortArray */,
267 NOT_IMPL /* NewIntArray */,
268 NOT_IMPL /* NewLongArray */,
269 NOT_IMPL /* NewFloatArray */,
270 NOT_IMPL /* NewDoubleArray */,
271 NOT_IMPL /* GetBooleanArrayElements */,
272 NOT_IMPL /* GetByteArrayElements */,
273 NOT_IMPL /* GetCharArrayElements */,
274 NOT_IMPL /* GetShortArrayElements */,
275 NOT_IMPL /* GetIntArrayElements */,
276 NOT_IMPL /* GetLongArrayElements */,
277 NOT_IMPL /* GetFloatArrayElements */,
278 NOT_IMPL /* GetDoubleArrayElements */,
279 NOT_IMPL /* ReleaseBooleanArrayElements */,
280 NOT_IMPL /* ReleaseByteArrayElements */,
281 NOT_IMPL /* ReleaseCharArrayElements */,
282 NOT_IMPL /* ReleaseShortArrayElements */,
283 NOT_IMPL /* ReleaseIntArrayElements */,
284 NOT_IMPL /* ReleaseLongArrayElements */,
285 NOT_IMPL /* ReleaseFloatArrayElements */,
286 NOT_IMPL /* ReleaseDoubleArrayElements */,
287 NOT_IMPL /* GetBooleanArrayRegion */,
288 NOT_IMPL /* GetByteArrayRegion */,
289 NOT_IMPL /* GetCharArrayRegion */,
290 NOT_IMPL /* GetShortArrayRegion */,
291 NOT_IMPL /* GetIntArrayRegion */,
292 NOT_IMPL /* GetLongArrayRegion */,
293 NOT_IMPL /* GetFloatArrayRegion */,
294 NOT_IMPL /* GetDoubleArrayRegion */,
295 NOT_IMPL /* SetBooleanArrayRegion */,
296 NOT_IMPL /* SetByteArrayRegion */,
297 NOT_IMPL /* SetCharArrayRegion */,
298 NOT_IMPL /* SetShortArrayRegion */,
299 NOT_IMPL /* SetIntArrayRegion */,
300 NOT_IMPL /* SetLongArrayRegion */,
301 NOT_IMPL /* SetFloatArrayRegion */,
302 NOT_IMPL /* SetDoubleArrayRegion */,
303 NOT_IMPL /* RegisterNatives */,
304 NOT_IMPL /* UnregisterNatives */,
305 NOT_IMPL /* MonitorEnter */,
306 NOT_IMPL /* MonitorExit */,
307 NOT_IMPL /* GetJavaVM */,