15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ***** BEGIN LICENSE BLOCK *****
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version: MPL 1.1/GPL 2.0/LGPL 2.1
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The contents of this file are subject to the Mozilla Public License Version
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.1 (the "License"); you may not use this file except in compliance with
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the License. You may obtain a copy of the License at
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.mozilla.org/MPL/
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software distributed under the License is distributed on an "AS IS" basis,
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for the specific language governing rights and limitations under the
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Original Code is the Java Runtime Interface.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Initial Developer of the Original Code is
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Netscape Communications Corporation and Sun Microsystems, Inc.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portions created by the Initial Developer are Copyright (C) 1993-1996
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the Initial Developer. All Rights Reserved.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contributor(s):
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Alternatively, the contents of this file may be used under the terms of
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * either the GNU General Public License Version 2 or later (the "GPL"), or
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in which case the provisions of the GPL or the LGPL are applicable instead
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of those above. If you wish to allow use of your version of this file only
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * under the terms of either the GPL or the LGPL, and not to allow others to
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * use your version of this file under the terms of the MPL, indicate your
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * decision by deleting the provisions above and replace them with the notice
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and other provisions required by the GPL or the LGPL. If you do not delete
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the provisions above, a recipient may use your version of this file under
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the terms of any one of the MPL, the GPL or the LGPL.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ***** END LICENSE BLOCK ***** */
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef JNI_H
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_H
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h>
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdarg.h>
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   and jlong */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "jni_md.h"
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Types
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned char	jboolean;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned short	jchar;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef short		jshort;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef float		jfloat;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef double		jdouble;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jint            jsize;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jobject {};
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jclass : public _jobject {};
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jthrowable : public _jobject {};
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jstring : public _jobject {};
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jarray : public _jobject {};
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jbooleanArray : public _jarray {};
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jbyteArray : public _jarray {};
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jcharArray : public _jarray {};
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jshortArray : public _jarray {};
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jintArray : public _jarray {};
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jlongArray : public _jarray {};
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jfloatArray : public _jarray {};
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jdoubleArray : public _jarray {};
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jobjectArray : public _jarray {};
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jobject *jobject;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jclass *jclass;
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jthrowable *jthrowable;
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jstring *jstring;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jarray *jarray;
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jbooleanArray *jbooleanArray;
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jbyteArray *jbyteArray;
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jcharArray *jcharArray;
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jshortArray *jshortArray;
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jintArray *jintArray;
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jlongArray *jlongArray;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jfloatArray *jfloatArray;
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jdoubleArray *jdoubleArray;
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jobjectArray *jobjectArray;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jobject;
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jobject *jobject;
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jclass;
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jthrowable;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jstring;
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jarray;
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jbooleanArray;
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jbyteArray;
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jcharArray;
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jshortArray;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jintArray;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jlongArray;
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jfloatArray;
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jdoubleArray;
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jobjectArray;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if 0	/* moved to jri_md.h */
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jref; /* For transition---not meant to be part of public
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 API anymore.*/
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef union jvalue {
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean z;
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte    b;
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar    c;
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort   s;
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint     i;
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong    j;
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat   f;
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble  d;
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject  l;
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} jvalue;
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jfieldID;
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jfieldID *jfieldID;
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jmethodID;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jmethodID *jmethodID;
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * jboolean constants
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_FALSE 0
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_TRUE 1
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * possible return values for JNI functions.
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_OK 0
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_ERR (-1)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * used in ReleaseScalarArrayElements
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_COMMIT 1
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_ABORT 2
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * used in RegisterNatives to describe native method name, signature,
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and function pointer.
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct {
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char *name;
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char *signature;
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *fnPtr;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} JNINativeMethod;
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Native Method Interface.
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNINativeInterface_;
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIEnv_;
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef JNIEnv_ JNIEnv;
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef const struct JNINativeInterface_ *JNIEnv;
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Invocation Interface.
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIInvokeInterface_;
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JavaVM_;
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef JavaVM_ JavaVM;
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef const struct JNIInvokeInterface_ *JavaVM;
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNINativeInterface_ {
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1;
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved2;
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved3;
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetVersion)(JNIEnv *env);
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *DefineClass)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jsize len);
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *FindClass)
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *name);
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved4;
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved5;
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved6;
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *GetSuperclass)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass sub);
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsAssignableFrom)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass sub, jclass sup);
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved7;
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *Throw)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jthrowable obj);
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *ThrowNew)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *msg);
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jthrowable (JNICALL *ExceptionOccurred)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ExceptionDescribe)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ExceptionClear)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *FatalError)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *msg);
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved8;
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved9;
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewGlobalRef)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject lobj);
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *DeleteGlobalRef)
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject gref);
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *DeleteLocalRef)
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsSameObject)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj1, jobject obj2);
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved10;
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved11;
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *AllocObject)
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz);
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObject)
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObjectV)
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObjectA)
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *GetObjectClass)
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsInstanceOf)
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz);
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID (JNICALL *GetMethodID)
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethod)
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethodV)
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethodA)
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethod)
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethodV)
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethodA)
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethod)
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethodV)
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethodA)
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethod)
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethodV)
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethodA)
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethod)
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethodV)
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethodA)
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethod)
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethodV)
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethodA)
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethod)
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethodV)
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethodA)
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethod)
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethodV)
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethodA)
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethod)
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethodV)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethodA)
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethod)
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethodV)
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethodA)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethod)
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethodV)
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethodA)
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethod)
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethodV)
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethodA)
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethod)
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethodV)
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethodA)
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethod)
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethodV)
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethodA)
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethod)
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethodV)
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethodA)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethod)
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethodV)
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethodA)
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethod)
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethodV)
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethodA)
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethod)
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethodV)
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethodA)
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethod)
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethodV)
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethodA)
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethod)
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethodV)
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethodA)
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID (JNICALL *GetFieldID)
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetObjectField)
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *GetBooleanField)
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *GetByteField)
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *GetCharField)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *GetShortField)
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetIntField)
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *GetLongField)
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *GetFloatField)
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *GetDoubleField)
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetObjectField)
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetBooleanField)
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetByteField)
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetCharField)
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetShortField)
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetIntField)
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetLongField)
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetFloatField)
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetDoubleField)
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID (JNICALL *GetStaticMethodID)
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethod)
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethodV)
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethodA)
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethod)
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethodV)
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethodA)
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethod)
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethodV)
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethodA)
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethod)
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethodV)
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethodA)
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethod)
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethodV)
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethodA)
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethod)
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethodV)
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethodA)
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethod)
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethodV)
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethodA)
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethod)
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethodV)
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethodA)
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethod)
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethodV)
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethodA)
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethod)
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, ...);
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethodV)
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethodA)
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args);
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID (JNICALL *GetStaticFieldID)
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetStaticObjectField)
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *GetStaticBooleanField)
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *GetStaticByteField)
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *GetStaticCharField)
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *GetStaticShortField)
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetStaticIntField)
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *GetStaticLongField)
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *GetStaticFloatField)
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *GetStaticDoubleField)
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticObjectField)
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticBooleanField)
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticByteField)
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticCharField)
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticShortField)
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticIntField)
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticLongField)
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticFloatField)
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticDoubleField)
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring (JNICALL *NewString)
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const jchar *unicode, jsize len);
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetStringLength)
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str);
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const jchar *(JNICALL *GetStringChars)
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, jboolean *isCopy);
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseStringChars)
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, const jchar *chars);
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring (JNICALL *NewStringUTF)
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *utf);
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetStringUTFLength)
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str);
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char* (JNICALL *GetStringUTFChars)
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, jboolean *isCopy);
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseStringUTFChars)
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, const char* chars);
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetArrayLength)
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jarray array);
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobjectArray (JNICALL *NewObjectArray)
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len, jclass clazz, jobject init);
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetObjectArrayElement)
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobjectArray array, jsize index);
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetObjectArrayElement)
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobjectArray array, jsize index, jobject val);
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbooleanArray (JNICALL *NewBooleanArray)
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyteArray (JNICALL *NewByteArray)
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jcharArray (JNICALL *NewCharArray)
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshortArray (JNICALL *NewShortArray)
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jintArray (JNICALL *NewIntArray)
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlongArray (JNICALL *NewLongArray)
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloatArray (JNICALL *NewFloatArray)
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdoubleArray (JNICALL *NewDoubleArray)
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean * (JNICALL *GetBooleanArrayElements)
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte * (JNICALL *GetByteArrayElements)
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jboolean *isCopy);
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar * (JNICALL *GetCharArrayElements)
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jboolean *isCopy);
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort * (JNICALL *GetShortArrayElements)
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jboolean *isCopy);
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint * (JNICALL *GetIntArrayElements)
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jboolean *isCopy);
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong * (JNICALL *GetLongArrayElements)
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jboolean *isCopy);
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat * (JNICALL *GetFloatArrayElements)
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jboolean *isCopy);
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble * (JNICALL *GetDoubleArrayElements)
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseBooleanArrayElements)
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseByteArrayElements)
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseCharArrayElements)
6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseShortArrayElements)
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseIntArrayElements)
6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jint *elems, jint mode);
6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseLongArrayElements)
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseFloatArrayElements)
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseDoubleArrayElements)
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetBooleanArrayRegion)
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetByteArrayRegion)
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetCharArrayRegion)
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetShortArrayRegion)
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetIntArrayRegion)
6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetLongArrayRegion)
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetFloatArrayRegion)
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetDoubleArrayRegion)
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetBooleanArrayRegion)
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetByteArrayRegion)
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetCharArrayRegion)
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetShortArrayRegion)
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetIntArrayRegion)
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetLongArrayRegion)
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetFloatArrayRegion)
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetDoubleArrayRegion)
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *RegisterNatives)
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jint nMethods);
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *UnregisterNatives)
7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz);
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *MonitorEnter)
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *MonitorExit)
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetJavaVM)
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, JavaVM **vm);
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * We use inlined functions for C++ so that programmers can write:
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *    env->FindClass("java/lang/String")
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in C++ rather than:
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *    (*env)->FindClass(env, "java/lang/String")
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in C.
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIEnv_ {
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct JNINativeInterface_ *functions;
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1[6];
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint GetVersion() {
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetVersion(this);
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jsize len) {
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->DefineClass(this, name, loader, buf, len);
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass FindClass(const char *name) {
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->FindClass(this, name);
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass GetSuperclass(jclass sub) {
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetSuperclass(this, sub);
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsAssignableFrom(jclass sub, jclass sup) {
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsAssignableFrom(this, sub, sup);
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint Throw(jthrowable obj) {
7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->Throw(this, obj);
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint ThrowNew(jclass clazz, const char *msg) {
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->ThrowNew(this, clazz, msg);
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jthrowable ExceptionOccurred() {
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->ExceptionOccurred(this);
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ExceptionDescribe() {
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ExceptionDescribe(this);
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ExceptionClear() {
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ExceptionClear(this);
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void FatalError(const char *msg) {
7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->FatalError(this, msg);
7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewGlobalRef(jobject lobj) {
7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewGlobalRef(this,lobj);
7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void DeleteGlobalRef(jobject gref) {
7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->DeleteGlobalRef(this,gref);
7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void DeleteLocalRef(jobject obj) {
7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->DeleteLocalRef(this, obj);
7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsSameObject(jobject obj1, jobject obj2) {
7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsSameObject(this,obj1,obj2);
7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject AllocObject(jclass clazz) {
7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->AllocObject(this,clazz);
7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObject(jclass clazz, jmethodID methodID, ...) {
7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args, methodID);
7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        result = functions->NewObjectV(this,clazz,methodID,args);
7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObjectV(jclass clazz, jmethodID methodID,
7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       va_list args) {
7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewObjectV(this,clazz,methodID,args);
7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObjectA(jclass clazz, jmethodID methodID,
7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jvalue *args) {
7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewObjectA(this,clazz,methodID,args);
7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass GetObjectClass(jobject obj) {
8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetObjectClass(this,obj);
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsInstanceOf(jobject obj, jclass clazz) {
8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsInstanceOf(this,obj,clazz);
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID GetMethodID(jclass clazz, const char *name,
8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  const char *sig) {
8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetMethodID(this,clazz,name,sig);
8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallObjectMethodV(this,obj,methodID,args);
8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethodV(jobject obj, jmethodID methodID,
8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			va_list args) {
8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallObjectMethodV(this,obj,methodID,args);
8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethodA(jobject obj, jmethodID methodID,
8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jvalue * args) {
8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallObjectMethodA(this,obj,methodID,args);
8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethod(jobject obj,
8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jmethodID methodID, ...) {
8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jboolean result;
8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallBooleanMethodV(this,obj,methodID,args);
8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				va_list args) {
8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallBooleanMethodV(this,obj,methodID,args);
8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jvalue * args) {
8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallBooleanMethodA(this,obj,methodID, args);
8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jbyte result;
8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallByteMethodV(this,obj,methodID,args);
8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethodV(jobject obj, jmethodID methodID,
8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  va_list args) {
8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallByteMethodV(this,obj,methodID,args);
8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethodA(jobject obj, jmethodID methodID,
8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  jvalue * args) {
8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallByteMethodA(this,obj,methodID,args);
8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jchar result;
8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallCharMethodV(this,obj,methodID,args);
8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethodV(jobject obj, jmethodID methodID,
8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  va_list args) {
8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallCharMethodV(this,obj,methodID,args);
8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethodA(jobject obj, jmethodID methodID,
8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  jvalue * args) {
8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallCharMethodA(this,obj,methodID,args);
8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jshort result;
8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallShortMethodV(this,obj,methodID,args);
8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethodV(jobject obj, jmethodID methodID,
8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    va_list args) {
8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallShortMethodV(this,obj,methodID,args);
8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethodA(jobject obj, jmethodID methodID,
8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jvalue * args) {
8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallShortMethodA(this,obj,methodID,args);
8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jint result;
9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallIntMethodV(this,obj,methodID,args);
9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallIntMethodV(jobject obj, jmethodID methodID,
9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			va_list args) {
9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallIntMethodV(this,obj,methodID,args);
9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
909