Project

Profile

Help

Revision e52619b9

Added by O'Neil Delpratt almost 3 years ago

Reorganise the location of the jni files

View differences:

.gitattributes
2631 2631
latest9.8/hec/Saxon.C.API/config.w32 svn_eol_002dstyle=native
2632 2632
latest9.8/hec/Saxon.C.API/dllmain.cpp svn_eol_002dstyle=native
2633 2633
latest9.8/hec/Saxon.C.API/jni/jni.h svn_eol_002dstyle=native
2634
latest9.8/hec/Saxon.C.API/jni/jni_md.h svn_eol_002dstyle=native
2635 2634
latest9.8/hec/Saxon.C.API/php_saxon.cpp svn_eol_002dstyle=native
2636 2635
latest9.8/hec/Saxon.C.API/php_saxon.h svn_eol_002dstyle=native
2637 2636
latest9.8/hec/Saxon.C.API/readme.md svn_eol_002dstyle=native
latest9.8/hec/Saxon.C.API/jni/jni.h
1 1
/*
2
 * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
 *
5
 * This code is free software; you can redistribute it and/or modify it
6
 * under the terms of the GNU General Public License version 2 only, as
7
 * published by the Free Software Foundation.  Oracle designates this
8
 * particular file as subject to the "Classpath" exception as provided
9
 * by Oracle in the LICENSE file that accompanied this code.
10
 *
11
 * This code is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14
 * version 2 for more details (a copy is included in the LICENSE file that
15
 * accompanied this code).
16
 *
17
 * You should have received a copy of the GNU General Public License version
18
 * 2 along with this work; if not, write to the Free Software Foundation,
19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
 *
21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
 * or visit www.oracle.com if you need additional information or have any
23
 * questions.
24
 */
2
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
3
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
4
*
5
*
6
*
7
*
8
*
9
*
10
*
11
*
12
*
13
*
14
*
15
*
16
*
17
*
18
*
19
*
20
*
21
*
22
*
23
*
24
*/
25 25

  
26 26
/*
27
 * We used part of Netscape's Java Runtime Interface (JRI) as the starting
28
 * point of our design and implementation.
29
 */
27
* We used part of Netscape's Java Runtime Interface (JRI) as the starting
28
* point of our design and implementation.
29
*/
30 30

  
31 31
/******************************************************************************
32
 * Java Runtime Interface
33
 * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
34
 *****************************************************************************/
32
* Java Runtime Interface
33
* Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
34
*****************************************************************************/
35 35

  
36 36
#ifndef _JAVASOFT_JNI_H_
37 37
#define _JAVASOFT_JNI_H_
......
40 40
#include <stdarg.h>
41 41

  
42 42
/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
43
   and jlong */
43
and jlong */
44 44

  
45 45
#include "jni_md.h"
46 46

  
......
48 48
extern "C" {
49 49
#endif
50 50

  
51
/*
52
 * JNI Types
53
 */
51
	/*
52
	* JNI Types
53
	*/
54 54

  
55 55
#ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H
56 56

  
57
typedef unsigned char   jboolean;
58
typedef unsigned short  jchar;
59
typedef short           jshort;
60
typedef float           jfloat;
61
typedef double          jdouble;
57
	typedef unsigned char   jboolean;
58
	typedef unsigned short  jchar;
59
	typedef short           jshort;
60
	typedef float           jfloat;
61
	typedef double          jdouble;
62 62

  
63
typedef jint            jsize;
63
	typedef jint            jsize;
64 64

  
65 65
#ifdef __cplusplus
66 66

  
67
class _jobject {};
68
class _jclass : public _jobject {};
69
class _jthrowable : public _jobject {};
70
class _jstring : public _jobject {};
71
class _jarray : public _jobject {};
72
class _jbooleanArray : public _jarray {};
73
class _jbyteArray : public _jarray {};
74
class _jcharArray : public _jarray {};
75
class _jshortArray : public _jarray {};
76
class _jintArray : public _jarray {};
77
class _jlongArray : public _jarray {};
78
class _jfloatArray : public _jarray {};
79
class _jdoubleArray : public _jarray {};
80
class _jobjectArray : public _jarray {};
81

  
82
typedef _jobject *jobject;
83
typedef _jclass *jclass;
84
typedef _jthrowable *jthrowable;
85
typedef _jstring *jstring;
86
typedef _jarray *jarray;
87
typedef _jbooleanArray *jbooleanArray;
88
typedef _jbyteArray *jbyteArray;
89
typedef _jcharArray *jcharArray;
90
typedef _jshortArray *jshortArray;
91
typedef _jintArray *jintArray;
92
typedef _jlongArray *jlongArray;
93
typedef _jfloatArray *jfloatArray;
94
typedef _jdoubleArray *jdoubleArray;
95
typedef _jobjectArray *jobjectArray;
67
	class _jobject {};
68
	class _jclass : public _jobject {};
69
	class _jthrowable : public _jobject {};
70
	class _jstring : public _jobject {};
71
	class _jarray : public _jobject {};
72
	class _jbooleanArray : public _jarray {};
73
	class _jbyteArray : public _jarray {};
74
	class _jcharArray : public _jarray {};
75
	class _jshortArray : public _jarray {};
76
	class _jintArray : public _jarray {};
77
	class _jlongArray : public _jarray {};
78
	class _jfloatArray : public _jarray {};
79
	class _jdoubleArray : public _jarray {};
80
	class _jobjectArray : public _jarray {};
81

  
82
	typedef _jobject *jobject;
83
	typedef _jclass *jclass;
84
	typedef _jthrowable *jthrowable;
85
	typedef _jstring *jstring;
86
	typedef _jarray *jarray;
87
	typedef _jbooleanArray *jbooleanArray;
88
	typedef _jbyteArray *jbyteArray;
89
	typedef _jcharArray *jcharArray;
90
	typedef _jshortArray *jshortArray;
91
	typedef _jintArray *jintArray;
92
	typedef _jlongArray *jlongArray;
93
	typedef _jfloatArray *jfloatArray;
94
	typedef _jdoubleArray *jdoubleArray;
95
	typedef _jobjectArray *jobjectArray;
96 96

  
97 97
#else
98 98

  
99
struct _jobject;
100

  
101
typedef struct _jobject *jobject;
102
typedef jobject jclass;
103
typedef jobject jthrowable;
104
typedef jobject jstring;
105
typedef jobject jarray;
106
typedef jarray jbooleanArray;
107
typedef jarray jbyteArray;
108
typedef jarray jcharArray;
109
typedef jarray jshortArray;
110
typedef jarray jintArray;
111
typedef jarray jlongArray;
112
typedef jarray jfloatArray;
113
typedef jarray jdoubleArray;
114
typedef jarray jobjectArray;
99
	struct _jobject;
100

  
101
	typedef struct _jobject *jobject;
102
	typedef jobject jclass;
103
	typedef jobject jthrowable;
104
	typedef jobject jstring;
105
	typedef jobject jarray;
106
	typedef jarray jbooleanArray;
107
	typedef jarray jbyteArray;
108
	typedef jarray jcharArray;
109
	typedef jarray jshortArray;
110
	typedef jarray jintArray;
111
	typedef jarray jlongArray;
112
	typedef jarray jfloatArray;
113
	typedef jarray jdoubleArray;
114
	typedef jarray jobjectArray;
115 115

  
116 116
#endif
117 117

  
118
typedef jobject jweak;
118
	typedef jobject jweak;
119 119

  
120
typedef union jvalue {
121
    jboolean z;
122
    jbyte    b;
123
    jchar    c;
124
    jshort   s;
125
    jint     i;
126
    jlong    j;
127
    jfloat   f;
128
    jdouble  d;
129
    jobject  l;
130
} jvalue;
120
	typedef union jvalue {
121
		jboolean z;
122
		jbyte    b;
123
		jchar    c;
124
		jshort   s;
125
		jint     i;
126
		jlong    j;
127
		jfloat   f;
128
		jdouble  d;
129
		jobject  l;
130
	} jvalue;
131 131

  
132
struct _jfieldID;
133
typedef struct _jfieldID *jfieldID;
132
	struct _jfieldID;
133
	typedef struct _jfieldID *jfieldID;
134 134

  
135
struct _jmethodID;
136
typedef struct _jmethodID *jmethodID;
135
	struct _jmethodID;
136
	typedef struct _jmethodID *jmethodID;
137 137

  
138
/* Return values from jobjectRefType */
139
typedef enum _jobjectType {
140
     JNIInvalidRefType    = 0,
141
     JNILocalRefType      = 1,
142
     JNIGlobalRefType     = 2,
143
     JNIWeakGlobalRefType = 3
144
} jobjectRefType;
138
	/* Return values from jobjectRefType */
139
	typedef enum _jobjectType {
140
		JNIInvalidRefType = 0,
141
		JNILocalRefType = 1,
142
		JNIGlobalRefType = 2,
143
		JNIWeakGlobalRefType = 3
144
	} jobjectRefType;
145 145

  
146 146

  
147 147
#endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */
148 148

  
149
/*
150
 * jboolean constants
151
 */
149
	/*
150
	* jboolean constants
151
	*/
152 152

  
153 153
#define JNI_FALSE 0
154 154
#define JNI_TRUE 1
155 155

  
156
/*
157
 * possible return values for JNI functions.
158
 */
156
	/*
157
	* possible return values for JNI functions.
158
	*/
159 159

  
160 160
#define JNI_OK           0                 /* success */
161 161
#define JNI_ERR          (-1)              /* unknown error */
......
165 165
#define JNI_EEXIST       (-5)              /* VM already created */
166 166
#define JNI_EINVAL       (-6)              /* invalid arguments */
167 167

  
168
/*
169
 * used in ReleaseScalarArrayElements
170
 */
168
	/*
169
	* used in ReleaseScalarArrayElements
170
	*/
171 171

  
172 172
#define JNI_COMMIT 1
173 173
#define JNI_ABORT 2
174 174

  
175
/*
176
 * used in RegisterNatives to describe native method name, signature,
177
 * and function pointer.
178
 */
175
	/*
176
	* used in RegisterNatives to describe native method name, signature,
177
	* and function pointer.
178
	*/
179 179

  
180
typedef struct {
181
    char *name;
182
    char *signature;
183
    void *fnPtr;
184
} JNINativeMethod;
180
	typedef struct {
181
		char *name;
182
		char *signature;
183
		void *fnPtr;
184
	} JNINativeMethod;
185 185

  
186
/*
187
 * JNI Native Method Interface.
188
 */
186
	/*
187
	* JNI Native Method Interface.
188
	*/
189 189

  
190
struct JNINativeInterface_;
190
	struct JNINativeInterface_;
191 191

  
192
struct JNIEnv_;
192
	struct JNIEnv_;
193 193

  
194 194
#ifdef __cplusplus
195
typedef JNIEnv_ JNIEnv;
195
	typedef JNIEnv_ JNIEnv;
196 196
#else
197
typedef const struct JNINativeInterface_ *JNIEnv;
197
	typedef const struct JNINativeInterface_ *JNIEnv;
198 198
#endif
199 199

  
200
/*
201
 * JNI Invocation Interface.
202
 */
200
	/*
201
	* JNI Invocation Interface.
202
	*/
203 203

  
204
struct JNIInvokeInterface_;
204
	struct JNIInvokeInterface_;
205 205

  
206
struct JavaVM_;
206
	struct JavaVM_;
207 207

  
208 208
#ifdef __cplusplus
209
typedef JavaVM_ JavaVM;
209
	typedef JavaVM_ JavaVM;
210 210
#else
211
typedef const struct JNIInvokeInterface_ *JavaVM;
211
	typedef const struct JNIInvokeInterface_ *JavaVM;
212 212
#endif
213 213

  
214
struct JNINativeInterface_ {
215
    void *reserved0;
216
    void *reserved1;
217
    void *reserved2;
218

  
219
    void *reserved3;
220
    jint (JNICALL *GetVersion)(JNIEnv *env);
221

  
222
    jclass (JNICALL *DefineClass)
223
      (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
224
       jsize len);
225
    jclass (JNICALL *FindClass)
226
      (JNIEnv *env, const char *name);
227

  
228
    jmethodID (JNICALL *FromReflectedMethod)
229
      (JNIEnv *env, jobject method);
230
    jfieldID (JNICALL *FromReflectedField)
231
      (JNIEnv *env, jobject field);
232

  
233
    jobject (JNICALL *ToReflectedMethod)
234
      (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
235

  
236
    jclass (JNICALL *GetSuperclass)
237
      (JNIEnv *env, jclass sub);
238
    jboolean (JNICALL *IsAssignableFrom)
239
      (JNIEnv *env, jclass sub, jclass sup);
240

  
241
    jobject (JNICALL *ToReflectedField)
242
      (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
243

  
244
    jint (JNICALL *Throw)
245
      (JNIEnv *env, jthrowable obj);
246
    jint (JNICALL *ThrowNew)
247
      (JNIEnv *env, jclass clazz, const char *msg);
248
    jthrowable (JNICALL *ExceptionOccurred)
249
      (JNIEnv *env);
250
    void (JNICALL *ExceptionDescribe)
251
      (JNIEnv *env);
252
    void (JNICALL *ExceptionClear)
253
      (JNIEnv *env);
254
    void (JNICALL *FatalError)
255
      (JNIEnv *env, const char *msg);
256

  
257
    jint (JNICALL *PushLocalFrame)
258
      (JNIEnv *env, jint capacity);
259
    jobject (JNICALL *PopLocalFrame)
260
      (JNIEnv *env, jobject result);
261

  
262
    jobject (JNICALL *NewGlobalRef)
263
      (JNIEnv *env, jobject lobj);
264
    void (JNICALL *DeleteGlobalRef)
265
      (JNIEnv *env, jobject gref);
266
    void (JNICALL *DeleteLocalRef)
267
      (JNIEnv *env, jobject obj);
268
    jboolean (JNICALL *IsSameObject)
269
      (JNIEnv *env, jobject obj1, jobject obj2);
270
    jobject (JNICALL *NewLocalRef)
271
      (JNIEnv *env, jobject ref);
272
    jint (JNICALL *EnsureLocalCapacity)
273
      (JNIEnv *env, jint capacity);
274

  
275
    jobject (JNICALL *AllocObject)
276
      (JNIEnv *env, jclass clazz);
277
    jobject (JNICALL *NewObject)
278
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
279
    jobject (JNICALL *NewObjectV)
280
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
281
    jobject (JNICALL *NewObjectA)
282
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
283

  
284
    jclass (JNICALL *GetObjectClass)
285
      (JNIEnv *env, jobject obj);
286
    jboolean (JNICALL *IsInstanceOf)
287
      (JNIEnv *env, jobject obj, jclass clazz);
288

  
289
    jmethodID (JNICALL *GetMethodID)
290
      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
291

  
292
    jobject (JNICALL *CallObjectMethod)
293
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
294
    jobject (JNICALL *CallObjectMethodV)
295
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
296
    jobject (JNICALL *CallObjectMethodA)
297
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
298

  
299
    jboolean (JNICALL *CallBooleanMethod)
300
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
301
    jboolean (JNICALL *CallBooleanMethodV)
302
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
303
    jboolean (JNICALL *CallBooleanMethodA)
304
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
305

  
306
    jbyte (JNICALL *CallByteMethod)
307
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
308
    jbyte (JNICALL *CallByteMethodV)
309
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
310
    jbyte (JNICALL *CallByteMethodA)
311
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
312

  
313
    jchar (JNICALL *CallCharMethod)
314
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
315
    jchar (JNICALL *CallCharMethodV)
316
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
317
    jchar (JNICALL *CallCharMethodA)
318
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
319

  
320
    jshort (JNICALL *CallShortMethod)
321
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
322
    jshort (JNICALL *CallShortMethodV)
323
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
324
    jshort (JNICALL *CallShortMethodA)
325
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
326

  
327
    jint (JNICALL *CallIntMethod)
328
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
329
    jint (JNICALL *CallIntMethodV)
330
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
331
    jint (JNICALL *CallIntMethodA)
332
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
333

  
334
    jlong (JNICALL *CallLongMethod)
335
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
336
    jlong (JNICALL *CallLongMethodV)
337
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
338
    jlong (JNICALL *CallLongMethodA)
339
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
340

  
341
    jfloat (JNICALL *CallFloatMethod)
342
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
343
    jfloat (JNICALL *CallFloatMethodV)
344
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
345
    jfloat (JNICALL *CallFloatMethodA)
346
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
347

  
348
    jdouble (JNICALL *CallDoubleMethod)
349
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
350
    jdouble (JNICALL *CallDoubleMethodV)
351
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
352
    jdouble (JNICALL *CallDoubleMethodA)
353
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
354

  
355
    void (JNICALL *CallVoidMethod)
356
      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
357
    void (JNICALL *CallVoidMethodV)
358
      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
359
    void (JNICALL *CallVoidMethodA)
360
      (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
361

  
362
    jobject (JNICALL *CallNonvirtualObjectMethod)
363
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
364
    jobject (JNICALL *CallNonvirtualObjectMethodV)
365
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
366
       va_list args);
367
    jobject (JNICALL *CallNonvirtualObjectMethodA)
368
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
369
       const jvalue * args);
370

  
371
    jboolean (JNICALL *CallNonvirtualBooleanMethod)
372
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
373
    jboolean (JNICALL *CallNonvirtualBooleanMethodV)
374
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
375
       va_list args);
376
    jboolean (JNICALL *CallNonvirtualBooleanMethodA)
377
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
378
       const jvalue * args);
379

  
380
    jbyte (JNICALL *CallNonvirtualByteMethod)
381
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
382
    jbyte (JNICALL *CallNonvirtualByteMethodV)
383
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
384
       va_list args);
385
    jbyte (JNICALL *CallNonvirtualByteMethodA)
386
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
387
       const jvalue *args);
388

  
389
    jchar (JNICALL *CallNonvirtualCharMethod)
390
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
391
    jchar (JNICALL *CallNonvirtualCharMethodV)
392
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
393
       va_list args);
394
    jchar (JNICALL *CallNonvirtualCharMethodA)
395
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
396
       const jvalue *args);
397

  
398
    jshort (JNICALL *CallNonvirtualShortMethod)
399
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
400
    jshort (JNICALL *CallNonvirtualShortMethodV)
401
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
402
       va_list args);
403
    jshort (JNICALL *CallNonvirtualShortMethodA)
404
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
405
       const jvalue *args);
406

  
407
    jint (JNICALL *CallNonvirtualIntMethod)
408
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
409
    jint (JNICALL *CallNonvirtualIntMethodV)
410
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
411
       va_list args);
412
    jint (JNICALL *CallNonvirtualIntMethodA)
413
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
414
       const jvalue *args);
415

  
416
    jlong (JNICALL *CallNonvirtualLongMethod)
417
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
418
    jlong (JNICALL *CallNonvirtualLongMethodV)
419
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
420
       va_list args);
421
    jlong (JNICALL *CallNonvirtualLongMethodA)
422
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
423
       const jvalue *args);
424

  
425
    jfloat (JNICALL *CallNonvirtualFloatMethod)
426
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
427
    jfloat (JNICALL *CallNonvirtualFloatMethodV)
428
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
429
       va_list args);
430
    jfloat (JNICALL *CallNonvirtualFloatMethodA)
431
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
432
       const jvalue *args);
433

  
434
    jdouble (JNICALL *CallNonvirtualDoubleMethod)
435
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
436
    jdouble (JNICALL *CallNonvirtualDoubleMethodV)
437
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
438
       va_list args);
439
    jdouble (JNICALL *CallNonvirtualDoubleMethodA)
440
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
441
       const jvalue *args);
442

  
443
    void (JNICALL *CallNonvirtualVoidMethod)
444
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
445
    void (JNICALL *CallNonvirtualVoidMethodV)
446
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
447
       va_list args);
448
    void (JNICALL *CallNonvirtualVoidMethodA)
449
      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
450
       const jvalue * args);
451

  
452
    jfieldID (JNICALL *GetFieldID)
453
      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
454

  
455
    jobject (JNICALL *GetObjectField)
456
      (JNIEnv *env, jobject obj, jfieldID fieldID);
457
    jboolean (JNICALL *GetBooleanField)
458
      (JNIEnv *env, jobject obj, jfieldID fieldID);
459
    jbyte (JNICALL *GetByteField)
460
      (JNIEnv *env, jobject obj, jfieldID fieldID);
461
    jchar (JNICALL *GetCharField)
462
      (JNIEnv *env, jobject obj, jfieldID fieldID);
463
    jshort (JNICALL *GetShortField)
464
      (JNIEnv *env, jobject obj, jfieldID fieldID);
465
    jint (JNICALL *GetIntField)
466
      (JNIEnv *env, jobject obj, jfieldID fieldID);
467
    jlong (JNICALL *GetLongField)
468
      (JNIEnv *env, jobject obj, jfieldID fieldID);
469
    jfloat (JNICALL *GetFloatField)
470
      (JNIEnv *env, jobject obj, jfieldID fieldID);
471
    jdouble (JNICALL *GetDoubleField)
472
      (JNIEnv *env, jobject obj, jfieldID fieldID);
473

  
474
    void (JNICALL *SetObjectField)
475
      (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
476
    void (JNICALL *SetBooleanField)
477
      (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
478
    void (JNICALL *SetByteField)
479
      (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
480
    void (JNICALL *SetCharField)
481
      (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
482
    void (JNICALL *SetShortField)
483
      (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
484
    void (JNICALL *SetIntField)
485
      (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
486
    void (JNICALL *SetLongField)
487
      (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
488
    void (JNICALL *SetFloatField)
489
      (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
490
    void (JNICALL *SetDoubleField)
491
      (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
492

  
493
    jmethodID (JNICALL *GetStaticMethodID)
494
      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
495

  
496
    jobject (JNICALL *CallStaticObjectMethod)
497
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
498
    jobject (JNICALL *CallStaticObjectMethodV)
499
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
500
    jobject (JNICALL *CallStaticObjectMethodA)
501
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
502

  
503
    jboolean (JNICALL *CallStaticBooleanMethod)
504
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
505
    jboolean (JNICALL *CallStaticBooleanMethodV)
506
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
507
    jboolean (JNICALL *CallStaticBooleanMethodA)
508
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
509

  
510
    jbyte (JNICALL *CallStaticByteMethod)
511
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
512
    jbyte (JNICALL *CallStaticByteMethodV)
513
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
514
    jbyte (JNICALL *CallStaticByteMethodA)
515
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
516

  
517
    jchar (JNICALL *CallStaticCharMethod)
518
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
519
    jchar (JNICALL *CallStaticCharMethodV)
520
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
521
    jchar (JNICALL *CallStaticCharMethodA)
522
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
523

  
524
    jshort (JNICALL *CallStaticShortMethod)
525
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
526
    jshort (JNICALL *CallStaticShortMethodV)
527
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
528
    jshort (JNICALL *CallStaticShortMethodA)
529
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
530

  
531
    jint (JNICALL *CallStaticIntMethod)
532
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
533
    jint (JNICALL *CallStaticIntMethodV)
534
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
535
    jint (JNICALL *CallStaticIntMethodA)
536
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
537

  
538
    jlong (JNICALL *CallStaticLongMethod)
539
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
540
    jlong (JNICALL *CallStaticLongMethodV)
541
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
542
    jlong (JNICALL *CallStaticLongMethodA)
543
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
544

  
545
    jfloat (JNICALL *CallStaticFloatMethod)
546
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
547
    jfloat (JNICALL *CallStaticFloatMethodV)
548
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
549
    jfloat (JNICALL *CallStaticFloatMethodA)
550
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
551

  
552
    jdouble (JNICALL *CallStaticDoubleMethod)
553
      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
554
    jdouble (JNICALL *CallStaticDoubleMethodV)
555
      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
556
    jdouble (JNICALL *CallStaticDoubleMethodA)
557
      (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
558

  
559
    void (JNICALL *CallStaticVoidMethod)
560
      (JNIEnv *env, jclass cls, jmethodID methodID, ...);
561
    void (JNICALL *CallStaticVoidMethodV)
562
      (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
563
    void (JNICALL *CallStaticVoidMethodA)
564
      (JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args);
565

  
566
    jfieldID (JNICALL *GetStaticFieldID)
567
      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
568
    jobject (JNICALL *GetStaticObjectField)
569
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
570
    jboolean (JNICALL *GetStaticBooleanField)
571
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
572
    jbyte (JNICALL *GetStaticByteField)
573
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
574
    jchar (JNICALL *GetStaticCharField)
575
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
576
    jshort (JNICALL *GetStaticShortField)
577
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
578
    jint (JNICALL *GetStaticIntField)
579
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
580
    jlong (JNICALL *GetStaticLongField)
581
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
582
    jfloat (JNICALL *GetStaticFloatField)
583
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
584
    jdouble (JNICALL *GetStaticDoubleField)
585
      (JNIEnv *env, jclass clazz, jfieldID fieldID);
586

  
587
    void (JNICALL *SetStaticObjectField)
588
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
589
    void (JNICALL *SetStaticBooleanField)
590
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
591
    void (JNICALL *SetStaticByteField)
592
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
593
    void (JNICALL *SetStaticCharField)
594
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
595
    void (JNICALL *SetStaticShortField)
596
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
597
    void (JNICALL *SetStaticIntField)
598
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
599
    void (JNICALL *SetStaticLongField)
600
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
601
    void (JNICALL *SetStaticFloatField)
602
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
603
    void (JNICALL *SetStaticDoubleField)
604
      (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
605

  
606
    jstring (JNICALL *NewString)
607
      (JNIEnv *env, const jchar *unicode, jsize len);
608
    jsize (JNICALL *GetStringLength)
609
      (JNIEnv *env, jstring str);
610
    const jchar *(JNICALL *GetStringChars)
611
      (JNIEnv *env, jstring str, jboolean *isCopy);
612
    void (JNICALL *ReleaseStringChars)
613
      (JNIEnv *env, jstring str, const jchar *chars);
614

  
615
    jstring (JNICALL *NewStringUTF)
616
      (JNIEnv *env, const char *utf);
617
    jsize (JNICALL *GetStringUTFLength)
618
      (JNIEnv *env, jstring str);
619
    const char* (JNICALL *GetStringUTFChars)
620
      (JNIEnv *env, jstring str, jboolean *isCopy);
621
    void (JNICALL *ReleaseStringUTFChars)
622
      (JNIEnv *env, jstring str, const char* chars);
623

  
624

  
625
    jsize (JNICALL *GetArrayLength)
626
      (JNIEnv *env, jarray array);
627

  
628
    jobjectArray (JNICALL *NewObjectArray)
629
      (JNIEnv *env, jsize len, jclass clazz, jobject init);
630
    jobject (JNICALL *GetObjectArrayElement)
631
      (JNIEnv *env, jobjectArray array, jsize index);
632
    void (JNICALL *SetObjectArrayElement)
633
      (JNIEnv *env, jobjectArray array, jsize index, jobject val);
634

  
635
    jbooleanArray (JNICALL *NewBooleanArray)
636
      (JNIEnv *env, jsize len);
637
    jbyteArray (JNICALL *NewByteArray)
638
      (JNIEnv *env, jsize len);
639
    jcharArray (JNICALL *NewCharArray)
640
      (JNIEnv *env, jsize len);
641
    jshortArray (JNICALL *NewShortArray)
642
      (JNIEnv *env, jsize len);
643
    jintArray (JNICALL *NewIntArray)
644
      (JNIEnv *env, jsize len);
645
    jlongArray (JNICALL *NewLongArray)
646
      (JNIEnv *env, jsize len);
647
    jfloatArray (JNICALL *NewFloatArray)
648
      (JNIEnv *env, jsize len);
649
    jdoubleArray (JNICALL *NewDoubleArray)
650
      (JNIEnv *env, jsize len);
651

  
652
    jboolean * (JNICALL *GetBooleanArrayElements)
653
      (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
654
    jbyte * (JNICALL *GetByteArrayElements)
655
      (JNIEnv *env, jbyteArray array, jboolean *isCopy);
656
    jchar * (JNICALL *GetCharArrayElements)
657
      (JNIEnv *env, jcharArray array, jboolean *isCopy);
658
    jshort * (JNICALL *GetShortArrayElements)
659
      (JNIEnv *env, jshortArray array, jboolean *isCopy);
660
    jint * (JNICALL *GetIntArrayElements)
661
      (JNIEnv *env, jintArray array, jboolean *isCopy);
662
    jlong * (JNICALL *GetLongArrayElements)
663
      (JNIEnv *env, jlongArray array, jboolean *isCopy);
664
    jfloat * (JNICALL *GetFloatArrayElements)
665
      (JNIEnv *env, jfloatArray array, jboolean *isCopy);
666
    jdouble * (JNICALL *GetDoubleArrayElements)
667
      (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
668

  
669
    void (JNICALL *ReleaseBooleanArrayElements)
670
      (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
671
    void (JNICALL *ReleaseByteArrayElements)
672
      (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
673
    void (JNICALL *ReleaseCharArrayElements)
674
      (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
675
    void (JNICALL *ReleaseShortArrayElements)
676
      (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
677
    void (JNICALL *ReleaseIntArrayElements)
678
      (JNIEnv *env, jintArray array, jint *elems, jint mode);
679
    void (JNICALL *ReleaseLongArrayElements)
680
      (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
681
    void (JNICALL *ReleaseFloatArrayElements)
682
      (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
683
    void (JNICALL *ReleaseDoubleArrayElements)
684
      (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
685

  
686
    void (JNICALL *GetBooleanArrayRegion)
687
      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
688
    void (JNICALL *GetByteArrayRegion)
689
      (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
690
    void (JNICALL *GetCharArrayRegion)
691
      (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
692
    void (JNICALL *GetShortArrayRegion)
693
      (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
694
    void (JNICALL *GetIntArrayRegion)
695
      (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
696
    void (JNICALL *GetLongArrayRegion)
697
      (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
698
    void (JNICALL *GetFloatArrayRegion)
699
      (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
700
    void (JNICALL *GetDoubleArrayRegion)
701
      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
702

  
703
    void (JNICALL *SetBooleanArrayRegion)
704
      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf);
705
    void (JNICALL *SetByteArrayRegion)
706
      (JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf);
707
    void (JNICALL *SetCharArrayRegion)
708
      (JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf);
709
    void (JNICALL *SetShortArrayRegion)
710
      (JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf);
711
    void (JNICALL *SetIntArrayRegion)
712
      (JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf);
713
    void (JNICALL *SetLongArrayRegion)
714
      (JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf);
715
    void (JNICALL *SetFloatArrayRegion)
716
      (JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf);
717
    void (JNICALL *SetDoubleArrayRegion)
718
      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf);
719

  
720
    jint (JNICALL *RegisterNatives)
721
      (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
722
       jint nMethods);
723
    jint (JNICALL *UnregisterNatives)
724
      (JNIEnv *env, jclass clazz);
725

  
726
    jint (JNICALL *MonitorEnter)
727
      (JNIEnv *env, jobject obj);
728
    jint (JNICALL *MonitorExit)
729
      (JNIEnv *env, jobject obj);
730

  
731
    jint (JNICALL *GetJavaVM)
732
      (JNIEnv *env, JavaVM **vm);
733

  
734
    void (JNICALL *GetStringRegion)
735
      (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
736
    void (JNICALL *GetStringUTFRegion)
737
      (JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
738

  
739
    void * (JNICALL *GetPrimitiveArrayCritical)
740
      (JNIEnv *env, jarray array, jboolean *isCopy);
741
    void (JNICALL *ReleasePrimitiveArrayCritical)
742
      (JNIEnv *env, jarray array, void *carray, jint mode);
743

  
744
    const jchar * (JNICALL *GetStringCritical)
745
      (JNIEnv *env, jstring string, jboolean *isCopy);
746
    void (JNICALL *ReleaseStringCritical)
747
      (JNIEnv *env, jstring string, const jchar *cstring);
748

  
749
    jweak (JNICALL *NewWeakGlobalRef)
750
       (JNIEnv *env, jobject obj);
751
    void (JNICALL *DeleteWeakGlobalRef)
752
       (JNIEnv *env, jweak ref);
753

  
754
    jboolean (JNICALL *ExceptionCheck)
755
       (JNIEnv *env);
756

  
757
    jobject (JNICALL *NewDirectByteBuffer)
758
       (JNIEnv* env, void* address, jlong capacity);
759
    void* (JNICALL *GetDirectBufferAddress)
760
       (JNIEnv* env, jobject buf);
761
    jlong (JNICALL *GetDirectBufferCapacity)
762
       (JNIEnv* env, jobject buf);
763

  
764
    /* New JNI 1.6 Features */
765

  
766
    jobjectRefType (JNICALL *GetObjectRefType)
767
        (JNIEnv* env, jobject obj);
768
};
769

  
770
/*
771
 * We use inlined functions for C++ so that programmers can write:
772
 *
773
 *    env->FindClass("java/lang/String")
774
 *
775
 * in C++ rather than:
776
 *
777
 *    (*env)->FindClass(env, "java/lang/String")
778
 *
779
 * in C.
780
 */
781

  
782
struct JNIEnv_ {
783
    const struct JNINativeInterface_ *functions;
214
	struct JNINativeInterface_ {
215
		void *reserved0;
216
		void *reserved1;
217
		void *reserved2;
218

  
219
		void *reserved3;
220
		jint(JNICALL *GetVersion)(JNIEnv *env);
221

  
222
		jclass(JNICALL *DefineClass)
223
			(JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
224
				jsize len);
225
		jclass(JNICALL *FindClass)
226
			(JNIEnv *env, const char *name);
227

  
228
		jmethodID(JNICALL *FromReflectedMethod)
229
			(JNIEnv *env, jobject method);
230
		jfieldID(JNICALL *FromReflectedField)
231
			(JNIEnv *env, jobject field);
232

  
233
		jobject(JNICALL *ToReflectedMethod)
234
			(JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
235

  
236
		jclass(JNICALL *GetSuperclass)
237
			(JNIEnv *env, jclass sub);
238
		jboolean(JNICALL *IsAssignableFrom)
239
			(JNIEnv *env, jclass sub, jclass sup);
240

  
241
		jobject(JNICALL *ToReflectedField)
242
			(JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
243

  
244
		jint(JNICALL *Throw)
245
			(JNIEnv *env, jthrowable obj);
246
		jint(JNICALL *ThrowNew)
247
			(JNIEnv *env, jclass clazz, const char *msg);
248
		jthrowable(JNICALL *ExceptionOccurred)
249
			(JNIEnv *env);
250
		void (JNICALL *ExceptionDescribe)
251
			(JNIEnv *env);
252
		void (JNICALL *ExceptionClear)
253
			(JNIEnv *env);
254
		void (JNICALL *FatalError)
255
			(JNIEnv *env, const char *msg);
256

  
257
		jint(JNICALL *PushLocalFrame)
258
			(JNIEnv *env, jint capacity);
259
		jobject(JNICALL *PopLocalFrame)
260
			(JNIEnv *env, jobject result);
261

  
262
		jobject(JNICALL *NewGlobalRef)
263
			(JNIEnv *env, jobject lobj);
264
		void (JNICALL *DeleteGlobalRef)
265
			(JNIEnv *env, jobject gref);
266
		void (JNICALL *DeleteLocalRef)
267
			(JNIEnv *env, jobject obj);
268
		jboolean(JNICALL *IsSameObject)
269
			(JNIEnv *env, jobject obj1, jobject obj2);
270
		jobject(JNICALL *NewLocalRef)
271
			(JNIEnv *env, jobject ref);
272
		jint(JNICALL *EnsureLocalCapacity)
273
			(JNIEnv *env, jint capacity);
274

  
275
		jobject(JNICALL *AllocObject)
276
			(JNIEnv *env, jclass clazz);
277
		jobject(JNICALL *NewObject)
278
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
279
		jobject(JNICALL *NewObjectV)
280
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
281
		jobject(JNICALL *NewObjectA)
282
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
283

  
284
		jclass(JNICALL *GetObjectClass)
285
			(JNIEnv *env, jobject obj);
286
		jboolean(JNICALL *IsInstanceOf)
287
			(JNIEnv *env, jobject obj, jclass clazz);
288

  
289
		jmethodID(JNICALL *GetMethodID)
290
			(JNIEnv *env, jclass clazz, const char *name, const char *sig);
291

  
292
		jobject(JNICALL *CallObjectMethod)
293
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
294
		jobject(JNICALL *CallObjectMethodV)
295
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
296
		jobject(JNICALL *CallObjectMethodA)
297
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
298

  
299
		jboolean(JNICALL *CallBooleanMethod)
300
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
301
		jboolean(JNICALL *CallBooleanMethodV)
302
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
303
		jboolean(JNICALL *CallBooleanMethodA)
304
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
305

  
306
		jbyte(JNICALL *CallByteMethod)
307
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
308
		jbyte(JNICALL *CallByteMethodV)
309
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
310
		jbyte(JNICALL *CallByteMethodA)
311
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
312

  
313
		jchar(JNICALL *CallCharMethod)
314
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
315
		jchar(JNICALL *CallCharMethodV)
316
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
317
		jchar(JNICALL *CallCharMethodA)
318
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
319

  
320
		jshort(JNICALL *CallShortMethod)
321
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
322
		jshort(JNICALL *CallShortMethodV)
323
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
324
		jshort(JNICALL *CallShortMethodA)
325
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
326

  
327
		jint(JNICALL *CallIntMethod)
328
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
329
		jint(JNICALL *CallIntMethodV)
330
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
331
		jint(JNICALL *CallIntMethodA)
332
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
333

  
334
		jlong(JNICALL *CallLongMethod)
335
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
336
		jlong(JNICALL *CallLongMethodV)
337
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
338
		jlong(JNICALL *CallLongMethodA)
339
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
340

  
341
		jfloat(JNICALL *CallFloatMethod)
342
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
343
		jfloat(JNICALL *CallFloatMethodV)
344
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
345
		jfloat(JNICALL *CallFloatMethodA)
346
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
347

  
348
		jdouble(JNICALL *CallDoubleMethod)
349
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
350
		jdouble(JNICALL *CallDoubleMethodV)
351
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
352
		jdouble(JNICALL *CallDoubleMethodA)
353
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
354

  
355
		void (JNICALL *CallVoidMethod)
356
			(JNIEnv *env, jobject obj, jmethodID methodID, ...);
357
		void (JNICALL *CallVoidMethodV)
358
			(JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
359
		void (JNICALL *CallVoidMethodA)
360
			(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
361

  
362
		jobject(JNICALL *CallNonvirtualObjectMethod)
363
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
364
		jobject(JNICALL *CallNonvirtualObjectMethodV)
365
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
366
				va_list args);
367
		jobject(JNICALL *CallNonvirtualObjectMethodA)
368
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
369
				const jvalue * args);
370

  
371
		jboolean(JNICALL *CallNonvirtualBooleanMethod)
372
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
373
		jboolean(JNICALL *CallNonvirtualBooleanMethodV)
374
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
375
				va_list args);
376
		jboolean(JNICALL *CallNonvirtualBooleanMethodA)
377
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
378
				const jvalue * args);
379

  
380
		jbyte(JNICALL *CallNonvirtualByteMethod)
381
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
382
		jbyte(JNICALL *CallNonvirtualByteMethodV)
383
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
384
				va_list args);
385
		jbyte(JNICALL *CallNonvirtualByteMethodA)
386
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
387
				const jvalue *args);
388

  
389
		jchar(JNICALL *CallNonvirtualCharMethod)
390
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
391
		jchar(JNICALL *CallNonvirtualCharMethodV)
392
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
393
				va_list args);
394
		jchar(JNICALL *CallNonvirtualCharMethodA)
395
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
396
				const jvalue *args);
397

  
398
		jshort(JNICALL *CallNonvirtualShortMethod)
399
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
400
		jshort(JNICALL *CallNonvirtualShortMethodV)
401
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
402
				va_list args);
403
		jshort(JNICALL *CallNonvirtualShortMethodA)
404
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
405
				const jvalue *args);
406

  
407
		jint(JNICALL *CallNonvirtualIntMethod)
408
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
409
		jint(JNICALL *CallNonvirtualIntMethodV)
410
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
411
				va_list args);
412
		jint(JNICALL *CallNonvirtualIntMethodA)
413
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
414
				const jvalue *args);
415

  
416
		jlong(JNICALL *CallNonvirtualLongMethod)
417
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
418
		jlong(JNICALL *CallNonvirtualLongMethodV)
419
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
420
				va_list args);
421
		jlong(JNICALL *CallNonvirtualLongMethodA)
422
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
423
				const jvalue *args);
424

  
425
		jfloat(JNICALL *CallNonvirtualFloatMethod)
426
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
427
		jfloat(JNICALL *CallNonvirtualFloatMethodV)
428
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
429
				va_list args);
430
		jfloat(JNICALL *CallNonvirtualFloatMethodA)
431
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
432
				const jvalue *args);
433

  
434
		jdouble(JNICALL *CallNonvirtualDoubleMethod)
435
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
436
		jdouble(JNICALL *CallNonvirtualDoubleMethodV)
437
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
438
				va_list args);
439
		jdouble(JNICALL *CallNonvirtualDoubleMethodA)
440
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
441
				const jvalue *args);
442

  
443
		void (JNICALL *CallNonvirtualVoidMethod)
444
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
445
		void (JNICALL *CallNonvirtualVoidMethodV)
446
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
447
				va_list args);
448
		void (JNICALL *CallNonvirtualVoidMethodA)
449
			(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
450
				const jvalue * args);
451

  
452
		jfieldID(JNICALL *GetFieldID)
453
			(JNIEnv *env, jclass clazz, const char *name, const char *sig);
454

  
455
		jobject(JNICALL *GetObjectField)
456
			(JNIEnv *env, jobject obj, jfieldID fieldID);
457
		jboolean(JNICALL *GetBooleanField)
458
			(JNIEnv *env, jobject obj, jfieldID fieldID);
459
		jbyte(JNICALL *GetByteField)
460
			(JNIEnv *env, jobject obj, jfieldID fieldID);
461
		jchar(JNICALL *GetCharField)
462
			(JNIEnv *env, jobject obj, jfieldID fieldID);
463
		jshort(JNICALL *GetShortField)
464
			(JNIEnv *env, jobject obj, jfieldID fieldID);
465
		jint(JNICALL *GetIntField)
466
			(JNIEnv *env, jobject obj, jfieldID fieldID);
467
		jlong(JNICALL *GetLongField)
468
			(JNIEnv *env, jobject obj, jfieldID fieldID);
469
		jfloat(JNICALL *GetFloatField)
470
			(JNIEnv *env, jobject obj, jfieldID fieldID);
471
		jdouble(JNICALL *GetDoubleField)
472
			(JNIEnv *env, jobject obj, jfieldID fieldID);
473

  
474
		void (JNICALL *SetObjectField)
475
			(JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
476
		void (JNICALL *SetBooleanField)
477
			(JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
478
		void (JNICALL *SetByteField)
479
			(JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
480
		void (JNICALL *SetCharField)
481
			(JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
482
		void (JNICALL *SetShortField)
483
			(JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
484
		void (JNICALL *SetIntField)
485
			(JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
486
		void (JNICALL *SetLongField)
487
			(JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
488
		void (JNICALL *SetFloatField)
489
			(JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
490
		void (JNICALL *SetDoubleField)
491
			(JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
492

  
493
		jmethodID(JNICALL *GetStaticMethodID)
494
			(JNIEnv *env, jclass clazz, const char *name, const char *sig);
495

  
496
		jobject(JNICALL *CallStaticObjectMethod)
497
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
498
		jobject(JNICALL *CallStaticObjectMethodV)
499
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
500
		jobject(JNICALL *CallStaticObjectMethodA)
501
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
502

  
503
		jboolean(JNICALL *CallStaticBooleanMethod)
504
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
505
		jboolean(JNICALL *CallStaticBooleanMethodV)
506
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
507
		jboolean(JNICALL *CallStaticBooleanMethodA)
508
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
509

  
510
		jbyte(JNICALL *CallStaticByteMethod)
511
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
512
		jbyte(JNICALL *CallStaticByteMethodV)
513
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
514
		jbyte(JNICALL *CallStaticByteMethodA)
515
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
516

  
517
		jchar(JNICALL *CallStaticCharMethod)
518
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
519
		jchar(JNICALL *CallStaticCharMethodV)
520
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
521
		jchar(JNICALL *CallStaticCharMethodA)
522
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
523

  
524
		jshort(JNICALL *CallStaticShortMethod)
525
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
526
		jshort(JNICALL *CallStaticShortMethodV)
527
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
528
		jshort(JNICALL *CallStaticShortMethodA)
529
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
530

  
531
		jint(JNICALL *CallStaticIntMethod)
532
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
533
		jint(JNICALL *CallStaticIntMethodV)
534
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
535
		jint(JNICALL *CallStaticIntMethodA)
536
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
537

  
538
		jlong(JNICALL *CallStaticLongMethod)
539
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
540
		jlong(JNICALL *CallStaticLongMethodV)
541
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
542
		jlong(JNICALL *CallStaticLongMethodA)
543
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
544

  
545
		jfloat(JNICALL *CallStaticFloatMethod)
546
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
547
		jfloat(JNICALL *CallStaticFloatMethodV)
548
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
549
		jfloat(JNICALL *CallStaticFloatMethodA)
550
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
551

  
552
		jdouble(JNICALL *CallStaticDoubleMethod)
553
			(JNIEnv *env, jclass clazz, jmethodID methodID, ...);
554
		jdouble(JNICALL *CallStaticDoubleMethodV)
555
			(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
556
		jdouble(JNICALL *CallStaticDoubleMethodA)
557
			(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
558

  
559
		void (JNICALL *CallStaticVoidMethod)
560
			(JNIEnv *env, jclass cls, jmethodID methodID, ...);
561
		void (JNICALL *CallStaticVoidMethodV)
562
			(JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
563
		void (JNICALL *CallStaticVoidMethodA)
564
			(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args);
565

  
566
		jfieldID(JNICALL *GetStaticFieldID)
567
			(JNIEnv *env, jclass clazz, const char *name, const char *sig);
568
		jobject(JNICALL *GetStaticObjectField)
569
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
570
		jboolean(JNICALL *GetStaticBooleanField)
571
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
572
		jbyte(JNICALL *GetStaticByteField)
573
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
574
		jchar(JNICALL *GetStaticCharField)
575
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
576
		jshort(JNICALL *GetStaticShortField)
577
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
578
		jint(JNICALL *GetStaticIntField)
579
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
580
		jlong(JNICALL *GetStaticLongField)
581
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
582
		jfloat(JNICALL *GetStaticFloatField)
583
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
584
		jdouble(JNICALL *GetStaticDoubleField)
585
			(JNIEnv *env, jclass clazz, jfieldID fieldID);
586

  
587
		void (JNICALL *SetStaticObjectField)
588
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
589
		void (JNICALL *SetStaticBooleanField)
590
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
591
		void (JNICALL *SetStaticByteField)
592
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
593
		void (JNICALL *SetStaticCharField)
594
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
595
		void (JNICALL *SetStaticShortField)
596
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
597
		void (JNICALL *SetStaticIntField)
598
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
599
		void (JNICALL *SetStaticLongField)
600
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
601
		void (JNICALL *SetStaticFloatField)
602
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
603
		void (JNICALL *SetStaticDoubleField)
604
			(JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
605

  
606
		jstring(JNICALL *NewString)
607
			(JNIEnv *env, const jchar *unicode, jsize len);
608
		jsize(JNICALL *GetStringLength)
609
			(JNIEnv *env, jstring str);
610
		const jchar *(JNICALL *GetStringChars)
611
			(JNIEnv *env, jstring str, jboolean *isCopy);
612
		void (JNICALL *ReleaseStringChars)
613
			(JNIEnv *env, jstring str, const jchar *chars);
614

  
615
		jstring(JNICALL *NewStringUTF)
616
			(JNIEnv *env, const char *utf);
617
		jsize(JNICALL *GetStringUTFLength)
618
			(JNIEnv *env, jstring str);
619
		const char* (JNICALL *GetStringUTFChars)
620
			(JNIEnv *env, jstring str, jboolean *isCopy);
621
		void (JNICALL *ReleaseStringUTFChars)
622
			(JNIEnv *env, jstring str, const char* chars);
623

  
624

  
625
		jsize(JNICALL *GetArrayLength)
626
			(JNIEnv *env, jarray array);
627

  
628
		jobjectArray(JNICALL *NewObjectArray)
629
			(JNIEnv *env, jsize len, jclass clazz, jobject init);
630
		jobject(JNICALL *GetObjectArrayElement)
631
			(JNIEnv *env, jobjectArray array, jsize index);
632
		void (JNICALL *SetObjectArrayElement)
633
			(JNIEnv *env, jobjectArray array, jsize index, jobject val);
634

  
635
		jbooleanArray(JNICALL *NewBooleanArray)
636
			(JNIEnv *env, jsize len);
637
		jbyteArray(JNICALL *NewByteArray)
638
			(JNIEnv *env, jsize len);
639
		jcharArray(JNICALL *NewCharArray)
640
			(JNIEnv *env, jsize len);
641
		jshortArray(JNICALL *NewShortArray)
642
			(JNIEnv *env, jsize len);
643
		jintArray(JNICALL *NewIntArray)
644
			(JNIEnv *env, jsize len);
645
		jlongArray(JNICALL *NewLongArray)
646
			(JNIEnv *env, jsize len);
647
		jfloatArray(JNICALL *NewFloatArray)
648
			(JNIEnv *env, jsize len);
649
		jdoubleArray(JNICALL *NewDoubleArray)
650
			(JNIEnv *env, jsize len);
651

  
652
		jboolean * (JNICALL *GetBooleanArrayElements)
653
			(JNIEnv *env, jbooleanArray array, jboolean *isCopy);
654
		jbyte * (JNICALL *GetByteArrayElements)
655
			(JNIEnv *env, jbyteArray array, jboolean *isCopy);
656
		jchar * (JNICALL *GetCharArrayElements)
657
			(JNIEnv *env, jcharArray array, jboolean *isCopy);
658
		jshort * (JNICALL *GetShortArrayElements)
659
			(JNIEnv *env, jshortArray array, jboolean *isCopy);
660
		jint * (JNICALL *GetIntArrayElements)
661
			(JNIEnv *env, jintArray array, jboolean *isCopy);
662
		jlong * (JNICALL *GetLongArrayElements)
663
			(JNIEnv *env, jlongArray array, jboolean *isCopy);
664
		jfloat * (JNICALL *GetFloatArrayElements)
665
			(JNIEnv *env, jfloatArray array, jboolean *isCopy);
666
		jdouble * (JNICALL *GetDoubleArrayElements)
667
			(JNIEnv *env, jdoubleArray array, jboolean *isCopy);
668

  
669
		void (JNICALL *ReleaseBooleanArrayElements)
670
			(JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
671
		void (JNICALL *ReleaseByteArrayElements)
672
			(JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
673
		void (JNICALL *ReleaseCharArrayElements)
674
			(JNIEnv *env, jcharArray array, jchar *elems, jint mode);
675
		void (JNICALL *ReleaseShortArrayElements)
676
			(JNIEnv *env, jshortArray array, jshort *elems, jint mode);
677
		void (JNICALL *ReleaseIntArrayElements)
678
			(JNIEnv *env, jintArray array, jint *elems, jint mode);
679
		void (JNICALL *ReleaseLongArrayElements)
680
			(JNIEnv *env, jlongArray array, jlong *elems, jint mode);
681
		void (JNICALL *ReleaseFloatArrayElements)
682
			(JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
683
		void (JNICALL *ReleaseDoubleArrayElements)
684
			(JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
685

  
686
		void (JNICALL *GetBooleanArrayRegion)
687
			(JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
688
		void (JNICALL *GetByteArrayRegion)
689
			(JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
690
		void (JNICALL *GetCharArrayRegion)
691
			(JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
692
		void (JNICALL *GetShortArrayRegion)
693
			(JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
694
		void (JNICALL *GetIntArrayRegion)
695
			(JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
696
		void (JNICALL *GetLongArrayRegion)
697
			(JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
698
		void (JNICALL *GetFloatArrayRegion)
699
			(JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
700
		void (JNICALL *GetDoubleArrayRegion)
701
			(JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
702

  
703
		void (JNICALL *SetBooleanArrayRegion)
704
			(JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf);
705
		void (JNICALL *SetByteArrayRegion)
706
			(JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf);
707
		void (JNICALL *SetCharArrayRegion)
708
			(JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf);
709
		void (JNICALL *SetShortArrayRegion)
710
			(JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf);
711
		void (JNICALL *SetIntArrayRegion)
712
			(JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf);
713
		void (JNICALL *SetLongArrayRegion)
714
			(JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf);
715
		void (JNICALL *SetFloatArrayRegion)
716
			(JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf);
717
		void (JNICALL *SetDoubleArrayRegion)
718
			(JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf);
719

  
720
		jint(JNICALL *RegisterNatives)
721
			(JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
722
				jint nMethods);
723
		jint(JNICALL *UnregisterNatives)
724
			(JNIEnv *env, jclass clazz);
725

  
726
		jint(JNICALL *MonitorEnter)
727
			(JNIEnv *env, jobject obj);
728
		jint(JNICALL *MonitorExit)
729
			(JNIEnv *env, jobject obj);
730

  
731
		jint(JNICALL *GetJavaVM)
732
			(JNIEnv *env, JavaVM **vm);
733

  
734
		void (JNICALL *GetStringRegion)
735
			(JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
736
		void (JNICALL *GetStringUTFRegion)
737
			(JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
738

  
739
		void * (JNICALL *GetPrimitiveArrayCritical)
740
			(JNIEnv *env, jarray array, jboolean *isCopy);
741
		void (JNICALL *ReleasePrimitiveArrayCritical)
742
			(JNIEnv *env, jarray array, void *carray, jint mode);
743

  
744
		const jchar * (JNICALL *GetStringCritical)
745
			(JNIEnv *env, jstring string, jboolean *isCopy);
746
		void (JNICALL *ReleaseStringCritical)
747
			(JNIEnv *env, jstring string, const jchar *cstring);
748

  
749
		jweak(JNICALL *NewWeakGlobalRef)
750
			(JNIEnv *env, jobject obj);
751
		void (JNICALL *DeleteWeakGlobalRef)
752
			(JNIEnv *env, jweak ref);
753

  
754
		jboolean(JNICALL *ExceptionCheck)
755
			(JNIEnv *env);
756

  
757
		jobject(JNICALL *NewDirectByteBuffer)
758
			(JNIEnv* env, void* address, jlong capacity);
759
		void* (JNICALL *GetDirectBufferAddress)
760
			(JNIEnv* env, jobject buf);
761
		jlong(JNICALL *GetDirectBufferCapacity)
762
			(JNIEnv* env, jobject buf);
763

  
764
		/* New JNI 1.6 Features */
765

  
766
		jobjectRefType(JNICALL *GetObjectRefType)
767
			(JNIEnv* env, jobject obj);
768
	};
769

  
770
	/*
771
	* We use inlined functions for C++ so that programmers can write:
772
	*
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff