/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* We used part of Netscape's Java Runtime Interface (JRI) as the starting
* point of our design and implementation.
*/
/******************************************************************************
* Java Runtime Interface
* Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
*****************************************************************************/
#ifndef _JAVASOFT_JNI_H_
#define _JAVASOFT_JNI_H_
#include <stdio.h>
#include <stdarg.h>
/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
and jlong */
#include "jni_md.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
* JNI Types
*/
typedef unsigned char jboolean;
typedef unsigned short jchar;
typedef short jshort;
typedef float jfloat;
typedef double jdouble;
#ifdef __cplusplus
#else
struct _jobject;
#endif
typedef union jvalue {
jboolean z;
jbyte b;
jchar c;
jshort s;
jint i;
jlong j;
jfloat f;
jdouble d;
jobject l;
} jvalue;
struct _jfieldID;
struct _jmethodID;
/* Return values from jobjectRefType */
typedef enum _jobjectType {
JNIInvalidRefType = 0,
#endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */
/*
* jboolean constants
*/
#define JNI_FALSE 0
/*
* possible return values for JNI functions.
*/
/*
* used in ReleaseScalarArrayElements
*/
/*
* used in RegisterNatives to describe native method name, signature,
* and function pointer.
*/
typedef struct {
char *name;
char *signature;
void *fnPtr;
/*
* JNI Native Method Interface.
*/
struct JNINativeInterface_;
struct JNIEnv_;
#ifdef __cplusplus
#else
#endif
/*
* JNI Invocation Interface.
*/
struct JNIInvokeInterface_;
struct JavaVM_;
#ifdef __cplusplus
#else
#endif
struct JNINativeInterface_ {
void *reserved0;
void *reserved1;
void *reserved2;
void *reserved3;
/* New JNI 1.6 Features */
};
/*
* We use inlined functions for C++ so that programmers can write:
*
*
* in C++ rather than:
*
*
* in C.
*/
struct JNIEnv_ {
#ifdef __cplusplus
}
}
}
}
}
}
}
}
}
}
}
}
void ExceptionDescribe() {
}
void ExceptionClear() {
}
}
}
}
}
}
}
}
}
}
}
return result;
}
}
}
}
}
const char *sig) {
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
}
}
}
const char *sig) {
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
const char *sig) {
}
...) {
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
return result;
}
}
}
}
}
}
const char *sig) {
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
#endif /* __cplusplus */
};
typedef struct JavaVMOption {
char *optionString;
void *extraInfo;
} JavaVMOption;
typedef struct JavaVMInitArgs {
typedef struct JavaVMAttachArgs {
char *name;
/* These will be VM-specific. */
#define JDK1_2
#define JDK1_4
/* End VM-specific. */
struct JNIInvokeInterface_ {
void *reserved0;
void *reserved1;
void *reserved2;
};
struct JavaVM_ {
#ifdef __cplusplus
}
}
}
}
}
#endif
};
#ifdef _JNI_IMPLEMENTATION_
#else
#endif
JNI_GetDefaultJavaVMInitArgs(void *args);
/* Defined by native libraries. */
#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */
#endif /* !_JAVASOFT_JNI_H_ */