2 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
39 /* Note: this file must be compilable by the C compiler (for now,
40 assuming GNU C is ok). This means you must never use `//'
41 comments, and all C++-specific code must be conditional on
44 #ifndef _CLASSPATH_JNI_H
45 #define _CLASSPATH_JNI_H
47 /* We include <stdio.h> for compatibility with Sun's <jni.h>. */
54 /* The VM might define jobject and friends. */
55 #ifndef _CLASSPATH_VM_JNI_TYPES_DEFINED
59 /* Define dummy classes and then define the JNI types as pointers. */
61 struct __jclass
: __jobject
{};
62 struct __jstring
: __jobject
{};
63 struct __jthrowable
: __jobject
{};
64 struct __jweak
: __jobject
{};
65 struct __jarray
: __jobject
{};
66 struct __jobjectArray
: __jarray
{};
67 struct __jbyteArray
: __jarray
{};
68 struct __jshortArray
: __jarray
{};
69 struct __jintArray
: __jarray
{};
70 struct __jlongArray
: __jarray
{};
71 struct __jbooleanArray
: __jarray
{};
72 struct __jcharArray
: __jarray
{};
73 struct __jfloatArray
: __jarray
{};
74 struct __jdoubleArray
: __jarray
{};
76 typedef __jobject
*jobject
;
77 typedef __jclass
*jclass
;
78 typedef __jstring
*jstring
;
79 typedef __jthrowable
*jthrowable
;
80 typedef __jweak
*jweak
;
81 typedef __jarray
*jarray
;
82 typedef __jobjectArray
*jobjectArray
;
83 typedef __jbyteArray
*jbyteArray
;
84 typedef __jshortArray
*jshortArray
;
85 typedef __jintArray
*jintArray
;
86 typedef __jlongArray
*jlongArray
;
87 typedef __jbooleanArray
*jbooleanArray
;
88 typedef __jcharArray
*jcharArray
;
89 typedef __jfloatArray
*jfloatArray
;
90 typedef __jdoubleArray
*jdoubleArray
;
93 #define JNI_FALSE false
95 typedef struct _Jv_JNIEnv JNIEnv
;
96 typedef struct _Jv_JavaVM JavaVM
;
98 # else /* __cplusplus */
100 /* For C, simply define the class types as generic pointers. */
101 typedef void *jobject
;
102 typedef jobject jclass
;
103 typedef jobject jstring
;
104 typedef jobject jthrowable
;
105 typedef jobject jweak
;
106 typedef jobject jarray
;
107 typedef jobject jobjectArray
;
108 typedef jobject jbyteArray
;
109 typedef jobject jshortArray
;
110 typedef jobject jintArray
;
111 typedef jobject jlongArray
;
112 typedef jobject jbooleanArray
;
113 typedef jobject jcharArray
;
114 typedef jobject jfloatArray
;
115 typedef jobject jdoubleArray
;
120 typedef const struct JNINativeInterface_
*JNIEnv
;
121 typedef const struct JNIInvokeInterface_
*JavaVM
;
123 # endif /* __cplusplus */
125 #endif /* _CLASSPATH_VM_JNI_TYPES_DEFINED */
128 * Before jni.h is #included within a typical JVM, the source code should
129 * #define _JNI_VM_INTERNAL_TYPES_DEFINED and provide the real declarations
130 * for 'jobject', 'jfieldID', 'jmethodID' and other implementation types.
131 * If _JNI_VM_INTERNAL_TYPES_DEFINED is not defined, the following
132 * declares the old versions of the types.
134 #ifndef _CLASSPATH_VM_INTERNAL_TYPES_DEFINED
137 typedef struct _jfieldID
*jfieldID
;
138 typedef struct _jmethodID
*jmethodID
;
142 JNIInvalidRefType
= 0,
144 JNIGlobalRefType
= 2,
145 JNIWeakGlobalRefType
= 3
148 typedef enum _jobjectRefType jobjectRefType
;
151 /* Version numbers. */
152 #define JNI_VERSION_1_1 0x00010001
153 #define JNI_VERSION_1_2 0x00010002
154 #define JNI_VERSION_1_4 0x00010004
155 #define JNI_VERSION_1_6 0x00010006
157 /* Used when releasing array elements. */
164 #define JNI_EDETACHED (-2)
165 #define JNI_EVERSION (-3)
171 #endif /* __cplusplus */
173 /* These functions might be defined in libraries which we load; the
174 JNI implementation calls them at the appropriate times. */
175 extern JNIEXPORT jint JNICALL
JNI_OnLoad (JavaVM
*, void *);
176 extern JNIEXPORT
void JNICALL
JNI_OnUnload (JavaVM
*, void *);
178 /* This can be defined as JNIIMPORT or JNIEXPORT by the md file,
179 depending on whether this is the implementation or a user. */
180 #ifndef _CLASSPATH_JNIIMPEXP
181 #define _CLASSPATH_JNIIMPEXP JNIIMPORT
184 /* These functions are called by user code to start using the
186 extern _CLASSPATH_JNIIMPEXP jint JNICALL
187 JNI_GetDefaultJavaVMInitArgs (void *);
189 extern _CLASSPATH_JNIIMPEXP jint JNICALL
190 JNI_CreateJavaVM (JavaVM
**, void **, void *);
192 extern _CLASSPATH_JNIIMPEXP jint JNICALL
193 JNI_GetCreatedJavaVMs (JavaVM
**, jsize
, jsize
*);
197 #endif /* __cplusplus */
212 /* This structure is used when registering native methods. */
217 void *fnPtr
; /* Sigh. */
220 struct JNINativeInterface_
227 jint (JNICALL
*GetVersion
) (JNIEnv
*);
228 jclass (JNICALL
*DefineClass
) (JNIEnv
*, const char *,
229 jobject
, const jbyte
*,
231 jclass (JNICALL
*FindClass
) (JNIEnv
*, const char *);
233 jmethodID (JNICALL
*FromReflectedMethod
) (JNIEnv
*, jobject
);
234 jfieldID (JNICALL
*FromReflectedField
) (JNIEnv
*, jobject
);
235 jobject (JNICALL
*ToReflectedMethod
) (JNIEnv
*, jclass
,
236 jmethodID
, jboolean
);
238 jclass (JNICALL
*GetSuperclass
) (JNIEnv
*, jclass
);
239 jboolean (JNICALL
*IsAssignableFrom
) (JNIEnv
*, jclass
, jclass
);
241 jobject (JNICALL
*ToReflectedField
) (JNIEnv
*, jclass
, jfieldID
,
244 jint (JNICALL
*Throw
) (JNIEnv
*, jthrowable
);
245 jint (JNICALL
*ThrowNew
) (JNIEnv
*, jclass
,
247 jthrowable (JNICALL
*ExceptionOccurred
) (JNIEnv
*);
248 void (JNICALL
*ExceptionDescribe
) (JNIEnv
*);
249 void (JNICALL
*ExceptionClear
) (JNIEnv
*);
250 void (JNICALL
*FatalError
) (JNIEnv
*, const char *);
252 jint (JNICALL
*PushLocalFrame
) (JNIEnv
*, jint
);
253 jobject (JNICALL
*PopLocalFrame
) (JNIEnv
*, jobject
);
255 jobject (JNICALL
*NewGlobalRef
) (JNIEnv
*, jobject
);
256 void (JNICALL
*DeleteGlobalRef
) (JNIEnv
*, jobject
);
257 void (JNICALL
*DeleteLocalRef
) (JNIEnv
*, jobject
);
258 jboolean (JNICALL
*IsSameObject
) (JNIEnv
*, jobject
,
261 jobject (JNICALL
*NewLocalRef
) (JNIEnv
*, jobject
);
262 jint (JNICALL
*EnsureLocalCapacity
) (JNIEnv
*, jint
);
264 jobject (JNICALL
*AllocObject
) (JNIEnv
*, jclass
);
265 jobject (JNICALL
*NewObject
) (JNIEnv
*, jclass
,
267 jobject (JNICALL
*NewObjectV
) (JNIEnv
*, jclass
,
269 jobject (JNICALL
*NewObjectA
) (JNIEnv
*, jclass
,
270 jmethodID
, const jvalue
*);
272 jclass (JNICALL
*GetObjectClass
) (JNIEnv
*, jobject
);
273 jboolean (JNICALL
*IsInstanceOf
) (JNIEnv
*, jobject
, jclass
);
274 jmethodID (JNICALL
*GetMethodID
) (JNIEnv
*, jclass
,
275 const char *, const char *);
277 jobject (JNICALL
*CallObjectMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
278 jobject (JNICALL
*CallObjectMethodV
) (JNIEnv
*, jobject
, jmethodID
,
280 jobject (JNICALL
*CallObjectMethodA
) (JNIEnv
*, jobject
, jmethodID
,
282 jboolean (JNICALL
*CallBooleanMethod
) (JNIEnv
*, jobject
, jmethodID
,
284 jboolean (JNICALL
*CallBooleanMethodV
) (JNIEnv
*, jobject
, jmethodID
,
286 jboolean (JNICALL
*CallBooleanMethodA
) (JNIEnv
*, jobject
, jmethodID
,
288 jbyte (JNICALL
*CallByteMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
289 jbyte (JNICALL
*CallByteMethodV
) (JNIEnv
*, jobject
, jmethodID
,
291 jbyte (JNICALL
*CallByteMethodA
) (JNIEnv
*, jobject
, jmethodID
,
293 jchar (JNICALL
*CallCharMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
294 jchar (JNICALL
*CallCharMethodV
) (JNIEnv
*, jobject
, jmethodID
,
296 jchar (JNICALL
*CallCharMethodA
) (JNIEnv
*, jobject
, jmethodID
,
298 jshort (JNICALL
*CallShortMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
299 jshort (JNICALL
*CallShortMethodV
) (JNIEnv
*, jobject
, jmethodID
,
301 jshort (JNICALL
*CallShortMethodA
) (JNIEnv
*, jobject
, jmethodID
,
303 jint (JNICALL
*CallIntMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
304 jint (JNICALL
*CallIntMethodV
) (JNIEnv
*, jobject
, jmethodID
,
306 jint (JNICALL
*CallIntMethodA
) (JNIEnv
*, jobject
, jmethodID
,
308 jlong (JNICALL
*CallLongMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
309 jlong (JNICALL
*CallLongMethodV
) (JNIEnv
*, jobject
, jmethodID
,
311 jlong (JNICALL
*CallLongMethodA
) (JNIEnv
*, jobject
, jmethodID
,
313 jfloat (JNICALL
*CallFloatMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
314 jfloat (JNICALL
*CallFloatMethodV
) (JNIEnv
*, jobject
, jmethodID
,
316 jfloat (JNICALL
*CallFloatMethodA
) (JNIEnv
*, jobject
, jmethodID
,
318 jdouble (JNICALL
*CallDoubleMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
319 jdouble (JNICALL
*CallDoubleMethodV
) (JNIEnv
*, jobject
, jmethodID
,
321 jdouble (JNICALL
*CallDoubleMethodA
) (JNIEnv
*, jobject
, jmethodID
,
323 void (JNICALL
*CallVoidMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
324 void (JNICALL
*CallVoidMethodV
) (JNIEnv
*, jobject
, jmethodID
,
326 void (JNICALL
*CallVoidMethodA
) (JNIEnv
*, jobject
, jmethodID
,
329 jobject (JNICALL
*CallNonvirtualObjectMethod
) (JNIEnv
*, jobject
, jclass
,
331 jobject (JNICALL
*CallNonvirtualObjectMethodV
) (JNIEnv
*, jobject
, jclass
,
333 jobject (JNICALL
*CallNonvirtualObjectMethodA
) (JNIEnv
*, jobject
, jclass
,
334 jmethodID
, const jvalue
*);
335 jboolean (JNICALL
*CallNonvirtualBooleanMethod
) (JNIEnv
*, jobject
, jclass
,
337 jboolean (JNICALL
*CallNonvirtualBooleanMethodV
) (JNIEnv
*, jobject
, jclass
,
339 jboolean (JNICALL
*CallNonvirtualBooleanMethodA
) (JNIEnv
*, jobject
, jclass
,
340 jmethodID
, const jvalue
*);
341 jbyte (JNICALL
*CallNonvirtualByteMethod
) (JNIEnv
*, jobject
, jclass
,
343 jbyte (JNICALL
*CallNonvirtualByteMethodV
) (JNIEnv
*, jobject
, jclass
,
345 jbyte (JNICALL
*CallNonvirtualByteMethodA
) (JNIEnv
*, jobject
, jclass
,
346 jmethodID
, const jvalue
*);
347 jchar (JNICALL
*CallNonvirtualCharMethod
) (JNIEnv
*, jobject
, jclass
,
349 jchar (JNICALL
*CallNonvirtualCharMethodV
) (JNIEnv
*, jobject
, jclass
,
351 jchar (JNICALL
*CallNonvirtualCharMethodA
) (JNIEnv
*, jobject
, jclass
,
352 jmethodID
, const jvalue
*);
353 jshort (JNICALL
*CallNonvirtualShortMethod
) (JNIEnv
*, jobject
, jclass
,
355 jshort (JNICALL
*CallNonvirtualShortMethodV
) (JNIEnv
*, jobject
, jclass
,
357 jshort (JNICALL
*CallNonvirtualShortMethodA
) (JNIEnv
*, jobject
, jclass
,
358 jmethodID
, const jvalue
*);
359 jint (JNICALL
*CallNonvirtualIntMethod
) (JNIEnv
*, jobject
, jclass
,
361 jint (JNICALL
*CallNonvirtualIntMethodV
) (JNIEnv
*, jobject
, jclass
,
363 jint (JNICALL
*CallNonvirtualIntMethodA
) (JNIEnv
*, jobject
, jclass
,
364 jmethodID
, const jvalue
*);
365 jlong (JNICALL
*CallNonvirtualLongMethod
) (JNIEnv
*, jobject
, jclass
,
367 jlong (JNICALL
*CallNonvirtualLongMethodV
) (JNIEnv
*, jobject
, jclass
,
369 jlong (JNICALL
*CallNonvirtualLongMethodA
) (JNIEnv
*, jobject
, jclass
,
370 jmethodID
, const jvalue
*);
371 jfloat (JNICALL
*CallNonvirtualFloatMethod
) (JNIEnv
*, jobject
, jclass
,
373 jfloat (JNICALL
*CallNonvirtualFloatMethodV
) (JNIEnv
*, jobject
, jclass
,
375 jfloat (JNICALL
*CallNonvirtualFloatMethodA
) (JNIEnv
*, jobject
, jclass
,
376 jmethodID
, const jvalue
*);
377 jdouble (JNICALL
*CallNonvirtualDoubleMethod
) (JNIEnv
*, jobject
, jclass
,
379 jdouble (JNICALL
*CallNonvirtualDoubleMethodV
) (JNIEnv
*, jobject
, jclass
,
381 jdouble (JNICALL
*CallNonvirtualDoubleMethodA
) (JNIEnv
*, jobject
, jclass
,
382 jmethodID
, const jvalue
*);
383 void (JNICALL
*CallNonvirtualVoidMethod
) (JNIEnv
*, jobject
, jclass
,
385 void (JNICALL
*CallNonvirtualVoidMethodV
) (JNIEnv
*, jobject
, jclass
,
387 void (JNICALL
*CallNonvirtualVoidMethodA
) (JNIEnv
*, jobject
, jclass
,
388 jmethodID
, const jvalue
*);
390 jfieldID (JNICALL
*GetFieldID
) (JNIEnv
*, jclass
, const char *,
393 jobject (JNICALL
*GetObjectField
) (JNIEnv
*, jobject
, jfieldID
);
394 jboolean (JNICALL
*GetBooleanField
) (JNIEnv
*, jobject
, jfieldID
);
395 jbyte (JNICALL
*GetByteField
) (JNIEnv
*, jobject
, jfieldID
);
396 jchar (JNICALL
*GetCharField
) (JNIEnv
*, jobject
, jfieldID
);
397 jshort (JNICALL
*GetShortField
) (JNIEnv
*, jobject
, jfieldID
);
398 jint (JNICALL
*GetIntField
) (JNIEnv
*, jobject
, jfieldID
);
399 jlong (JNICALL
*GetLongField
) (JNIEnv
*, jobject
, jfieldID
);
400 jfloat (JNICALL
*GetFloatField
) (JNIEnv
*, jobject
, jfieldID
);
401 jdouble (JNICALL
*GetDoubleField
) (JNIEnv
*, jobject
, jfieldID
);
403 void (JNICALL
*SetObjectField
) (JNIEnv
*, jobject
,
405 void (JNICALL
*SetBooleanField
) (JNIEnv
*, jobject
,
407 void (JNICALL
*SetByteField
) (JNIEnv
*, jobject
,
409 void (JNICALL
*SetCharField
) (JNIEnv
*, jobject
,
411 void (JNICALL
*SetShortField
) (JNIEnv
*, jobject
,
413 void (JNICALL
*SetIntField
) (JNIEnv
*, jobject
,
415 void (JNICALL
*SetLongField
) (JNIEnv
*, jobject
,
417 void (JNICALL
*SetFloatField
) (JNIEnv
*, jobject
,
419 void (JNICALL
*SetDoubleField
) (JNIEnv
*, jobject
,
422 jmethodID (JNICALL
*GetStaticMethodID
) (JNIEnv
*, jclass
, const char *,
425 jobject (JNICALL
*CallStaticObjectMethod
) (JNIEnv
*, jclass
, jmethodID
,
427 jobject (JNICALL
*CallStaticObjectMethodV
) (JNIEnv
*, jclass
, jmethodID
,
429 jobject (JNICALL
*CallStaticObjectMethodA
) (JNIEnv
*, jclass
, jmethodID
,
431 jboolean (JNICALL
*CallStaticBooleanMethod
) (JNIEnv
*, jclass
, jmethodID
,
433 jboolean (JNICALL
*CallStaticBooleanMethodV
) (JNIEnv
*, jclass
, jmethodID
,
435 jboolean (JNICALL
*CallStaticBooleanMethodA
) (JNIEnv
*, jclass
, jmethodID
,
437 jbyte (JNICALL
*CallStaticByteMethod
) (JNIEnv
*, jclass
, jmethodID
,
439 jbyte (JNICALL
*CallStaticByteMethodV
) (JNIEnv
*, jclass
, jmethodID
,
441 jbyte (JNICALL
*CallStaticByteMethodA
) (JNIEnv
*, jclass
, jmethodID
,
443 jchar (JNICALL
*CallStaticCharMethod
) (JNIEnv
*, jclass
, jmethodID
,
445 jchar (JNICALL
*CallStaticCharMethodV
) (JNIEnv
*, jclass
, jmethodID
,
447 jchar (JNICALL
*CallStaticCharMethodA
) (JNIEnv
*, jclass
, jmethodID
,
449 jshort (JNICALL
*CallStaticShortMethod
) (JNIEnv
*, jclass
, jmethodID
,
451 jshort (JNICALL
*CallStaticShortMethodV
) (JNIEnv
*, jclass
, jmethodID
,
453 jshort (JNICALL
*CallStaticShortMethodA
) (JNIEnv
*, jclass
, jmethodID
,
455 jint (JNICALL
*CallStaticIntMethod
) (JNIEnv
*, jclass
, jmethodID
,
457 jint (JNICALL
*CallStaticIntMethodV
) (JNIEnv
*, jclass
, jmethodID
,
459 jint (JNICALL
*CallStaticIntMethodA
) (JNIEnv
*, jclass
, jmethodID
,
461 jlong (JNICALL
*CallStaticLongMethod
) (JNIEnv
*, jclass
, jmethodID
,
463 jlong (JNICALL
*CallStaticLongMethodV
) (JNIEnv
*, jclass
, jmethodID
,
465 jlong (JNICALL
*CallStaticLongMethodA
) (JNIEnv
*, jclass
, jmethodID
,
467 jfloat (JNICALL
*CallStaticFloatMethod
) (JNIEnv
*, jclass
, jmethodID
,
469 jfloat (JNICALL
*CallStaticFloatMethodV
) (JNIEnv
*, jclass
, jmethodID
,
471 jfloat (JNICALL
*CallStaticFloatMethodA
) (JNIEnv
*, jclass
, jmethodID
,
473 jdouble (JNICALL
*CallStaticDoubleMethod
) (JNIEnv
*, jclass
, jmethodID
,
475 jdouble (JNICALL
*CallStaticDoubleMethodV
) (JNIEnv
*, jclass
, jmethodID
,
477 jdouble (JNICALL
*CallStaticDoubleMethodA
) (JNIEnv
*, jclass
, jmethodID
,
479 void (JNICALL
*CallStaticVoidMethod
) (JNIEnv
*, jclass
, jmethodID
,
481 void (JNICALL
*CallStaticVoidMethodV
) (JNIEnv
*, jclass
, jmethodID
,
483 void (JNICALL
*CallStaticVoidMethodA
) (JNIEnv
*, jclass
, jmethodID
,
486 jfieldID (JNICALL
*GetStaticFieldID
) (JNIEnv
*, jclass
, const char *,
489 jobject (JNICALL
*GetStaticObjectField
) (JNIEnv
*, jclass
, jfieldID
);
490 jboolean (JNICALL
*GetStaticBooleanField
) (JNIEnv
*, jclass
, jfieldID
);
491 jbyte (JNICALL
*GetStaticByteField
) (JNIEnv
*, jclass
, jfieldID
);
492 jchar (JNICALL
*GetStaticCharField
) (JNIEnv
*, jclass
, jfieldID
);
493 jshort (JNICALL
*GetStaticShortField
) (JNIEnv
*, jclass
, jfieldID
);
494 jint (JNICALL
*GetStaticIntField
) (JNIEnv
*, jclass
, jfieldID
);
495 jlong (JNICALL
*GetStaticLongField
) (JNIEnv
*, jclass
, jfieldID
);
496 jfloat (JNICALL
*GetStaticFloatField
) (JNIEnv
*, jclass
, jfieldID
);
497 jdouble (JNICALL
*GetStaticDoubleField
) (JNIEnv
*, jclass
, jfieldID
);
499 void (JNICALL
*SetStaticObjectField
) (JNIEnv
*, jclass
,
501 void (JNICALL
*SetStaticBooleanField
) (JNIEnv
*, jclass
,
503 void (JNICALL
*SetStaticByteField
) (JNIEnv
*, jclass
,
505 void (JNICALL
*SetStaticCharField
) (JNIEnv
*, jclass
,
507 void (JNICALL
*SetStaticShortField
) (JNIEnv
*, jclass
,
509 void (JNICALL
*SetStaticIntField
) (JNIEnv
*, jclass
,
511 void (JNICALL
*SetStaticLongField
) (JNIEnv
*, jclass
,
513 void (JNICALL
*SetStaticFloatField
) (JNIEnv
*, jclass
,
515 void (JNICALL
*SetStaticDoubleField
) (JNIEnv
*, jclass
,
518 jstring (JNICALL
*NewString
) (JNIEnv
*, const jchar
*, jsize
);
519 jsize (JNICALL
*GetStringLength
) (JNIEnv
*, jstring
);
520 const jchar
* (JNICALL
*GetStringChars
) (JNIEnv
*, jstring
, jboolean
*);
521 void (JNICALL
*ReleaseStringChars
) (JNIEnv
*, jstring
, const jchar
*);
522 jstring (JNICALL
*NewStringUTF
) (JNIEnv
*, const char *);
523 jsize (JNICALL
*GetStringUTFLength
) (JNIEnv
*, jstring
);
524 const char * (JNICALL
*GetStringUTFChars
) (JNIEnv
*, jstring
, jboolean
*);
525 void (JNICALL
*ReleaseStringUTFChars
) (JNIEnv
*, jstring
, const char *);
526 jsize (JNICALL
*GetArrayLength
) (JNIEnv
*, jarray
);
527 jobjectArray (JNICALL
*NewObjectArray
) (JNIEnv
*, jsize
, jclass
, jobject
);
528 jobject (JNICALL
*GetObjectArrayElement
) (JNIEnv
*, jobjectArray
, jsize
);
529 void (JNICALL
*SetObjectArrayElement
) (JNIEnv
*, jobjectArray
, jsize
,
532 jbooleanArray (JNICALL
*NewBooleanArray
) (JNIEnv
*, jsize
);
533 jbyteArray (JNICALL
*NewByteArray
) (JNIEnv
*, jsize
);
534 jcharArray (JNICALL
*NewCharArray
) (JNIEnv
*, jsize
);
535 jshortArray (JNICALL
*NewShortArray
) (JNIEnv
*, jsize
);
536 jintArray (JNICALL
*NewIntArray
) (JNIEnv
*, jsize
);
537 jlongArray (JNICALL
*NewLongArray
) (JNIEnv
*, jsize
);
538 jfloatArray (JNICALL
*NewFloatArray
) (JNIEnv
*, jsize
);
539 jdoubleArray (JNICALL
*NewDoubleArray
) (JNIEnv
*, jsize
);
541 jboolean
* (JNICALL
*GetBooleanArrayElements
) (JNIEnv
*, jbooleanArray
,
543 jbyte
* (JNICALL
*GetByteArrayElements
) (JNIEnv
*, jbyteArray
,
545 jchar
* (JNICALL
*GetCharArrayElements
) (JNIEnv
*, jcharArray
,
547 jshort
* (JNICALL
*GetShortArrayElements
) (JNIEnv
*, jshortArray
,
549 jint
* (JNICALL
*GetIntArrayElements
) (JNIEnv
*, jintArray
,
551 jlong
* (JNICALL
*GetLongArrayElements
) (JNIEnv
*, jlongArray
,
553 jfloat
* (JNICALL
*GetFloatArrayElements
) (JNIEnv
*, jfloatArray
,
555 jdouble
* (JNICALL
*GetDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
558 void (JNICALL
*ReleaseBooleanArrayElements
) (JNIEnv
*, jbooleanArray
,
560 void (JNICALL
*ReleaseByteArrayElements
) (JNIEnv
*, jbyteArray
,
562 void (JNICALL
*ReleaseCharArrayElements
) (JNIEnv
*, jcharArray
,
564 void (JNICALL
*ReleaseShortArrayElements
) (JNIEnv
*, jshortArray
,
566 void (JNICALL
*ReleaseIntArrayElements
) (JNIEnv
*, jintArray
,
568 void (JNICALL
*ReleaseLongArrayElements
) (JNIEnv
*, jlongArray
,
570 void (JNICALL
*ReleaseFloatArrayElements
) (JNIEnv
*, jfloatArray
,
572 void (JNICALL
*ReleaseDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
575 void (JNICALL
*GetBooleanArrayRegion
) (JNIEnv
*, jbooleanArray
,
576 jsize
, jsize
, jboolean
*);
577 void (JNICALL
*GetByteArrayRegion
) (JNIEnv
*, jbyteArray
,
578 jsize
, jsize
, jbyte
*);
579 void (JNICALL
*GetCharArrayRegion
) (JNIEnv
*, jcharArray
,
580 jsize
, jsize
, jchar
*);
581 void (JNICALL
*GetShortArrayRegion
) (JNIEnv
*, jshortArray
,
582 jsize
, jsize
, jshort
*);
583 void (JNICALL
*GetIntArrayRegion
) (JNIEnv
*, jintArray
,
584 jsize
, jsize
, jint
*);
585 void (JNICALL
*GetLongArrayRegion
) (JNIEnv
*, jlongArray
,
586 jsize
, jsize
, jlong
*);
587 void (JNICALL
*GetFloatArrayRegion
) (JNIEnv
*, jfloatArray
,
588 jsize
, jsize
, jfloat
*);
589 void (JNICALL
*GetDoubleArrayRegion
) (JNIEnv
*, jdoubleArray
,
590 jsize
, jsize
, jdouble
*);
592 void (JNICALL
*SetBooleanArrayRegion
) (JNIEnv
*, jbooleanArray
,
595 void (JNICALL
*SetByteArrayRegion
) (JNIEnv
*, jbyteArray
,
598 void (JNICALL
*SetCharArrayRegion
) (JNIEnv
*, jcharArray
,
601 void (JNICALL
*SetShortArrayRegion
) (JNIEnv
*, jshortArray
,
604 void (JNICALL
*SetIntArrayRegion
) (JNIEnv
*, jintArray
,
607 void (JNICALL
*SetLongArrayRegion
) (JNIEnv
*, jlongArray
,
610 void (JNICALL
*SetFloatArrayRegion
) (JNIEnv
*, jfloatArray
,
613 void (JNICALL
*SetDoubleArrayRegion
) (JNIEnv
*, jdoubleArray
,
617 jint (JNICALL
*RegisterNatives
) (JNIEnv
*, jclass
,
618 const JNINativeMethod
*,
620 jint (JNICALL
*UnregisterNatives
) (JNIEnv
*, jclass
);
621 jint (JNICALL
*MonitorEnter
) (JNIEnv
*, jobject
);
622 jint (JNICALL
*MonitorExit
) (JNIEnv
*, jobject
);
623 jint (JNICALL
*GetJavaVM
) (JNIEnv
*, JavaVM
**);
625 /* ---- JNI 1.2 functions ---- */
627 void (JNICALL
*GetStringRegion
) (JNIEnv
*, jstring
, jsize
,
629 void (JNICALL
*GetStringUTFRegion
) (JNIEnv
*, jstring
, jsize
,
632 void * (JNICALL
*GetPrimitiveArrayCritical
) (JNIEnv
*, jarray
,
634 void (JNICALL
*ReleasePrimitiveArrayCritical
) (JNIEnv
*, jarray
, void *,
637 const jchar
* (JNICALL
*GetStringCritical
) (JNIEnv
*, jstring
,
639 void (JNICALL
*ReleaseStringCritical
) (JNIEnv
*, jstring
,
642 jweak (JNICALL
*NewWeakGlobalRef
) (JNIEnv
*, jobject
);
643 void (JNICALL
*DeleteWeakGlobalRef
) (JNIEnv
*, jweak
);
645 jboolean (JNICALL
*ExceptionCheck
) (JNIEnv
*);
647 /* ---- JNI 1.4 functions ---- */
649 jobject (JNICALL
*NewDirectByteBuffer
) (JNIEnv
*, void *, jlong
);
650 void * (JNICALL
*GetDirectBufferAddress
) (JNIEnv
*, jobject
);
651 jlong (JNICALL
*GetDirectBufferCapacity
) (JNIEnv
*, jobject
);
653 /* ---- JNI 1.6 functions ---- */
655 jobjectRefType (JNICALL
*GetObjectRefType
) (JNIEnv
*, jobject
);
663 /* The method table. */
664 struct JNINativeInterface_
*p
;
666 #ifdef _CLASSPATH_JNIENV_CONTENTS
667 _CLASSPATH_JNIENV_CONTENTS
671 { return p
->GetVersion (this); }
673 jclass
DefineClass (const char *name
, jobject obj0
, const jbyte
* val1
,
675 { return p
->DefineClass (this, name
, obj0
, val1
, val2
); }
677 jclass
FindClass (const char * val0
)
678 { return p
->FindClass (this, val0
); }
680 jmethodID
FromReflectedMethod (jobject obj0
)
681 { return p
->FromReflectedMethod (this, obj0
); }
683 jfieldID
FromReflectedField (jobject obj0
)
684 { return p
->FromReflectedField (this, obj0
); }
686 jobject
ToReflectedMethod (jclass cl0
, jmethodID meth1
, jboolean val2
)
687 { return p
->ToReflectedMethod (this, cl0
, meth1
, val2
); }
689 jclass
GetSuperclass (jclass cl0
)
690 { return p
->GetSuperclass (this, cl0
); }
692 jboolean
IsAssignableFrom (jclass cl0
, jclass cl1
)
693 { return p
->IsAssignableFrom (this, cl0
, cl1
); }
695 jobject
ToReflectedField (jclass cl0
, jfieldID fld1
, jboolean val2
)
696 { return p
->ToReflectedField (this, cl0
, fld1
, val2
); }
698 jint
Throw (jthrowable val0
)
699 { return p
->Throw (this, val0
); }
701 jint
ThrowNew (jclass cl0
, const char * val1
)
702 { return p
->ThrowNew (this, cl0
, val1
); }
704 jthrowable
ExceptionOccurred ()
705 { return p
->ExceptionOccurred (this); }
707 void ExceptionDescribe ()
708 { p
->ExceptionDescribe (this); }
710 void ExceptionClear ()
711 { p
->ExceptionClear (this); }
713 void FatalError (const char * val0
)
714 { p
->FatalError (this, val0
); }
716 jint
PushLocalFrame (jint val0
)
717 { return p
->PushLocalFrame (this, val0
); }
719 jobject
PopLocalFrame (jobject obj0
)
720 { return p
->PopLocalFrame (this, obj0
); }
722 jobject
NewGlobalRef (jobject obj0
)
723 { return p
->NewGlobalRef (this, obj0
); }
725 void DeleteGlobalRef (jobject obj0
)
726 { p
->DeleteGlobalRef (this, obj0
); }
728 void DeleteLocalRef (jobject obj0
)
729 { p
->DeleteLocalRef (this, obj0
); }
731 jboolean
IsSameObject (jobject obj0
, jobject obj1
)
732 { return p
->IsSameObject (this, obj0
, obj1
); }
734 jobject
NewLocalRef (jobject obj0
)
735 { return p
->NewLocalRef (this, obj0
); }
737 jint
EnsureLocalCapacity (jint val0
)
738 { return p
->EnsureLocalCapacity (this, val0
); }
740 jobject
AllocObject (jclass cl0
)
741 { return p
->AllocObject (this, cl0
); }
743 jobject
NewObject (jclass cl0
, jmethodID meth1
, ...)
746 va_start (args
, meth1
);
747 jobject result
= p
->NewObjectV (this, cl0
, meth1
, args
);
752 jobject
NewObjectV (jclass cl0
, jmethodID meth1
, va_list val2
)
753 { return p
->NewObjectV (this, cl0
, meth1
, val2
); }
755 jobject
NewObjectA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
756 { return p
->NewObjectA (this, cl0
, meth1
, val2
); }
758 jclass
GetObjectClass (jobject obj0
)
759 { return p
->GetObjectClass (this, obj0
); }
761 jboolean
IsInstanceOf (jobject obj0
, jclass cl1
)
762 { return p
->IsInstanceOf (this, obj0
, cl1
); }
764 jmethodID
GetMethodID (jclass cl0
, const char * val1
, const char * val2
)
765 { return p
->GetMethodID (this, cl0
, val1
, val2
); }
767 jobject
CallObjectMethod (jobject obj0
, jmethodID meth1
, ...)
770 va_start (args
, meth1
);
771 jobject result
= p
->CallObjectMethodV (this, obj0
, meth1
, args
);
776 jobject
CallObjectMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
777 { return p
->CallObjectMethodV (this, obj0
, meth1
, val2
); }
779 jobject
CallObjectMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
780 { return p
->CallObjectMethodA (this, obj0
, meth1
, val2
); }
782 jboolean
CallBooleanMethod (jobject obj0
, jmethodID meth1
, ...)
785 va_start (args
, meth1
);
786 jboolean result
= p
->CallBooleanMethodV (this, obj0
, meth1
, args
);
791 jboolean
CallBooleanMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
792 { return p
->CallBooleanMethodV (this, obj0
, meth1
, val2
); }
794 jboolean
CallBooleanMethodA (jobject obj0
, jmethodID meth1
,
796 { return p
->CallBooleanMethodA (this, obj0
, meth1
, val2
); }
798 jbyte
CallByteMethod (jobject obj0
, jmethodID meth1
, ...)
801 va_start (args
, meth1
);
802 jbyte result
= p
->CallByteMethodV (this, obj0
, meth1
, args
);
807 jbyte
CallByteMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
808 { return p
->CallByteMethodV (this, obj0
, meth1
, val2
); }
810 jbyte
CallByteMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
811 { return p
->CallByteMethodA (this, obj0
, meth1
, val2
); }
813 jchar
CallCharMethod (jobject obj0
, jmethodID meth1
, ...)
816 va_start (args
, meth1
);
817 jchar result
= p
->CallCharMethodV (this, obj0
, meth1
, args
);
822 jchar
CallCharMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
823 { return p
->CallCharMethodV (this, obj0
, meth1
, val2
); }
825 jchar
CallCharMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
826 { return p
->CallCharMethodA (this, obj0
, meth1
, val2
); }
828 jshort
CallShortMethod (jobject obj0
, jmethodID meth1
, ...)
831 va_start (args
, meth1
);
832 jshort result
= p
->CallShortMethodV (this, obj0
, meth1
, args
);
837 jshort
CallShortMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
838 { return p
->CallShortMethodV (this, obj0
, meth1
, val2
); }
840 jshort
CallShortMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
841 { return p
->CallShortMethodA (this, obj0
, meth1
, val2
); }
843 jint
CallIntMethod (jobject obj0
, jmethodID meth1
, ...)
846 va_start (args
, meth1
);
847 jint result
= p
->CallIntMethodV (this, obj0
, meth1
, args
);
852 jint
CallIntMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
853 { return p
->CallIntMethodV (this, obj0
, meth1
, val2
); }
855 jint
CallIntMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
856 { return p
->CallIntMethodA (this, obj0
, meth1
, val2
); }
858 jlong
CallLongMethod (jobject obj0
, jmethodID meth1
, ...)
861 va_start (args
, meth1
);
862 jlong result
= p
->CallLongMethodV (this, obj0
, meth1
, args
);
867 jlong
CallLongMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
868 { return p
->CallLongMethodV (this, obj0
, meth1
, val2
); }
870 jlong
CallLongMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
871 { return p
->CallLongMethodA (this, obj0
, meth1
, val2
); }
873 jfloat
CallFloatMethod (jobject obj0
, jmethodID meth1
, ...)
876 va_start (args
, meth1
);
877 jfloat result
= p
->CallFloatMethodV (this, obj0
, meth1
, args
);
882 jfloat
CallFloatMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
883 { return p
->CallFloatMethodV (this, obj0
, meth1
, val2
); }
885 jfloat
CallFloatMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
886 { return p
->CallFloatMethodA (this, obj0
, meth1
, val2
); }
888 jdouble
CallDoubleMethod (jobject obj0
, jmethodID meth1
, ...)
891 va_start (args
, meth1
);
892 jdouble result
= p
->CallDoubleMethodV (this, obj0
, meth1
, args
);
897 jdouble
CallDoubleMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
898 { return p
->CallDoubleMethodV (this, obj0
, meth1
, val2
); }
900 jdouble
CallDoubleMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
901 { return p
->CallDoubleMethodA (this, obj0
, meth1
, val2
); }
903 void CallVoidMethod (jobject obj0
, jmethodID meth1
, ...)
906 va_start (args
, meth1
);
907 p
->CallVoidMethodV (this, obj0
, meth1
, args
);
911 void CallVoidMethodV (jobject obj0
, jmethodID meth1
, va_list val2
)
912 { p
->CallVoidMethodV (this, obj0
, meth1
, val2
); }
914 void CallVoidMethodA (jobject obj0
, jmethodID meth1
, const jvalue
* val2
)
915 { p
->CallVoidMethodA (this, obj0
, meth1
, val2
); }
917 jobject
CallNonvirtualObjectMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
920 va_start (args
, meth2
);
921 jobject result
= p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, args
);
926 jobject
CallNonvirtualObjectMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
927 { return p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, val3
); }
929 jobject
CallNonvirtualObjectMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
930 { return p
->CallNonvirtualObjectMethodA (this, obj0
, cl1
, meth2
, val3
); }
932 jboolean
CallNonvirtualBooleanMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
935 va_start (args
, meth2
);
936 jboolean result
= p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, args
);
941 jboolean
CallNonvirtualBooleanMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
942 { return p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, val3
); }
944 jboolean
CallNonvirtualBooleanMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
945 { return p
->CallNonvirtualBooleanMethodA (this, obj0
, cl1
, meth2
, val3
); }
947 jbyte
CallNonvirtualByteMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
950 va_start (args
, meth2
);
951 jbyte result
= p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, args
);
956 jbyte
CallNonvirtualByteMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
957 { return p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, val3
); }
959 jbyte
CallNonvirtualByteMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
960 { return p
->CallNonvirtualByteMethodA (this, obj0
, cl1
, meth2
, val3
); }
962 jchar
CallNonvirtualCharMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
965 va_start (args
, meth2
);
966 jchar result
= p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, args
);
971 jchar
CallNonvirtualCharMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
972 { return p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, val3
); }
974 jchar
CallNonvirtualCharMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
975 { return p
->CallNonvirtualCharMethodA (this, obj0
, cl1
, meth2
, val3
); }
977 jshort
CallNonvirtualShortMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
980 va_start (args
, meth2
);
981 jshort result
= p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, args
);
986 jshort
CallNonvirtualShortMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
987 { return p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, val3
); }
989 jshort
CallNonvirtualShortMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
990 { return p
->CallNonvirtualShortMethodA (this, obj0
, cl1
, meth2
, val3
); }
992 jint
CallNonvirtualIntMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
995 va_start (args
, meth2
);
996 jint result
= p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, args
);
1001 jint
CallNonvirtualIntMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
1002 { return p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, val3
); }
1004 jint
CallNonvirtualIntMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
1005 { return p
->CallNonvirtualIntMethodA (this, obj0
, cl1
, meth2
, val3
); }
1007 jlong
CallNonvirtualLongMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1010 va_start (args
, meth2
);
1011 jlong result
= p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, args
);
1016 jlong
CallNonvirtualLongMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
1017 { return p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, val3
); }
1019 jlong
CallNonvirtualLongMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
1020 { return p
->CallNonvirtualLongMethodA (this, obj0
, cl1
, meth2
, val3
); }
1022 jfloat
CallNonvirtualFloatMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1025 va_start (args
, meth2
);
1026 jfloat result
= p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, args
);
1031 jfloat
CallNonvirtualFloatMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
1032 { return p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, val3
); }
1034 jfloat
CallNonvirtualFloatMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
1035 { return p
->CallNonvirtualFloatMethodA (this, obj0
, cl1
, meth2
, val3
); }
1037 jdouble
CallNonvirtualDoubleMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1040 va_start (args
, meth2
);
1041 jdouble result
= p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, args
);
1046 jdouble
CallNonvirtualDoubleMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
1047 { return p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, val3
); }
1049 jdouble
CallNonvirtualDoubleMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
1050 { return p
->CallNonvirtualDoubleMethodA (this, obj0
, cl1
, meth2
, val3
); }
1052 void CallNonvirtualVoidMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1055 va_start (args
, meth2
);
1056 p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, args
);
1060 void CallNonvirtualVoidMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, va_list val3
)
1061 { p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, val3
); }
1063 void CallNonvirtualVoidMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, const jvalue
* val3
)
1064 { p
->CallNonvirtualVoidMethodA (this, obj0
, cl1
, meth2
, val3
); }
1066 jfieldID
GetFieldID (jclass cl0
, const char * val1
, const char * val2
)
1067 { return p
->GetFieldID (this, cl0
, val1
, val2
); }
1069 jobject
GetObjectField (jobject obj0
, jfieldID fld1
)
1070 { return p
->GetObjectField (this, obj0
, fld1
); }
1072 jboolean
GetBooleanField (jobject obj0
, jfieldID fld1
)
1073 { return p
->GetBooleanField (this, obj0
, fld1
); }
1075 jbyte
GetByteField (jobject obj0
, jfieldID fld1
)
1076 { return p
->GetByteField (this, obj0
, fld1
); }
1078 jchar
GetCharField (jobject obj0
, jfieldID fld1
)
1079 { return p
->GetCharField (this, obj0
, fld1
); }
1081 jshort
GetShortField (jobject obj0
, jfieldID fld1
)
1082 { return p
->GetShortField (this, obj0
, fld1
); }
1084 jint
GetIntField (jobject obj0
, jfieldID fld1
)
1085 { return p
->GetIntField (this, obj0
, fld1
); }
1087 jlong
GetLongField (jobject obj0
, jfieldID fld1
)
1088 { return p
->GetLongField (this, obj0
, fld1
); }
1090 jfloat
GetFloatField (jobject obj0
, jfieldID fld1
)
1091 { return p
->GetFloatField (this, obj0
, fld1
); }
1093 jdouble
GetDoubleField (jobject obj0
, jfieldID fld1
)
1094 { return p
->GetDoubleField (this, obj0
, fld1
); }
1096 void SetObjectField (jobject obj0
, jfieldID fld1
, jobject obj2
)
1097 { p
->SetObjectField (this, obj0
, fld1
, obj2
); }
1099 void SetBooleanField (jobject obj0
, jfieldID fld1
, jboolean val2
)
1100 { p
->SetBooleanField (this, obj0
, fld1
, val2
); }
1102 void SetByteField (jobject obj0
, jfieldID fld1
, jbyte val2
)
1103 { p
->SetByteField (this, obj0
, fld1
, val2
); }
1105 void SetCharField (jobject obj0
, jfieldID fld1
, jchar val2
)
1106 { p
->SetCharField (this, obj0
, fld1
, val2
); }
1108 void SetShortField (jobject obj0
, jfieldID fld1
, jshort val2
)
1109 { p
->SetShortField (this, obj0
, fld1
, val2
); }
1111 void SetIntField (jobject obj0
, jfieldID fld1
, jint val2
)
1112 { p
->SetIntField (this, obj0
, fld1
, val2
); }
1114 void SetLongField (jobject obj0
, jfieldID fld1
, jlong val2
)
1115 { p
->SetLongField (this, obj0
, fld1
, val2
); }
1117 void SetFloatField (jobject obj0
, jfieldID fld1
, jfloat val2
)
1118 { p
->SetFloatField (this, obj0
, fld1
, val2
); }
1120 void SetDoubleField (jobject obj0
, jfieldID fld1
, jdouble val2
)
1121 { p
->SetDoubleField (this, obj0
, fld1
, val2
); }
1123 jmethodID
GetStaticMethodID (jclass cl0
, const char * val1
, const char * val2
)
1124 { return p
->GetStaticMethodID (this, cl0
, val1
, val2
); }
1126 jobject
CallStaticObjectMethod (jclass cl0
, jmethodID meth1
, ...)
1129 va_start (args
, meth1
);
1130 jobject result
= p
->CallStaticObjectMethodV (this, cl0
, meth1
, args
);
1135 jobject
CallStaticObjectMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1136 { return p
->CallStaticObjectMethodV (this, cl0
, meth1
, val2
); }
1138 jobject
CallStaticObjectMethodA (jclass cl0
, jmethodID meth1
,
1139 const jvalue
* val2
)
1140 { return p
->CallStaticObjectMethodA (this, cl0
, meth1
, val2
); }
1142 jboolean
CallStaticBooleanMethod (jclass cl0
, jmethodID meth1
, ...)
1145 va_start (args
, meth1
);
1146 jboolean result
= p
->CallStaticBooleanMethodV (this, cl0
, meth1
, args
);
1151 jboolean
CallStaticBooleanMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1152 { return p
->CallStaticBooleanMethodV (this, cl0
, meth1
, val2
); }
1154 jboolean
CallStaticBooleanMethodA (jclass cl0
, jmethodID meth1
,
1155 const jvalue
* val2
)
1156 { return p
->CallStaticBooleanMethodA (this, cl0
, meth1
, val2
); }
1158 jbyte
CallStaticByteMethod (jclass cl0
, jmethodID meth1
, ...)
1161 va_start (args
, meth1
);
1162 jbyte result
= p
->CallStaticByteMethodV (this, cl0
, meth1
, args
);
1167 jbyte
CallStaticByteMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1168 { return p
->CallStaticByteMethodV (this, cl0
, meth1
, val2
); }
1170 jbyte
CallStaticByteMethodA (jclass cl0
, jmethodID meth1
, const jvalue
* val2
)
1171 { return p
->CallStaticByteMethodA (this, cl0
, meth1
, val2
); }
1173 jchar
CallStaticCharMethod (jclass cl0
, jmethodID meth1
, ...)
1176 va_start (args
, meth1
);
1177 jchar result
= p
->CallStaticCharMethodV (this, cl0
, meth1
, args
);
1182 jchar
CallStaticCharMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1183 { return p
->CallStaticCharMethodV (this, cl0
, meth1
, val2
); }
1185 jchar
CallStaticCharMethodA (jclass cl0
, jmethodID meth1
, const jvalue
* val2
)
1186 { return p
->CallStaticCharMethodA (this, cl0
, meth1
, val2
); }
1188 jshort
CallStaticShortMethod (jclass cl0
, jmethodID meth1
, ...)
1191 va_start (args
, meth1
);
1192 jshort result
= p
->CallStaticShortMethodV (this, cl0
, meth1
, args
);
1197 jshort
CallStaticShortMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1198 { return p
->CallStaticShortMethodV (this, cl0
, meth1
, val2
); }
1200 jshort
CallStaticShortMethodA (jclass cl0
, jmethodID meth1
,
1201 const jvalue
* val2
)
1202 { return p
->CallStaticShortMethodA (this, cl0
, meth1
, val2
); }
1204 jint
CallStaticIntMethod (jclass cl0
, jmethodID meth1
, ...)
1207 va_start (args
, meth1
);
1208 jint result
= p
->CallStaticIntMethodV (this, cl0
, meth1
, args
);
1213 jint
CallStaticIntMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1214 { return p
->CallStaticIntMethodV (this, cl0
, meth1
, val2
); }
1216 jint
CallStaticIntMethodA (jclass cl0
, jmethodID meth1
, const jvalue
* val2
)
1217 { return p
->CallStaticIntMethodA (this, cl0
, meth1
, val2
); }
1219 jlong
CallStaticLongMethod (jclass cl0
, jmethodID meth1
, ...)
1222 va_start (args
, meth1
);
1223 jlong result
= p
->CallStaticLongMethodV (this, cl0
, meth1
, args
);
1228 jlong
CallStaticLongMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1229 { return p
->CallStaticLongMethodV (this, cl0
, meth1
, val2
); }
1231 jlong
CallStaticLongMethodA (jclass cl0
, jmethodID meth1
, const jvalue
* val2
)
1232 { return p
->CallStaticLongMethodA (this, cl0
, meth1
, val2
); }
1234 jfloat
CallStaticFloatMethod (jclass cl0
, jmethodID meth1
, ...)
1237 va_start (args
, meth1
);
1238 jfloat result
= p
->CallStaticFloatMethodV (this, cl0
, meth1
, args
);
1243 jfloat
CallStaticFloatMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1244 { return p
->CallStaticFloatMethodV (this, cl0
, meth1
, val2
); }
1246 jfloat
CallStaticFloatMethodA (jclass cl0
, jmethodID meth1
,
1247 const jvalue
* val2
)
1248 { return p
->CallStaticFloatMethodA (this, cl0
, meth1
, val2
); }
1250 jdouble
CallStaticDoubleMethod (jclass cl0
, jmethodID meth1
, ...)
1253 va_start (args
, meth1
);
1254 jdouble result
= p
->CallStaticDoubleMethodV (this, cl0
, meth1
, args
);
1259 jdouble
CallStaticDoubleMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1260 { return p
->CallStaticDoubleMethodV (this, cl0
, meth1
, val2
); }
1262 jdouble
CallStaticDoubleMethodA (jclass cl0
, jmethodID meth1
,
1263 const jvalue
* val2
)
1264 { return p
->CallStaticDoubleMethodA (this, cl0
, meth1
, val2
); }
1266 void CallStaticVoidMethod (jclass cl0
, jmethodID meth1
, ...)
1269 va_start (args
, meth1
);
1270 p
->CallStaticVoidMethodV (this, cl0
, meth1
, args
);
1274 void CallStaticVoidMethodV (jclass cl0
, jmethodID meth1
, va_list val2
)
1275 { p
->CallStaticVoidMethodV (this, cl0
, meth1
, val2
); }
1277 void CallStaticVoidMethodA (jclass cl0
, jmethodID meth1
, const jvalue
* val2
)
1278 { p
->CallStaticVoidMethodA (this, cl0
, meth1
, val2
); }
1280 jfieldID
GetStaticFieldID (jclass cl0
, const char * val1
, const char * val2
)
1281 { return p
->GetStaticFieldID (this, cl0
, val1
, val2
); }
1283 jobject
GetStaticObjectField (jclass cl0
, jfieldID fld1
)
1284 { return p
->GetStaticObjectField (this, cl0
, fld1
); }
1286 jboolean
GetStaticBooleanField (jclass cl0
, jfieldID fld1
)
1287 { return p
->GetStaticBooleanField (this, cl0
, fld1
); }
1289 jbyte
GetStaticByteField (jclass cl0
, jfieldID fld1
)
1290 { return p
->GetStaticByteField (this, cl0
, fld1
); }
1292 jchar
GetStaticCharField (jclass cl0
, jfieldID fld1
)
1293 { return p
->GetStaticCharField (this, cl0
, fld1
); }
1295 jshort
GetStaticShortField (jclass cl0
, jfieldID fld1
)
1296 { return p
->GetStaticShortField (this, cl0
, fld1
); }
1298 jint
GetStaticIntField (jclass cl0
, jfieldID fld1
)
1299 { return p
->GetStaticIntField (this, cl0
, fld1
); }
1301 jlong
GetStaticLongField (jclass cl0
, jfieldID fld1
)
1302 { return p
->GetStaticLongField (this, cl0
, fld1
); }
1304 jfloat
GetStaticFloatField (jclass cl0
, jfieldID fld1
)
1305 { return p
->GetStaticFloatField (this, cl0
, fld1
); }
1307 jdouble
GetStaticDoubleField (jclass cl0
, jfieldID fld1
)
1308 { return p
->GetStaticDoubleField (this, cl0
, fld1
); }
1310 void SetStaticObjectField (jclass cl0
, jfieldID fld1
, jobject obj2
)
1311 { p
->SetStaticObjectField (this, cl0
, fld1
, obj2
); }
1313 void SetStaticBooleanField (jclass cl0
, jfieldID fld1
, jboolean val2
)
1314 { p
->SetStaticBooleanField (this, cl0
, fld1
, val2
); }
1316 void SetStaticByteField (jclass cl0
, jfieldID fld1
, jbyte val2
)
1317 { p
->SetStaticByteField (this, cl0
, fld1
, val2
); }
1319 void SetStaticCharField (jclass cl0
, jfieldID fld1
, jchar val2
)
1320 { p
->SetStaticCharField (this, cl0
, fld1
, val2
); }
1322 void SetStaticShortField (jclass cl0
, jfieldID fld1
, jshort val2
)
1323 { p
->SetStaticShortField (this, cl0
, fld1
, val2
); }
1325 void SetStaticIntField (jclass cl0
, jfieldID fld1
, jint val2
)
1326 { p
->SetStaticIntField (this, cl0
, fld1
, val2
); }
1328 void SetStaticLongField (jclass cl0
, jfieldID fld1
, jlong val2
)
1329 { p
->SetStaticLongField (this, cl0
, fld1
, val2
); }
1331 void SetStaticFloatField (jclass cl0
, jfieldID fld1
, jfloat val2
)
1332 { p
->SetStaticFloatField (this, cl0
, fld1
, val2
); }
1334 void SetStaticDoubleField (jclass cl0
, jfieldID fld1
, jdouble val2
)
1335 { p
->SetStaticDoubleField (this, cl0
, fld1
, val2
); }
1337 jstring
NewString (const jchar
* val0
, jsize val1
)
1338 { return p
->NewString (this, val0
, val1
); }
1340 jint
GetStringLength (jstring val0
)
1341 { return p
->GetStringLength (this, val0
); }
1343 const jchar
* GetStringChars (jstring val0
, jboolean
* val1
)
1344 { return p
->GetStringChars (this, val0
, val1
); }
1346 void ReleaseStringChars (jstring val0
, const jchar
* val1
)
1347 { p
->ReleaseStringChars (this, val0
, val1
); }
1349 jstring
NewStringUTF (const char * val0
)
1350 { return p
->NewStringUTF (this, val0
); }
1352 jsize
GetStringUTFLength (jstring val0
)
1353 { return p
->GetStringUTFLength (this, val0
); }
1355 const char * GetStringUTFChars (jstring val0
, jboolean
* val1
)
1356 { return p
->GetStringUTFChars (this, val0
, val1
); }
1358 void ReleaseStringUTFChars (jstring val0
, const char * val1
)
1359 { p
->ReleaseStringUTFChars (this, val0
, val1
); }
1361 jsize
GetArrayLength (jarray val0
)
1362 { return p
->GetArrayLength (this, val0
); }
1364 jobjectArray
NewObjectArray (jsize val0
, jclass cl1
, jobject obj2
)
1365 { return p
->NewObjectArray (this, val0
, cl1
, obj2
); }
1367 jobject
GetObjectArrayElement (jobjectArray val0
, jsize val1
)
1368 { return p
->GetObjectArrayElement (this, val0
, val1
); }
1370 void SetObjectArrayElement (jobjectArray val0
, jsize val1
, jobject obj2
)
1371 { p
->SetObjectArrayElement (this, val0
, val1
, obj2
); }
1373 jbooleanArray
NewBooleanArray (jsize val0
)
1374 { return p
->NewBooleanArray (this, val0
); }
1376 jbyteArray
NewByteArray (jsize val0
)
1377 { return p
->NewByteArray (this, val0
); }
1379 jcharArray
NewCharArray (jsize val0
)
1380 { return p
->NewCharArray (this, val0
); }
1382 jshortArray
NewShortArray (jsize val0
)
1383 { return p
->NewShortArray (this, val0
); }
1385 jintArray
NewIntArray (jsize val0
)
1386 { return p
->NewIntArray (this, val0
); }
1388 jlongArray
NewLongArray (jsize val0
)
1389 { return p
->NewLongArray (this, val0
); }
1391 jfloatArray
NewFloatArray (jsize val0
)
1392 { return p
->NewFloatArray (this, val0
); }
1394 jdoubleArray
NewDoubleArray (jsize val0
)
1395 { return p
->NewDoubleArray (this, val0
); }
1397 jboolean
* GetBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
)
1398 { return p
->GetBooleanArrayElements (this, val0
, val1
); }
1400 jbyte
* GetByteArrayElements (jbyteArray val0
, jboolean
* val1
)
1401 { return p
->GetByteArrayElements (this, val0
, val1
); }
1403 jchar
* GetCharArrayElements (jcharArray val0
, jboolean
* val1
)
1404 { return p
->GetCharArrayElements (this, val0
, val1
); }
1406 jshort
* GetShortArrayElements (jshortArray val0
, jboolean
* val1
)
1407 { return p
->GetShortArrayElements (this, val0
, val1
); }
1409 jint
* GetIntArrayElements (jintArray val0
, jboolean
* val1
)
1410 { return p
->GetIntArrayElements (this, val0
, val1
); }
1412 jlong
* GetLongArrayElements (jlongArray val0
, jboolean
* val1
)
1413 { return p
->GetLongArrayElements (this, val0
, val1
); }
1415 jfloat
* GetFloatArrayElements (jfloatArray val0
, jboolean
* val1
)
1416 { return p
->GetFloatArrayElements (this, val0
, val1
); }
1418 jdouble
* GetDoubleArrayElements (jdoubleArray val0
, jboolean
* val1
)
1419 { return p
->GetDoubleArrayElements (this, val0
, val1
); }
1421 void ReleaseBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
, jint val2
)
1422 { p
->ReleaseBooleanArrayElements (this, val0
, val1
, val2
); }
1424 void ReleaseByteArrayElements (jbyteArray val0
, jbyte
* val1
, jint val2
)
1425 { p
->ReleaseByteArrayElements (this, val0
, val1
, val2
); }
1427 void ReleaseCharArrayElements (jcharArray val0
, jchar
* val1
, jint val2
)
1428 { p
->ReleaseCharArrayElements (this, val0
, val1
, val2
); }
1430 void ReleaseShortArrayElements (jshortArray val0
, jshort
* val1
, jint val2
)
1431 { p
->ReleaseShortArrayElements (this, val0
, val1
, val2
); }
1433 void ReleaseIntArrayElements (jintArray val0
, jint
* val1
, jint val2
)
1434 { p
->ReleaseIntArrayElements (this, val0
, val1
, val2
); }
1436 void ReleaseLongArrayElements (jlongArray val0
, jlong
* val1
, jint val2
)
1437 { p
->ReleaseLongArrayElements (this, val0
, val1
, val2
); }
1439 void ReleaseFloatArrayElements (jfloatArray val0
, jfloat
* val1
, jint val2
)
1440 { p
->ReleaseFloatArrayElements (this, val0
, val1
, val2
); }
1442 void ReleaseDoubleArrayElements (jdoubleArray val0
, jdouble
* val1
, jint val2
)
1443 { p
->ReleaseDoubleArrayElements (this, val0
, val1
, val2
); }
1445 void GetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1446 { p
->GetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1448 void GetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1449 { p
->GetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1451 void GetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1452 { p
->GetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1454 void GetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1455 { p
->GetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1457 void GetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1458 { p
->GetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1460 void GetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1461 { p
->GetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1463 void GetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1464 { p
->GetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1466 void GetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1467 { p
->GetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1469 void SetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1470 { p
->SetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1472 void SetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1473 { p
->SetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1475 void SetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1476 { p
->SetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1478 void SetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1479 { p
->SetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1481 void SetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1482 { p
->SetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1484 void SetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1485 { p
->SetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1487 void SetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1488 { p
->SetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1490 void SetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1491 { p
->SetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1493 jint
RegisterNatives (jclass cl0
, const JNINativeMethod
* val1
, jint val2
)
1494 { return p
->RegisterNatives (this, cl0
, val1
, val2
); }
1496 jint
UnregisterNatives (jclass cl0
)
1497 { return p
->UnregisterNatives (this, cl0
); }
1499 jint
MonitorEnter (jobject obj0
)
1500 { return p
->MonitorEnter (this, obj0
); }
1502 jint
MonitorExit (jobject obj0
)
1503 { return p
->MonitorExit (this, obj0
); }
1505 jint
GetJavaVM (JavaVM
** val0
)
1506 { return p
->GetJavaVM (this, val0
); }
1508 /* ---- JNI 1.2 functions ---- */
1510 void GetStringRegion (jstring val0
, jsize val1
, jsize val2
, jchar
* val3
)
1511 { p
->GetStringRegion (this, val0
, val1
, val2
, val3
); }
1513 void GetStringUTFRegion (jstring val0
, jsize val1
, jsize val2
, char * val3
)
1514 { p
->GetStringUTFRegion (this, val0
, val1
, val2
, val3
); }
1516 void * GetPrimitiveArrayCritical (jarray val0
, jboolean
* val1
)
1517 { return p
->GetPrimitiveArrayCritical (this, val0
, val1
); }
1519 void ReleasePrimitiveArrayCritical (jarray val0
, void * val1
, jint val2
)
1520 { p
->ReleasePrimitiveArrayCritical (this, val0
, val1
, val2
); }
1522 const jchar
* GetStringCritical (jstring val0
, jboolean
* val1
)
1523 { return p
->GetStringCritical (this, val0
, val1
); }
1525 void ReleaseStringCritical (jstring val0
, const jchar
* val1
)
1526 { p
->ReleaseStringCritical (this, val0
, val1
); }
1528 jweak
NewWeakGlobalRef (jobject obj0
)
1529 { return p
->NewWeakGlobalRef (this, obj0
); }
1531 void DeleteWeakGlobalRef (jweak val0
)
1532 { p
->DeleteWeakGlobalRef (this, val0
); }
1534 jboolean
ExceptionCheck ()
1535 { return p
->ExceptionCheck (this); }
1537 /* ---- JNI 1.4 functions ---- */
1539 jobject
NewDirectByteBuffer (void *addr
, jlong capacity
)
1540 { return p
->NewDirectByteBuffer (this, addr
, capacity
); }
1542 void *GetDirectBufferAddress (jobject buf
)
1543 { return p
->GetDirectBufferAddress (this, buf
); }
1545 jlong
GetDirectBufferCapacity (jobject buf
)
1546 { return p
->GetDirectBufferCapacity (this, buf
); }
1548 /* ---- JNI 1.6 functions ---- */
1550 jobjectRefType
GetObjectRefType (jobject obj
)
1551 { return p
->GetObjectRefType (this, obj
); }
1554 #endif /* __cplusplus */
1560 struct JNIInvokeInterface_
1566 jint (JNICALL
*DestroyJavaVM
) (JavaVM
*);
1567 jint (JNICALL
*AttachCurrentThread
) (JavaVM
*, void **, void *);
1568 jint (JNICALL
*DetachCurrentThread
) (JavaVM
*);
1569 jint (JNICALL
*GetEnv
) (JavaVM
*, void **, jint
);
1570 jint (JNICALL
*AttachCurrentThreadAsDaemon
) (JavaVM
*, void **, void *);
1578 const struct JNIInvokeInterface_
*functions
;
1580 jint
DestroyJavaVM ()
1581 { return functions
->DestroyJavaVM (this); }
1583 jint
AttachCurrentThread (void **penv
, void *args
)
1584 { return functions
->AttachCurrentThread (this, penv
, args
); }
1586 jint
DetachCurrentThread ()
1587 { return functions
->DetachCurrentThread (this); }
1589 jint
GetEnv (void **penv
, jint version
)
1590 { return functions
->GetEnv (this, penv
, version
); }
1592 jint
AttachCurrentThreadAsDaemon (void **penv
, void *args
)
1593 { return functions
->AttachCurrentThreadAsDaemon (this, penv
, args
); }
1596 #endif /* __cplusplus */
1598 typedef struct JavaVMAttachArgs
1600 jint version
; /* Must be JNI_VERSION_1_2. */
1601 char *name
; /* The name of the thread (or NULL). */
1602 jobject group
; /* Global ref of a ThreadGroup object
1606 typedef struct JavaVMOption
1612 typedef struct JavaVMInitArgs
1614 /* Must be JNI_VERSION_1_2. */
1617 /* Number of options. */
1620 /* Options to the VM. */
1621 JavaVMOption
*options
;
1623 /* Whether we should ignore unrecognized options. */
1624 jboolean ignoreUnrecognized
;
1627 typedef struct JDK1_1InitArgs
1629 /* VM version. Should be JNI_VERSION_1_1. Note that before JDK
1630 1.1.2, this field was named 'reserved0'. (I don't know what the
1631 current 'reserved0' field was named then.) */
1634 /* A null-terminated array of environment strings, each of the form
1635 "KEY=VALUE". This is used to set system properties. Note that
1636 before JDK 1.1.2, this field was named 'reserved1'. */
1640 jint nativeStackSize
;
1645 const char *classpath
;
1647 jint (JNICALL
*vfprintf
) (FILE *file
, const char *fmt
, va_list args
);
1648 void (JNICALL
*exit
) (jint value
);
1649 void (JNICALL
*abort
) (void);
1652 jint enableVerboseGC
;
1653 jint disableAsyncGC
;
1660 typedef struct JDK1_1AttachArgs
1662 /* Dummy field since C cannot have empty structs. The name and type
1663 are chosen to comply with the spec. */
1668 /* Keep c-font-lock-extra-types in alphabetical order. */
1671 c-font-lock-extra-types: ("\\sw+_t" \
1672 "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray" \
1673 "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar" "jcharArray" \
1674 "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray" \
1675 "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" \
1676 "jstring" "jthrowable" "jvalue" "jweak")
1680 #endif /* _CLASSPATH_JNI_H */