source: branches/libc-0.6/src/gcc/libjava/include/jni.h

Last change on this file was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 60.8 KB
Line 
1/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
2
3 This file is part of libgcj.
4
5This software is copyrighted work licensed under the terms of the
6Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
7details. */
8
9/* Note: this file must be compilable by the C compiler (for now,
10 assuming GNU C is ok). This means you must never use `//'
11 comments, and all C++-specific code must be conditional on
12 __cplusplus. */
13
14#ifndef __GCJ_JNI_H__
15#define __GCJ_JNI_H__
16
17#include <gcj/libgcj-config.h>
18
19/* We include <stdio.h> for compatibility with Sun's <jni.h>. */
20#include <stdio.h>
21
22#include <stdarg.h>
23#define _Jv_va_list va_list
24
25#ifdef __GCJ_JNI_IMPL__
26
27/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
28 libgcj itself, and we include headers which taint the namespace
29 more than is acceptable for the ordinary JNI user. */
30#include <gcj/javaprims.h>
31#include <gcj/array.h>
32#include <gnu/gcj/runtime/JNIWeakRef.h>
33
34typedef gnu::gcj::runtime::JNIWeakRef *jweak;
35
36typedef struct _Jv_JNIEnv JNIEnv;
37typedef struct _Jv_JavaVM JavaVM;
38
39#define JNI_TRUE true
40#define JNI_FALSE false
41
42#else /* __GCJ_JNI_IMPL__ */
43
44# ifdef __GNUC__
45
46/* If we're using gcc, we can use a platform-independent scheme to get
47 the right integer types. */
48typedef int jbyte __attribute__((__mode__(__QI__)));
49typedef int jshort __attribute__((__mode__(__HI__)));
50typedef int jint __attribute__((__mode__(__SI__)));
51typedef int jlong __attribute__((__mode__(__DI__)));
52typedef int jboolean __attribute__((__mode__(__QI__)));
53typedef unsigned short jchar __attribute__((__mode__(__HI__)));
54typedef float jfloat;
55typedef double jdouble;
56typedef jint jsize;
57
58# else /* __GNUC__ */
59
60# ifdef JV_HAVE_INTTYPES_H
61
62/* If <inttypes.h> is available, we use it. */
63
64# include <inttypes.h>
65
66typedef int8_t jbyte;
67typedef int16_t jshort;
68typedef int32_t jint;
69typedef int64_t jlong;
70typedef float jfloat;
71typedef double jdouble;
72typedef jint jsize;
73typedef int8_t jboolean;
74typedef uint16_t jchar;
75
76# else /* JV_HAVE_INTTYPES_H */
77
78/* For now, we require either gcc or <inttypes.h>. If we did more
79 work at configure time we could get around this, but right now it
80 doesn't seem worth it. */
81# error jni.h not ported to this platform
82
83# endif /* JV_HAVE_INTTYPES_H */
84
85# endif /* __GNUC__ */
86
87# ifdef __cplusplus
88
89/* Define dummy classes and then define the JNI types as pointers. */
90struct __jobject {};
91struct __jclass : __jobject {};
92struct __jstring : __jobject {};
93struct __jthrowable : __jobject {};
94struct __jweak : __jobject {};
95struct __jarray : __jobject {};
96struct __jobjectArray : __jarray {};
97struct __jbyteArray : __jarray {};
98struct __jshortArray : __jarray {};
99struct __jintArray : __jarray {};
100struct __jlongArray : __jarray {};
101struct __jbooleanArray : __jarray {};
102struct __jcharArray : __jarray {};
103struct __jfloatArray : __jarray {};
104struct __jdoubleArray : __jarray {};
105
106typedef __jobject *jobject;
107typedef __jclass *jclass;
108typedef __jstring *jstring;
109typedef __jthrowable *jthrowable;
110typedef __jweak *jweak;
111typedef __jarray *jarray;
112typedef __jobjectArray *jobjectArray;
113typedef __jbyteArray *jbyteArray;
114typedef __jshortArray *jshortArray;
115typedef __jintArray *jintArray;
116typedef __jlongArray *jlongArray;
117typedef __jbooleanArray *jbooleanArray;
118typedef __jcharArray *jcharArray;
119typedef __jfloatArray *jfloatArray;
120typedef __jdoubleArray *jdoubleArray;
121
122#define JNI_TRUE true
123#define JNI_FALSE false
124
125typedef struct _Jv_JNIEnv JNIEnv;
126typedef struct _Jv_JavaVM JavaVM;
127
128# else /* __cplusplus */
129
130/* For C, simply define the class types as generic pointers. */
131typedef void *jobject;
132typedef jobject jclass;
133typedef jobject jstring;
134typedef jobject jthrowable;
135typedef jobject jweak;
136typedef jobject jarray;
137typedef jobject jobjectArray;
138typedef jobject jbyteArray;
139typedef jobject jshortArray;
140typedef jobject jintArray;
141typedef jobject jlongArray;
142typedef jobject jbooleanArray;
143typedef jobject jcharArray;
144typedef jobject jfloatArray;
145typedef jobject jdoubleArray;
146
147#define JNI_TRUE 1
148#define JNI_FALSE 0
149
150typedef const struct JNINativeInterface *JNIEnv;
151typedef const struct JNIInvokeInterface *JavaVM;
152
153# endif /* __cplusplus */
154
155/* Dummy defines. */
156typedef void *jfieldID;
157typedef void *jmethodID;
158
159#endif /* __GCJ_JNI_IMPL__ */
160
161/* Version numbers. */
162#define JNI_VERSION_1_1 0x00010001
163#define JNI_VERSION_1_2 0x00010002
164#define JNI_VERSION_1_4 0x00010004
165
166/* Used when releasing array elements. */
167#define JNI_COMMIT 1
168#define JNI_ABORT 2
169
170/* Error codes */
171#define JNI_OK 0
172#define JNI_ERR -1
173#define JNI_EDETACHED -2
174#define JNI_EVERSION -3
175
176/* Linkage and calling conventions. */
177#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32)
178
179#define JNIIMPORT __declspec(dllimport)
180#define JNIEXPORT __declspec(dllexport)
181#define JNICALL __stdcall
182
183#else
184
185#define JNIIMPORT
186#define JNIEXPORT
187#define JNICALL
188
189#endif /* !( _WIN32 || __WIN32__ || WIN32) */
190
191#ifdef __GCJ_JNI_IMPL__
192#define JNIIMPEXP JNIEXPORT
193#else
194#define JNIIMPEXP JNIIMPORT
195#endif /* ! __GCJ_JNI_IMPL__ */
196
197#ifdef __cplusplus
198extern "C"
199{
200#endif /* __cplusplus */
201
202/* These functions might be defined in libraries which we load; the
203 JNI implementation calls them at the appropriate times. */
204extern JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);
205extern JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);
206
207/* These functions are called by user code to start using the
208 invocation API. */
209extern JNIIMPEXP jint JNICALL JNI_GetDefaultJavaVMInitArgs (void *);
210extern JNIIMPEXP jint JNICALL JNI_CreateJavaVM (JavaVM **, void **, void *);
211extern JNIIMPEXP jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
212
213#ifdef __cplusplus
214};
215#endif /* __cplusplus */
216
217typedef union jvalue
218{
219 jboolean z;
220 jbyte b;
221 jchar c;
222 jshort s;
223 jint i;
224 jlong j;
225 jfloat f;
226 jdouble d;
227 jobject l;
228} jvalue;
229
230#ifdef __cplusplus
231typedef void * (*_Jv_func) (...);
232#else
233typedef void * (*_Jv_func) ();
234#endif
235
236/* This structure is used when registering native methods. */
237typedef struct
238{
239 char *name;
240 char *signature;
241 void *fnPtr; /* Sigh. */
242} JNINativeMethod;
243
244struct JNINativeInterface
245{
246 _Jv_func reserved0;
247 _Jv_func reserved1;
248 _Jv_func reserved2;
249 _Jv_func reserved3;
250
251 jint (JNICALL *GetVersion) (JNIEnv *);
252 jclass (JNICALL *DefineClass) (JNIEnv *, const char *,
253 jobject, const jbyte *,
254 jsize);
255 jclass (JNICALL *FindClass) (JNIEnv *, const char *);
256
257 jmethodID (JNICALL *FromReflectedMethod) (JNIEnv *, jobject);
258 jfieldID (JNICALL *FromReflectedField) (JNIEnv *, jobject);
259 jobject (JNICALL *ToReflectedMethod) (JNIEnv *, jclass,
260 jmethodID, jboolean);
261
262 jclass (JNICALL *GetSuperclass) (JNIEnv *, jclass);
263 jboolean (JNICALL *IsAssignableFrom) (JNIEnv *, jclass, jclass);
264
265 jobject (JNICALL *ToReflectedField) (JNIEnv *, jclass, jfieldID,
266 jboolean);
267
268 jint (JNICALL *Throw) (JNIEnv *, jthrowable);
269 jint (JNICALL *ThrowNew) (JNIEnv *, jclass,
270 const char *);
271 jthrowable (JNICALL *ExceptionOccurred) (JNIEnv *);
272 void (JNICALL *ExceptionDescribe) (JNIEnv *);
273 void (JNICALL *ExceptionClear) (JNIEnv *);
274 void (JNICALL *FatalError) (JNIEnv *, const char *);
275
276 jint (JNICALL *PushLocalFrame) (JNIEnv *, jint);
277 jobject (JNICALL *PopLocalFrame) (JNIEnv *, jobject);
278
279 jobject (JNICALL *NewGlobalRef) (JNIEnv *, jobject);
280 void (JNICALL *DeleteGlobalRef) (JNIEnv *, jobject);
281 void (JNICALL *DeleteLocalRef) (JNIEnv *, jobject);
282 jboolean (JNICALL *IsSameObject) (JNIEnv *, jobject,
283 jobject);
284
285 jobject (JNICALL *NewLocalRef) (JNIEnv *, jobject);
286 jint (JNICALL *EnsureLocalCapacity) (JNIEnv *, jint);
287
288 jobject (JNICALL *AllocObject) (JNIEnv *, jclass);
289 jobject (JNICALL *NewObject) (JNIEnv *, jclass,
290 jmethodID, ...);
291 jobject (JNICALL *NewObjectV) (JNIEnv *, jclass,
292 jmethodID, _Jv_va_list);
293 jobject (JNICALL *NewObjectA) (JNIEnv *, jclass,
294 jmethodID, jvalue *);
295
296 jclass (JNICALL *GetObjectClass) (JNIEnv *, jobject);
297 jboolean (JNICALL *IsInstanceOf) (JNIEnv *, jobject, jclass);
298 jmethodID (JNICALL *GetMethodID) (JNIEnv *, jclass,
299 const char *, const char *);
300
301 jobject (JNICALL *CallObjectMethod) (JNIEnv *, jobject, jmethodID, ...);
302 jobject (JNICALL *CallObjectMethodV) (JNIEnv *, jobject, jmethodID,
303 _Jv_va_list);
304 jobject (JNICALL *CallObjectMethodA) (JNIEnv *, jobject, jmethodID,
305 jvalue *);
306 jboolean (JNICALL *CallBooleanMethod) (JNIEnv *, jobject, jmethodID,
307 ...);
308 jboolean (JNICALL *CallBooleanMethodV) (JNIEnv *, jobject, jmethodID,
309 _Jv_va_list);
310 jboolean (JNICALL *CallBooleanMethodA) (JNIEnv *, jobject, jmethodID,
311 jvalue *);
312 jbyte (JNICALL *CallByteMethod) (JNIEnv *, jobject, jmethodID, ...);
313 jbyte (JNICALL *CallByteMethodV) (JNIEnv *, jobject, jmethodID,
314 _Jv_va_list);
315 jbyte (JNICALL *CallByteMethodA) (JNIEnv *, jobject, jmethodID,
316 jvalue *);
317 jchar (JNICALL *CallCharMethod) (JNIEnv *, jobject, jmethodID, ...);
318 jchar (JNICALL *CallCharMethodV) (JNIEnv *, jobject, jmethodID,
319 _Jv_va_list);
320 jchar (JNICALL *CallCharMethodA) (JNIEnv *, jobject, jmethodID,
321 jvalue *);
322 jshort (JNICALL *CallShortMethod) (JNIEnv *, jobject, jmethodID, ...);
323 jshort (JNICALL *CallShortMethodV) (JNIEnv *, jobject, jmethodID,
324 _Jv_va_list);
325 jshort (JNICALL *CallShortMethodA) (JNIEnv *, jobject, jmethodID,
326 jvalue *);
327 jint (JNICALL *CallIntMethod) (JNIEnv *, jobject, jmethodID, ...);
328 jint (JNICALL *CallIntMethodV) (JNIEnv *, jobject, jmethodID,
329 _Jv_va_list);
330 jint (JNICALL *CallIntMethodA) (JNIEnv *, jobject, jmethodID,
331 jvalue *);
332 jlong (JNICALL *CallLongMethod) (JNIEnv *, jobject, jmethodID, ...);
333 jlong (JNICALL *CallLongMethodV) (JNIEnv *, jobject, jmethodID,
334 _Jv_va_list);
335 jlong (JNICALL *CallLongMethodA) (JNIEnv *, jobject, jmethodID,
336 jvalue *);
337 jfloat (JNICALL *CallFloatMethod) (JNIEnv *, jobject, jmethodID, ...);
338 jfloat (JNICALL *CallFloatMethodV) (JNIEnv *, jobject, jmethodID,
339 _Jv_va_list);
340 jfloat (JNICALL *CallFloatMethodA) (JNIEnv *, jobject, jmethodID,
341 jvalue *);
342 jdouble (JNICALL *CallDoubleMethod) (JNIEnv *, jobject, jmethodID, ...);
343 jdouble (JNICALL *CallDoubleMethodV) (JNIEnv *, jobject, jmethodID,
344 _Jv_va_list);
345 jdouble (JNICALL *CallDoubleMethodA) (JNIEnv *, jobject, jmethodID,
346 jvalue *);
347 void (JNICALL *CallVoidMethod) (JNIEnv *, jobject, jmethodID, ...);
348 void (JNICALL *CallVoidMethodV) (JNIEnv *, jobject, jmethodID,
349 _Jv_va_list);
350 void (JNICALL *CallVoidMethodA) (JNIEnv *, jobject, jmethodID,
351 jvalue *);
352
353 jobject (JNICALL *CallNonvirtualObjectMethod) (JNIEnv *, jobject, jclass,
354 jmethodID, ...);
355 jobject (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
356 jmethodID, _Jv_va_list);
357 jobject (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
358 jmethodID, jvalue *);
359 jboolean (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
360 jmethodID, ...);
361 jboolean (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
362 jmethodID, _Jv_va_list);
363 jboolean (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
364 jmethodID, jvalue *);
365 jbyte (JNICALL *CallNonvirtualByteMethod) (JNIEnv *, jobject, jclass,
366 jmethodID, ...);
367 jbyte (JNICALL *CallNonvirtualByteMethodV) (JNIEnv *, jobject, jclass,
368 jmethodID, _Jv_va_list);
369 jbyte (JNICALL *CallNonvirtualByteMethodA) (JNIEnv *, jobject, jclass,
370 jmethodID, jvalue *);
371 jchar (JNICALL *CallNonvirtualCharMethod) (JNIEnv *, jobject, jclass,
372 jmethodID, ...);
373 jchar (JNICALL *CallNonvirtualCharMethodV) (JNIEnv *, jobject, jclass,
374 jmethodID, _Jv_va_list);
375 jchar (JNICALL *CallNonvirtualCharMethodA) (JNIEnv *, jobject, jclass,
376 jmethodID, jvalue *);
377 jshort (JNICALL *CallNonvirtualShortMethod) (JNIEnv *, jobject, jclass,
378 jmethodID, ...);
379 jshort (JNICALL *CallNonvirtualShortMethodV) (JNIEnv *, jobject, jclass,
380 jmethodID, _Jv_va_list);
381 jshort (JNICALL *CallNonvirtualShortMethodA) (JNIEnv *, jobject, jclass,
382 jmethodID, jvalue *);
383 jint (JNICALL *CallNonvirtualIntMethod) (JNIEnv *, jobject, jclass,
384 jmethodID, ...);
385 jint (JNICALL *CallNonvirtualIntMethodV) (JNIEnv *, jobject, jclass,
386 jmethodID, _Jv_va_list);
387 jint (JNICALL *CallNonvirtualIntMethodA) (JNIEnv *, jobject, jclass,
388 jmethodID, jvalue *);
389 jlong (JNICALL *CallNonvirtualLongMethod) (JNIEnv *, jobject, jclass,
390 jmethodID, ...);
391 jlong (JNICALL *CallNonvirtualLongMethodV) (JNIEnv *, jobject, jclass,
392 jmethodID, _Jv_va_list);
393 jlong (JNICALL *CallNonvirtualLongMethodA) (JNIEnv *, jobject, jclass,
394 jmethodID, jvalue *);
395 jfloat (JNICALL *CallNonvirtualFloatMethod) (JNIEnv *, jobject, jclass,
396 jmethodID, ...);
397 jfloat (JNICALL *CallNonvirtualFloatMethodV) (JNIEnv *, jobject, jclass,
398 jmethodID, _Jv_va_list);
399 jfloat (JNICALL *CallNonvirtualFloatMethodA) (JNIEnv *, jobject, jclass,
400 jmethodID, jvalue *);
401 jdouble (JNICALL *CallNonvirtualDoubleMethod) (JNIEnv *, jobject, jclass,
402 jmethodID, ...);
403 jdouble (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
404 jmethodID, _Jv_va_list);
405 jdouble (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
406 jmethodID, jvalue *);
407 void (JNICALL *CallNonvirtualVoidMethod) (JNIEnv *, jobject, jclass,
408 jmethodID, ...);
409 void (JNICALL *CallNonvirtualVoidMethodV) (JNIEnv *, jobject, jclass,
410 jmethodID, _Jv_va_list);
411 void (JNICALL *CallNonvirtualVoidMethodA) (JNIEnv *, jobject, jclass,
412 jmethodID, jvalue *);
413
414 jfieldID (JNICALL *GetFieldID) (JNIEnv *, jclass, const char *,
415 const char *);
416
417 jobject (JNICALL *GetObjectField) (JNIEnv *, jobject, jfieldID);
418 jboolean (JNICALL *GetBooleanField) (JNIEnv *, jobject, jfieldID);
419 jbyte (JNICALL *GetByteField) (JNIEnv *, jobject, jfieldID);
420 jchar (JNICALL *GetCharField) (JNIEnv *, jobject, jfieldID);
421 jshort (JNICALL *GetShortField) (JNIEnv *, jobject, jfieldID);
422 jint (JNICALL *GetIntField) (JNIEnv *, jobject, jfieldID);
423 jlong (JNICALL *GetLongField) (JNIEnv *, jobject, jfieldID);
424 jfloat (JNICALL *GetFloatField) (JNIEnv *, jobject, jfieldID);
425 jdouble (JNICALL *GetDoubleField) (JNIEnv *, jobject, jfieldID);
426
427 void (JNICALL *SetObjectField) (JNIEnv *, jobject,
428 jfieldID, jobject);
429 void (JNICALL *SetBooleanField) (JNIEnv *, jobject,
430 jfieldID, jboolean);
431 void (JNICALL *SetByteField) (JNIEnv *, jobject,
432 jfieldID, jbyte);
433 void (JNICALL *SetCharField) (JNIEnv *, jobject,
434 jfieldID, jchar);
435 void (JNICALL *SetShortField) (JNIEnv *, jobject,
436 jfieldID, jshort);
437 void (JNICALL *SetIntField) (JNIEnv *, jobject,
438 jfieldID, jint);
439 void (JNICALL *SetLongField) (JNIEnv *, jobject,
440 jfieldID, jlong);
441 void (JNICALL *SetFloatField) (JNIEnv *, jobject,
442 jfieldID, jfloat);
443 void (JNICALL *SetDoubleField) (JNIEnv *, jobject,
444 jfieldID, jdouble);
445
446 jmethodID (JNICALL *GetStaticMethodID) (JNIEnv *, jclass, const char *,
447 const char *);
448
449 jobject (JNICALL *CallStaticObjectMethod) (JNIEnv *, jclass, jmethodID,
450 ...);
451 jobject (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
452 _Jv_va_list);
453 jobject (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
454 jvalue *);
455 jboolean (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
456 ...);
457 jboolean (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
458 _Jv_va_list);
459 jboolean (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
460 jvalue *);
461 jbyte (JNICALL *CallStaticByteMethod) (JNIEnv *, jclass, jmethodID,
462 ...);
463 jbyte (JNICALL *CallStaticByteMethodV) (JNIEnv *, jclass, jmethodID,
464 _Jv_va_list);
465 jbyte (JNICALL *CallStaticByteMethodA) (JNIEnv *, jclass, jmethodID,
466 jvalue *);
467 jchar (JNICALL *CallStaticCharMethod) (JNIEnv *, jclass, jmethodID,
468 ...);
469 jchar (JNICALL *CallStaticCharMethodV) (JNIEnv *, jclass, jmethodID,
470 _Jv_va_list);
471 jchar (JNICALL *CallStaticCharMethodA) (JNIEnv *, jclass, jmethodID,
472 jvalue *);
473 jshort (JNICALL *CallStaticShortMethod) (JNIEnv *, jclass, jmethodID,
474 ...);
475 jshort (JNICALL *CallStaticShortMethodV) (JNIEnv *, jclass, jmethodID,
476 _Jv_va_list);
477 jshort (JNICALL *CallStaticShortMethodA) (JNIEnv *, jclass, jmethodID,
478 jvalue *);
479 jint (JNICALL *CallStaticIntMethod) (JNIEnv *, jclass, jmethodID,
480 ...);
481 jint (JNICALL *CallStaticIntMethodV) (JNIEnv *, jclass, jmethodID,
482 _Jv_va_list);
483 jint (JNICALL *CallStaticIntMethodA) (JNIEnv *, jclass, jmethodID,
484 jvalue *);
485 jlong (JNICALL *CallStaticLongMethod) (JNIEnv *, jclass, jmethodID,
486 ...);
487 jlong (JNICALL *CallStaticLongMethodV) (JNIEnv *, jclass, jmethodID,
488 _Jv_va_list);
489 jlong (JNICALL *CallStaticLongMethodA) (JNIEnv *, jclass, jmethodID,
490 jvalue *);
491 jfloat (JNICALL *CallStaticFloatMethod) (JNIEnv *, jclass, jmethodID,
492 ...);
493 jfloat (JNICALL *CallStaticFloatMethodV) (JNIEnv *, jclass, jmethodID,
494 _Jv_va_list);
495 jfloat (JNICALL *CallStaticFloatMethodA) (JNIEnv *, jclass, jmethodID,
496 jvalue *);
497 jdouble (JNICALL *CallStaticDoubleMethod) (JNIEnv *, jclass, jmethodID,
498 ...);
499 jdouble (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
500 _Jv_va_list);
501 jdouble (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
502 jvalue *);
503 void (JNICALL *CallStaticVoidMethod) (JNIEnv *, jclass, jmethodID,
504 ...);
505 void (JNICALL *CallStaticVoidMethodV) (JNIEnv *, jclass, jmethodID,
506 _Jv_va_list);
507 void (JNICALL *CallStaticVoidMethodA) (JNIEnv *, jclass, jmethodID,
508 jvalue *);
509
510 jfieldID (JNICALL *GetStaticFieldID) (JNIEnv *, jclass, const char *,
511 const char *);
512
513 jobject (JNICALL *GetStaticObjectField) (JNIEnv *, jclass, jfieldID);
514 jboolean (JNICALL *GetStaticBooleanField) (JNIEnv *, jclass, jfieldID);
515 jbyte (JNICALL *GetStaticByteField) (JNIEnv *, jclass, jfieldID);
516 jchar (JNICALL *GetStaticCharField) (JNIEnv *, jclass, jfieldID);
517 jshort (JNICALL *GetStaticShortField) (JNIEnv *, jclass, jfieldID);
518 jint (JNICALL *GetStaticIntField) (JNIEnv *, jclass, jfieldID);
519 jlong (JNICALL *GetStaticLongField) (JNIEnv *, jclass, jfieldID);
520 jfloat (JNICALL *GetStaticFloatField) (JNIEnv *, jclass, jfieldID);
521 jdouble (JNICALL *GetStaticDoubleField) (JNIEnv *, jclass, jfieldID);
522
523 void (JNICALL *SetStaticObjectField) (JNIEnv *, jclass,
524 jfieldID, jobject);
525 void (JNICALL *SetStaticBooleanField) (JNIEnv *, jclass,
526 jfieldID, jboolean);
527 void (JNICALL *SetStaticByteField) (JNIEnv *, jclass,
528 jfieldID, jbyte);
529 void (JNICALL *SetStaticCharField) (JNIEnv *, jclass,
530 jfieldID, jchar);
531 void (JNICALL *SetStaticShortField) (JNIEnv *, jclass,
532 jfieldID, jshort);
533 void (JNICALL *SetStaticIntField) (JNIEnv *, jclass,
534 jfieldID, jint);
535 void (JNICALL *SetStaticLongField) (JNIEnv *, jclass,
536 jfieldID, jlong);
537 void (JNICALL *SetStaticFloatField) (JNIEnv *, jclass,
538 jfieldID, jfloat);
539 void (JNICALL *SetStaticDoubleField) (JNIEnv *, jclass,
540 jfieldID, jdouble);
541
542 jstring (JNICALL *NewString) (JNIEnv *, const jchar *, jsize);
543 jsize (JNICALL *GetStringLength) (JNIEnv *, jstring);
544 const jchar * (JNICALL *GetStringChars) (JNIEnv *, jstring, jboolean *);
545 void (JNICALL *ReleaseStringChars) (JNIEnv *, jstring, const jchar *);
546 jstring (JNICALL *NewStringUTF) (JNIEnv *, const char *);
547 jsize (JNICALL *GetStringUTFLength) (JNIEnv *, jstring);
548 const char * (JNICALL *GetStringUTFChars) (JNIEnv *, jstring, jboolean *);
549 void (JNICALL *ReleaseStringUTFChars) (JNIEnv *, jstring, const char *);
550 jsize (JNICALL *GetArrayLength) (JNIEnv *, jarray);
551 jarray (JNICALL *NewObjectArray) (JNIEnv *, jsize, jclass, jobject);
552 jobject (JNICALL *GetObjectArrayElement) (JNIEnv *, jobjectArray, jsize);
553 void (JNICALL *SetObjectArrayElement) (JNIEnv *, jobjectArray, jsize,
554 jobject);
555
556 jbooleanArray (JNICALL *NewBooleanArray) (JNIEnv *, jsize);
557 jbyteArray (JNICALL *NewByteArray) (JNIEnv *, jsize);
558 jcharArray (JNICALL *NewCharArray) (JNIEnv *, jsize);
559 jshortArray (JNICALL *NewShortArray) (JNIEnv *, jsize);
560 jintArray (JNICALL *NewIntArray) (JNIEnv *, jsize);
561 jlongArray (JNICALL *NewLongArray) (JNIEnv *, jsize);
562 jfloatArray (JNICALL *NewFloatArray) (JNIEnv *, jsize);
563 jdoubleArray (JNICALL *NewDoubleArray) (JNIEnv *, jsize);
564
565 jboolean * (JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray,
566 jboolean *);
567 jbyte * (JNICALL *GetByteArrayElements) (JNIEnv *, jbyteArray,
568 jboolean *);
569 jchar * (JNICALL *GetCharArrayElements) (JNIEnv *, jcharArray,
570 jboolean *);
571 jshort * (JNICALL *GetShortArrayElements) (JNIEnv *, jshortArray,
572 jboolean *);
573 jint * (JNICALL *GetIntArrayElements) (JNIEnv *, jintArray,
574 jboolean *);
575 jlong * (JNICALL *GetLongArrayElements) (JNIEnv *, jlongArray,
576 jboolean *);
577 jfloat * (JNICALL *GetFloatArrayElements) (JNIEnv *, jfloatArray,
578 jboolean *);
579 jdouble * (JNICALL *GetDoubleArrayElements) (JNIEnv *, jdoubleArray,
580 jboolean *);
581
582 void (JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray,
583 jboolean *, jint);
584 void (JNICALL *ReleaseByteArrayElements) (JNIEnv *, jbyteArray,
585 jbyte *, jint);
586 void (JNICALL *ReleaseCharArrayElements) (JNIEnv *, jcharArray,
587 jchar *, jint);
588 void (JNICALL *ReleaseShortArrayElements) (JNIEnv *, jshortArray,
589 jshort *, jint);
590 void (JNICALL *ReleaseIntArrayElements) (JNIEnv *, jintArray,
591 jint *, jint);
592 void (JNICALL *ReleaseLongArrayElements) (JNIEnv *, jlongArray,
593 jlong *, jint);
594 void (JNICALL *ReleaseFloatArrayElements) (JNIEnv *, jfloatArray,
595 jfloat *, jint);
596 void (JNICALL *ReleaseDoubleArrayElements) (JNIEnv *, jdoubleArray,
597 jdouble *, jint);
598
599 void (JNICALL *GetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
600 jsize, jsize, jboolean *);
601 void (JNICALL *GetByteArrayRegion) (JNIEnv *, jbyteArray,
602 jsize, jsize, jbyte *);
603 void (JNICALL *GetCharArrayRegion) (JNIEnv *, jcharArray,
604 jsize, jsize, jchar *);
605 void (JNICALL *GetShortArrayRegion) (JNIEnv *, jshortArray,
606 jsize, jsize, jshort *);
607 void (JNICALL *GetIntArrayRegion) (JNIEnv *, jintArray,
608 jsize, jsize, jint *);
609 void (JNICALL *GetLongArrayRegion) (JNIEnv *, jlongArray,
610 jsize, jsize, jlong *);
611 void (JNICALL *GetFloatArrayRegion) (JNIEnv *, jfloatArray,
612 jsize, jsize, jfloat *);
613 void (JNICALL *GetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
614 jsize, jsize, jdouble *);
615
616 void (JNICALL *SetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
617 jsize, jsize, jboolean *);
618 void (JNICALL *SetByteArrayRegion) (JNIEnv *, jbyteArray,
619 jsize, jsize, jbyte *);
620 void (JNICALL *SetCharArrayRegion) (JNIEnv *, jcharArray,
621 jsize, jsize, jchar *);
622 void (JNICALL *SetShortArrayRegion) (JNIEnv *, jshortArray,
623 jsize, jsize, jshort *);
624 void (JNICALL *SetIntArrayRegion) (JNIEnv *, jintArray,
625 jsize, jsize, jint *);
626 void (JNICALL *SetLongArrayRegion) (JNIEnv *, jlongArray,
627 jsize, jsize, jlong *);
628 void (JNICALL *SetFloatArrayRegion) (JNIEnv *, jfloatArray,
629 jsize, jsize, jfloat *);
630 void (JNICALL *SetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
631 jsize, jsize, jdouble *);
632
633 jint (JNICALL *RegisterNatives) (JNIEnv *, jclass,
634 const JNINativeMethod *,
635 jint);
636 jint (JNICALL *UnregisterNatives) (JNIEnv *, jclass);
637 jint (JNICALL *MonitorEnter) (JNIEnv *, jobject);
638 jint (JNICALL *MonitorExit) (JNIEnv *, jobject);
639 jint (JNICALL *GetJavaVM) (JNIEnv *, JavaVM **);
640
641 void (JNICALL *GetStringRegion) (JNIEnv *, jstring, jsize,
642 jsize, jchar *);
643 void (JNICALL *GetStringUTFRegion) (JNIEnv *, jstring, jsize,
644 jsize, char *);
645
646 void * (JNICALL *GetPrimitiveArrayCritical) (JNIEnv *, jarray,
647 jboolean *);
648 void (JNICALL *ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *,
649 jint);
650
651 const jchar * (JNICALL *GetStringCritical) (JNIEnv *, jstring,
652 jboolean *);
653 void (JNICALL *ReleaseStringCritical) (JNIEnv *, jstring,
654 const jchar *);
655
656 jweak (JNICALL *NewWeakGlobalRef) (JNIEnv *, jobject);
657 void (JNICALL *DeleteWeakGlobalRef) (JNIEnv *, jweak);
658
659 jboolean (JNICALL *ExceptionCheck) (JNIEnv *);
660
661 jobject (JNICALL *NewDirectByteBuffer) (JNIEnv *, void *, jlong);
662 void * (JNICALL *GetDirectBufferAddress) (JNIEnv *, jobject);
663 jlong (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);
664};
665
666#ifdef __cplusplus
667
668class _Jv_JNIEnv
669{
670public:
671 /* The method table. */
672 struct JNINativeInterface *p;
673
674 /* This is ugly, but we must live with it. */
675#ifndef __GCJ_JNI_IMPL__
676private:
677#endif
678 /* The current exception. */
679 jthrowable ex;
680
681 /* The class of the current native method. */
682 jclass klass;
683
684 /* The chain of local frames. */
685 struct _Jv_JNI_LocalFrame *locals;
686
687public:
688 jint GetVersion ()
689 { return p->GetVersion (this); }
690
691 jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
692 jsize val2)
693 { return p->DefineClass (this, name, obj0, val1, val2); }
694
695 jclass FindClass (const char * val0)
696 { return p->FindClass (this, val0); }
697
698 jmethodID FromReflectedMethod (jobject obj0)
699 { return p->FromReflectedMethod (this, obj0); }
700
701 jfieldID FromReflectedField (jobject obj0)
702 { return p->FromReflectedField (this, obj0); }
703
704 jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
705 { return p->ToReflectedMethod (this, cl0, meth1, val2); }
706
707 jclass GetSuperclass (jclass cl0)
708 { return p->GetSuperclass (this, cl0); }
709
710 jboolean IsAssignableFrom (jclass cl0, jclass cl1)
711 { return p->IsAssignableFrom (this, cl0, cl1); }
712
713 jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
714 { return p->ToReflectedField (this, cl0, fld1, val2); }
715
716 jint Throw (jthrowable val0)
717 { return p->Throw (this, val0); }
718
719 jint ThrowNew (jclass cl0, const char * val1)
720 { return p->ThrowNew (this, cl0, val1); }
721
722 jthrowable ExceptionOccurred ()
723 { return p->ExceptionOccurred (this); }
724
725 void ExceptionDescribe ()
726 { p->ExceptionDescribe (this); }
727
728 void ExceptionClear ()
729 { p->ExceptionClear (this); }
730
731 void FatalError (const char * val0)
732 { p->FatalError (this, val0); }
733
734 jint PushLocalFrame (jint val0)
735 { return p->PushLocalFrame (this, val0); }
736
737 jobject PopLocalFrame (jobject obj0)
738 { return p->PopLocalFrame (this, obj0); }
739
740 jobject NewGlobalRef (jobject obj0)
741 { return p->NewGlobalRef (this, obj0); }
742
743 void DeleteGlobalRef (jobject obj0)
744 { p->DeleteGlobalRef (this, obj0); }
745
746 void DeleteLocalRef (jobject obj0)
747 { p->DeleteLocalRef (this, obj0); }
748
749 jboolean IsSameObject (jobject obj0, jobject obj1)
750 { return p->IsSameObject (this, obj0, obj1); }
751
752 jobject NewLocalRef (jobject obj0)
753 { return p->NewLocalRef (this, obj0); }
754
755 jint EnsureLocalCapacity (jint val0)
756 { return p->EnsureLocalCapacity (this, val0); }
757
758 jobject AllocObject (jclass cl0)
759 { return p->AllocObject (this, cl0); }
760
761 jobject NewObject (jclass cl0, jmethodID meth1, ...)
762 {
763 _Jv_va_list args;
764 va_start (args, meth1);
765 jobject result = p->NewObjectV (this, cl0, meth1, args);
766 va_end (args);
767 return result;
768 }
769
770 jobject NewObjectV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
771 { return p->NewObjectV (this, cl0, meth1, val2); }
772
773 jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
774 { return p->NewObjectA (this, cl0, meth1, val2); }
775
776 jclass GetObjectClass (jobject obj0)
777 { return p->GetObjectClass (this, obj0); }
778
779 jboolean IsInstanceOf (jobject obj0, jclass cl1)
780 { return p->IsInstanceOf (this, obj0, cl1); }
781
782 jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
783 { return p->GetMethodID (this, cl0, val1, val2); }
784
785 jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
786 {
787 _Jv_va_list args;
788 va_start (args, meth1);
789 jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
790 va_end (args);
791 return result;
792 }
793
794 jobject CallObjectMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
795 { return p->CallObjectMethodV (this, obj0, meth1, val2); }
796
797 jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
798 { return p->CallObjectMethodA (this, obj0, meth1, val2); }
799
800 jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
801 {
802 _Jv_va_list args;
803 va_start (args, meth1);
804 jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
805 va_end (args);
806 return result;
807 }
808
809 jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
810 { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
811
812 jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
813 { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
814
815 jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
816 {
817 _Jv_va_list args;
818 va_start (args, meth1);
819 jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
820 va_end (args);
821 return result;
822 }
823
824 jbyte CallByteMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
825 { return p->CallByteMethodV (this, obj0, meth1, val2); }
826
827 jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
828 { return p->CallByteMethodA (this, obj0, meth1, val2); }
829
830 jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
831 {
832 _Jv_va_list args;
833 va_start (args, meth1);
834 jchar result = p->CallCharMethodV (this, obj0, meth1, args);
835 va_end (args);
836 return result;
837 }
838
839 jchar CallCharMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
840 { return p->CallCharMethodV (this, obj0, meth1, val2); }
841
842 jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
843 { return p->CallCharMethodA (this, obj0, meth1, val2); }
844
845 jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
846 {
847 _Jv_va_list args;
848 va_start (args, meth1);
849 jshort result = p->CallShortMethodV (this, obj0, meth1, args);
850 va_end (args);
851 return result;
852 }
853
854 jshort CallShortMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
855 { return p->CallShortMethodV (this, obj0, meth1, val2); }
856
857 jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
858 { return p->CallShortMethodA (this, obj0, meth1, val2); }
859
860 jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
861 {
862 _Jv_va_list args;
863 va_start (args, meth1);
864 jint result = p->CallIntMethodV (this, obj0, meth1, args);
865 va_end (args);
866 return result;
867 }
868
869 jint CallIntMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
870 { return p->CallIntMethodV (this, obj0, meth1, val2); }
871
872 jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
873 { return p->CallIntMethodA (this, obj0, meth1, val2); }
874
875 jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
876 {
877 _Jv_va_list args;
878 va_start (args, meth1);
879 jlong result = p->CallLongMethodV (this, obj0, meth1, args);
880 va_end (args);
881 return result;
882 }
883
884 jlong CallLongMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
885 { return p->CallLongMethodV (this, obj0, meth1, val2); }
886
887 jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
888 { return p->CallLongMethodA (this, obj0, meth1, val2); }
889
890 jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
891 {
892 _Jv_va_list args;
893 va_start (args, meth1);
894 jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
895 va_end (args);
896 return result;
897 }
898
899 jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
900 { return p->CallFloatMethodV (this, obj0, meth1, val2); }
901
902 jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
903 { return p->CallFloatMethodA (this, obj0, meth1, val2); }
904
905 jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
906 {
907 _Jv_va_list args;
908 va_start (args, meth1);
909 jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
910 va_end (args);
911 return result;
912 }
913
914 jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
915 { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
916
917 jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
918 { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
919
920 void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
921 {
922 _Jv_va_list args;
923 va_start (args, meth1);
924 p->CallVoidMethodV (this, obj0, meth1, args);
925 va_end (args);
926 }
927
928 void CallVoidMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
929 { p->CallVoidMethodV (this, obj0, meth1, val2); }
930
931 void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
932 { p->CallVoidMethodA (this, obj0, meth1, val2); }
933
934 jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
935 {
936 _Jv_va_list args;
937 va_start (args, meth2);
938 jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
939 va_end (args);
940 return result;
941 }
942
943 jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
944 { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
945
946 jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
947 { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
948
949 jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
950 {
951 _Jv_va_list args;
952 va_start (args, meth2);
953 jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
954 va_end (args);
955 return result;
956 }
957
958 jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
959 { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
960
961 jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
962 { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
963
964 jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
965 {
966 _Jv_va_list args;
967 va_start (args, meth2);
968 jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
969 va_end (args);
970 return result;
971 }
972
973 jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
974 { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
975
976 jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
977 { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
978
979 jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
980 {
981 _Jv_va_list args;
982 va_start (args, meth2);
983 jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
984 va_end (args);
985 return result;
986 }
987
988 jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
989 { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
990
991 jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
992 { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
993
994 jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
995 {
996 _Jv_va_list args;
997 va_start (args, meth2);
998 jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
999 va_end (args);
1000 return result;
1001 }
1002
1003 jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1004 { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
1005
1006 jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1007 { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
1008
1009 jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1010 {
1011 _Jv_va_list args;
1012 va_start (args, meth2);
1013 jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
1014 va_end (args);
1015 return result;
1016 }
1017
1018 jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1019 { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
1020
1021 jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1022 { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
1023
1024 jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1025 {
1026 _Jv_va_list args;
1027 va_start (args, meth2);
1028 jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
1029 va_end (args);
1030 return result;
1031 }
1032
1033 jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1034 { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
1035
1036 jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1037 { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
1038
1039 jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1040 {
1041 _Jv_va_list args;
1042 va_start (args, meth2);
1043 jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
1044 va_end (args);
1045 return result;
1046 }
1047
1048 jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1049 { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
1050
1051 jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1052 { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
1053
1054 jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1055 {
1056 _Jv_va_list args;
1057 va_start (args, meth2);
1058 jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
1059 va_end (args);
1060 return result;
1061 }
1062
1063 jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1064 { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
1065
1066 jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1067 { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
1068
1069 void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1070 {
1071 _Jv_va_list args;
1072 va_start (args, meth2);
1073 p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
1074 va_end (args);
1075 }
1076
1077 void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
1078 { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
1079
1080 void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
1081 { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
1082
1083 jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
1084 { return p->GetFieldID (this, cl0, val1, val2); }
1085
1086 jobject GetObjectField (jobject obj0, jfieldID fld1)
1087 { return p->GetObjectField (this, obj0, fld1); }
1088
1089 jboolean GetBooleanField (jobject obj0, jfieldID fld1)
1090 { return p->GetBooleanField (this, obj0, fld1); }
1091
1092 jbyte GetByteField (jobject obj0, jfieldID fld1)
1093 { return p->GetByteField (this, obj0, fld1); }
1094
1095 jchar GetCharField (jobject obj0, jfieldID fld1)
1096 { return p->GetCharField (this, obj0, fld1); }
1097
1098 jshort GetShortField (jobject obj0, jfieldID fld1)
1099 { return p->GetShortField (this, obj0, fld1); }
1100
1101 jint GetIntField (jobject obj0, jfieldID fld1)
1102 { return p->GetIntField (this, obj0, fld1); }
1103
1104 jlong GetLongField (jobject obj0, jfieldID fld1)
1105 { return p->GetLongField (this, obj0, fld1); }
1106
1107 jfloat GetFloatField (jobject obj0, jfieldID fld1)
1108 { return p->GetFloatField (this, obj0, fld1); }
1109
1110 jdouble GetDoubleField (jobject obj0, jfieldID fld1)
1111 { return p->GetDoubleField (this, obj0, fld1); }
1112
1113 void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
1114 { p->SetObjectField (this, obj0, fld1, obj2); }
1115
1116 void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
1117 { p->SetBooleanField (this, obj0, fld1, val2); }
1118
1119 void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
1120 { p->SetByteField (this, obj0, fld1, val2); }
1121
1122 void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
1123 { p->SetCharField (this, obj0, fld1, val2); }
1124
1125 void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
1126 { p->SetShortField (this, obj0, fld1, val2); }
1127
1128 void SetIntField (jobject obj0, jfieldID fld1, jint val2)
1129 { p->SetIntField (this, obj0, fld1, val2); }
1130
1131 void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
1132 { p->SetLongField (this, obj0, fld1, val2); }
1133
1134 void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
1135 { p->SetFloatField (this, obj0, fld1, val2); }
1136
1137 void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
1138 { p->SetDoubleField (this, obj0, fld1, val2); }
1139
1140 jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
1141 { return p->GetStaticMethodID (this, cl0, val1, val2); }
1142
1143 jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
1144 {
1145 _Jv_va_list args;
1146 va_start (args, meth1);
1147 jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
1148 va_end (args);
1149 return result;
1150 }
1151
1152 jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1153 { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
1154
1155 jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1156 { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
1157
1158 jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
1159 {
1160 _Jv_va_list args;
1161 va_start (args, meth1);
1162 jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
1163 va_end (args);
1164 return result;
1165 }
1166
1167 jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1168 { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
1169
1170 jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1171 { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
1172
1173 jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
1174 {
1175 _Jv_va_list args;
1176 va_start (args, meth1);
1177 jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
1178 va_end (args);
1179 return result;
1180 }
1181
1182 jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1183 { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
1184
1185 jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1186 { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
1187
1188 jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
1189 {
1190 _Jv_va_list args;
1191 va_start (args, meth1);
1192 jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
1193 va_end (args);
1194 return result;
1195 }
1196
1197 jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1198 { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
1199
1200 jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1201 { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
1202
1203 jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
1204 {
1205 _Jv_va_list args;
1206 va_start (args, meth1);
1207 jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
1208 va_end (args);
1209 return result;
1210 }
1211
1212 jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1213 { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
1214
1215 jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1216 { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
1217
1218 jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
1219 {
1220 _Jv_va_list args;
1221 va_start (args, meth1);
1222 jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
1223 va_end (args);
1224 return result;
1225 }
1226
1227 jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1228 { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
1229
1230 jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1231 { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
1232
1233 jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
1234 {
1235 _Jv_va_list args;
1236 va_start (args, meth1);
1237 jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
1238 va_end (args);
1239 return result;
1240 }
1241
1242 jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1243 { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
1244
1245 jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1246 { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
1247
1248 jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
1249 {
1250 _Jv_va_list args;
1251 va_start (args, meth1);
1252 jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
1253 va_end (args);
1254 return result;
1255 }
1256
1257 jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1258 { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
1259
1260 jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1261 { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
1262
1263 jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
1264 {
1265 _Jv_va_list args;
1266 va_start (args, meth1);
1267 jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
1268 va_end (args);
1269 return result;
1270 }
1271
1272 jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1273 { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
1274
1275 jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1276 { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
1277
1278 void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
1279 {
1280 _Jv_va_list args;
1281 va_start (args, meth1);
1282 p->CallStaticVoidMethodV (this, cl0, meth1, args);
1283 va_end (args);
1284 }
1285
1286 void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
1287 { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
1288
1289 void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
1290 { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
1291
1292 jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
1293 { return p->GetStaticFieldID (this, cl0, val1, val2); }
1294
1295 jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
1296 { return p->GetStaticObjectField (this, cl0, fld1); }
1297
1298 jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
1299 { return p->GetStaticBooleanField (this, cl0, fld1); }
1300
1301 jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
1302 { return p->GetStaticByteField (this, cl0, fld1); }
1303
1304 jchar GetStaticCharField (jclass cl0, jfieldID fld1)
1305 { return p->GetStaticCharField (this, cl0, fld1); }
1306
1307 jshort GetStaticShortField (jclass cl0, jfieldID fld1)
1308 { return p->GetStaticShortField (this, cl0, fld1); }
1309
1310 jint GetStaticIntField (jclass cl0, jfieldID fld1)
1311 { return p->GetStaticIntField (this, cl0, fld1); }
1312
1313 jlong GetStaticLongField (jclass cl0, jfieldID fld1)
1314 { return p->GetStaticLongField (this, cl0, fld1); }
1315
1316 jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
1317 { return p->GetStaticFloatField (this, cl0, fld1); }
1318
1319 jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
1320 { return p->GetStaticDoubleField (this, cl0, fld1); }
1321
1322 void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
1323 { p->SetStaticObjectField (this, cl0, fld1, obj2); }
1324
1325 void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
1326 { p->SetStaticBooleanField (this, cl0, fld1, val2); }
1327
1328 void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
1329 { p->SetStaticByteField (this, cl0, fld1, val2); }
1330
1331 void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
1332 { p->SetStaticCharField (this, cl0, fld1, val2); }
1333
1334 void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
1335 { p->SetStaticShortField (this, cl0, fld1, val2); }
1336
1337 void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
1338 { p->SetStaticIntField (this, cl0, fld1, val2); }
1339
1340 void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
1341 { p->SetStaticLongField (this, cl0, fld1, val2); }
1342
1343 void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
1344 { p->SetStaticFloatField (this, cl0, fld1, val2); }
1345
1346 void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
1347 { p->SetStaticDoubleField (this, cl0, fld1, val2); }
1348
1349 jstring NewString (const jchar * val0, jsize val1)
1350 { return p->NewString (this, val0, val1); }
1351
1352 jint GetStringLength (jstring val0)
1353 { return p->GetStringLength (this, val0); }
1354
1355 const jchar * GetStringChars (jstring val0, jboolean * val1)
1356 { return p->GetStringChars (this, val0, val1); }
1357
1358 void ReleaseStringChars (jstring val0, const jchar * val1)
1359 { p->ReleaseStringChars (this, val0, val1); }
1360
1361 jstring NewStringUTF (const char * val0)
1362 { return p->NewStringUTF (this, val0); }
1363
1364 jsize GetStringUTFLength (jstring val0)
1365 { return p->GetStringUTFLength (this, val0); }
1366
1367 const char * GetStringUTFChars (jstring val0, jboolean * val1)
1368 { return p->GetStringUTFChars (this, val0, val1); }
1369
1370 void ReleaseStringUTFChars (jstring val0, const char * val1)
1371 { p->ReleaseStringUTFChars (this, val0, val1); }
1372
1373 jsize GetArrayLength (jarray val0)
1374 { return p->GetArrayLength (this, val0); }
1375
1376 jarray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
1377 { return p->NewObjectArray (this, val0, cl1, obj2); }
1378
1379 jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
1380 { return p->GetObjectArrayElement (this, val0, val1); }
1381
1382 void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
1383 { p->SetObjectArrayElement (this, val0, val1, obj2); }
1384
1385 jbooleanArray NewBooleanArray (jsize val0)
1386 { return p->NewBooleanArray (this, val0); }
1387
1388 jbyteArray NewByteArray (jsize val0)
1389 { return p->NewByteArray (this, val0); }
1390
1391 jcharArray NewCharArray (jsize val0)
1392 { return p->NewCharArray (this, val0); }
1393
1394 jshortArray NewShortArray (jsize val0)
1395 { return p->NewShortArray (this, val0); }
1396
1397 jintArray NewIntArray (jsize val0)
1398 { return p->NewIntArray (this, val0); }
1399
1400 jlongArray NewLongArray (jsize val0)
1401 { return p->NewLongArray (this, val0); }
1402
1403 jfloatArray NewFloatArray (jsize val0)
1404 { return p->NewFloatArray (this, val0); }
1405
1406 jdoubleArray NewDoubleArray (jsize val0)
1407 { return p->NewDoubleArray (this, val0); }
1408
1409 jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
1410 { return p->GetBooleanArrayElements (this, val0, val1); }
1411
1412 jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
1413 { return p->GetByteArrayElements (this, val0, val1); }
1414
1415 jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
1416 { return p->GetCharArrayElements (this, val0, val1); }
1417
1418 jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
1419 { return p->GetShortArrayElements (this, val0, val1); }
1420
1421 jint * GetIntArrayElements (jintArray val0, jboolean * val1)
1422 { return p->GetIntArrayElements (this, val0, val1); }
1423
1424 jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
1425 { return p->GetLongArrayElements (this, val0, val1); }
1426
1427 jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
1428 { return p->GetFloatArrayElements (this, val0, val1); }
1429
1430 jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
1431 { return p->GetDoubleArrayElements (this, val0, val1); }
1432
1433 void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
1434 { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
1435
1436 void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
1437 { p->ReleaseByteArrayElements (this, val0, val1, val2); }
1438
1439 void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
1440 { p->ReleaseCharArrayElements (this, val0, val1, val2); }
1441
1442 void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
1443 { p->ReleaseShortArrayElements (this, val0, val1, val2); }
1444
1445 void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
1446 { p->ReleaseIntArrayElements (this, val0, val1, val2); }
1447
1448 void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
1449 { p->ReleaseLongArrayElements (this, val0, val1, val2); }
1450
1451 void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
1452 { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
1453
1454 void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
1455 { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
1456
1457 void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1458 { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
1459
1460 void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1461 { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
1462
1463 void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1464 { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
1465
1466 void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1467 { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
1468
1469 void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1470 { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
1471
1472 void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1473 { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
1474
1475 void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1476 { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
1477
1478 void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1479 { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
1480
1481 void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1482 { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
1483
1484 void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1485 { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
1486
1487 void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1488 { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
1489
1490 void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1491 { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
1492
1493 void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1494 { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
1495
1496 void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1497 { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
1498
1499 void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1500 { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
1501
1502 void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1503 { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
1504
1505 jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
1506 { return p->RegisterNatives (this, cl0, val1, val2); }
1507
1508 jint UnregisterNatives (jclass cl0)
1509 { return p->UnregisterNatives (this, cl0); }
1510
1511 jint MonitorEnter (jobject obj0)
1512 { return p->MonitorEnter (this, obj0); }
1513
1514 jint MonitorExit (jobject obj0)
1515 { return p->MonitorExit (this, obj0); }
1516
1517 jint GetJavaVM (JavaVM ** val0)
1518 { return p->GetJavaVM (this, val0); }
1519
1520 void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
1521 { p->GetStringRegion (this, val0, val1, val2, val3); }
1522
1523 void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
1524 { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
1525
1526 void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
1527 { return p->GetPrimitiveArrayCritical (this, val0, val1); }
1528
1529 void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
1530 { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
1531
1532 const jchar * GetStringCritical (jstring val0, jboolean * val1)
1533 { return p->GetStringCritical (this, val0, val1); }
1534
1535 void ReleaseStringCritical (jstring val0, const jchar * val1)
1536 { p->ReleaseStringCritical (this, val0, val1); }
1537
1538 jweak NewWeakGlobalRef (jobject obj0)
1539 { return p->NewWeakGlobalRef (this, obj0); }
1540
1541 void DeleteWeakGlobalRef (jweak val0)
1542 { p->DeleteWeakGlobalRef (this, val0); }
1543
1544 jboolean ExceptionCheck ()
1545 { return p->ExceptionCheck (this); }
1546
1547 jobject NewDirectByteBuffer (void *addr, jlong capacity)
1548 { return p->NewDirectByteBuffer (this, addr, capacity); }
1549
1550 void *GetDirectBufferAddress (jobject buf)
1551 { return p->GetDirectBufferAddress (this, buf); }
1552
1553 jlong GetDirectBufferCapacity (jobject buf)
1554 { return p->GetDirectBufferCapacity (this, buf); }
1555};
1556#endif /* __cplusplus */
1557
1558/*
1559 * Invocation API.
1560 */
1561
1562struct JNIInvokeInterface
1563{
1564 _Jv_func reserved0;
1565 _Jv_func reserved1;
1566 _Jv_func reserved2;
1567
1568 jint (JNICALL *DestroyJavaVM) (JavaVM *);
1569 jint (JNICALL *AttachCurrentThread) (JavaVM *, void **, void *);
1570 jint (JNICALL *DetachCurrentThread) (JavaVM *);
1571 jint (JNICALL *GetEnv) (JavaVM *, void **, jint);
1572 jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);
1573};
1574
1575#ifdef __cplusplus
1576
1577class _Jv_JavaVM
1578{
1579public:
1580 const struct JNIInvokeInterface *functions;
1581
1582private:
1583 /* FIXME: other fields. */
1584
1585public:
1586 jint DestroyJavaVM ()
1587 { return functions->DestroyJavaVM (this); }
1588
1589 jint AttachCurrentThread (void **penv, void *args)
1590 { return functions->AttachCurrentThread (this, penv, args); }
1591
1592 jint DetachCurrentThread ()
1593 { return functions->DetachCurrentThread (this); }
1594
1595 jint GetEnv (void **penv, jint version)
1596 { return functions->GetEnv (this, penv, version); }
1597
1598 jint AttachCurrentThreadAsDaemon (void **penv, void *args)
1599 { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
1600};
1601#endif /* __cplusplus */
1602
1603typedef struct JavaVMAttachArgs
1604{
1605 jint version; /* Must be JNI_VERSION_1_2. */
1606 char *name; /* The name of the thread (or NULL). */
1607 jobject group; /* Global ref of a ThreadGroup object
1608 (or NULL). */
1609} JavaVMAttachArgs;
1610
1611typedef struct JavaVMOption
1612{
1613 char *optionString;
1614 void *extraInfo;
1615} JavaVMOption;
1616
1617typedef struct JavaVMInitArgs
1618{
1619 /* Must be JNI_VERSION_1_2. */
1620 jint version;
1621
1622 /* Number of options. */
1623 jint nOptions;
1624
1625 /* Options to the VM. */
1626 JavaVMOption *options;
1627
1628 /* Whether we should ignore unrecognized options. */
1629 jboolean ignoreUnrecognized;
1630} JavaVMInitArgs;
1631
1632#endif /* __GCJ_JNI_H__ */
Note: See TracBrowser for help on using the repository browser.