aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/libjava/include/jni_md.h
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
committerBen Cheng <bccheng@google.com>2012-10-01 10:30:31 -0700
commit82bcbebce43f0227f506d75a5b764b6847041bae (patch)
treefe9f8597b48a430c4daeb5123e3e8eb28e6f9da9 /gcc-4.7/libjava/include/jni_md.h
parent3c052de3bb16ac53b6b6ed659ec7557eb84c7590 (diff)
downloadtoolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.gz
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.tar.bz2
toolchain_gcc-82bcbebce43f0227f506d75a5b764b6847041bae.zip
Initial check-in of gcc 4.7.2.
Change-Id: I4a2f5a921c21741a0e18bda986d77e5f1bef0365
Diffstat (limited to 'gcc-4.7/libjava/include/jni_md.h')
-rw-r--r--gcc-4.7/libjava/include/jni_md.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/gcc-4.7/libjava/include/jni_md.h b/gcc-4.7/libjava/include/jni_md.h
new file mode 100644
index 000000000..403812704
--- /dev/null
+++ b/gcc-4.7/libjava/include/jni_md.h
@@ -0,0 +1,165 @@
+/* jni_md.h
+ Copyright (C) 2001, 2005, 2007, 2010 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath 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 for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+As a special exception, if you link this library with other files to
+produce an executable, this library does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License. */
+
+#ifndef __GCJ_JNI_MD_H__
+#define __GCJ_JNI_MD_H__
+
+#include <gcj/libgcj-config.h>
+
+#ifdef __GCJ_JNI_IMPL__
+
+/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
+ libgcj itself, and we include headers which taint the namespace
+ more than is acceptable for the ordinary JNI user. */
+#include <gcj/javaprims.h>
+#include <gcj/array.h>
+#include <gnu/gcj/runtime/JNIWeakRef.h>
+
+typedef gnu::gcj::runtime::JNIWeakRef *jweak;
+
+typedef struct _Jv_JNIEnv JNIEnv;
+typedef struct _Jv_JavaVM JavaVM;
+
+#define JNI_TRUE true
+#define JNI_FALSE false
+
+/* We defined jobject and friends, so don't redefine them in jni.h. */
+#define _CLASSPATH_VM_JNI_TYPES_DEFINED
+
+/* We defined jmethodID and and jfieldID, so don't redefine them in
+ jni.h. */
+#define _CLASSPATH_VM_INTERNAL_TYPES_DEFINED
+
+/* Contents of the JNIEnv; but only inside the implementation. */
+#define _CLASSPATH_JNIENV_CONTENTS \
+ /* The current exception. */ \
+ jthrowable ex; \
+ \
+ /* The chain of local frames. */ \
+ struct _Jv_JNI_LocalFrame *locals; \
+ \
+ /* The bottom-most element of the chain, initialized with the env and \
+ reused between non-nesting JNI calls. */ \
+ struct _Jv_JNI_LocalFrame *bottom_locals;
+
+/* JNI calling convention. Also defined in javaprims.h. */
+#ifndef JNICALL
+#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \
+ && !defined (_WIN64)
+ #define JNICALL __stdcall
+ #else
+ #define JNICALL
+ #endif
+#endif
+
+#else /* __GCJ_JNI_IMPL__ */
+
+# ifdef __GNUC__
+
+/* If we're using gcc, we can use a platform-independent scheme to get
+ the right integer types. FIXME: this is not always correct, for
+ instance on the c4x it will be wrong -- it depends on whether
+ QImode is 8 bits. */
+typedef int jbyte __attribute__((__mode__(__QI__)));
+typedef int jshort __attribute__((__mode__(__HI__)));
+typedef int jint __attribute__((__mode__(__SI__)));
+typedef int jlong __attribute__((__mode__(__DI__)));
+typedef unsigned int jboolean __attribute__((__mode__(__QI__)));
+typedef unsigned short jchar __attribute__((__mode__(__HI__)));
+typedef float jfloat;
+typedef double jdouble;
+typedef jint jsize;
+
+# else /* __GNUC__ */
+
+# ifdef JV_HAVE_INTTYPES_H
+
+/* If <inttypes.h> is available, we use it. */
+
+# include <inttypes.h>
+
+typedef int8_t jbyte;
+typedef int16_t jshort;
+typedef int32_t jint;
+typedef int64_t jlong;
+typedef float jfloat;
+typedef double jdouble;
+typedef jint jsize;
+typedef uint8_t jboolean;
+typedef uint16_t jchar;
+
+# else /* JV_HAVE_INTTYPES_H */
+
+/* For now, we require either gcc or <inttypes.h>. If we did more
+ work at configure time we could get around this, but right now it
+ doesn't seem worth it. */
+# error jni.h not ported to this platform
+
+# endif /* JV_HAVE_INTTYPES_H */
+
+# endif /* __GNUC__ */
+
+#endif /* __GCJ_JNI_IMPL__ */
+
+
+/* Linkage and calling conventions. */
+#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \
+ && !defined (_WIN64)
+
+#define JNIIMPORT __declspec(dllimport)
+#define JNIEXPORT __declspec(dllexport)
+
+#ifndef JNICALL
+#define JNICALL __stdcall
+#endif
+
+#else /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */
+
+#define JNIIMPORT
+#if defined(__GNUC__) && __GNUC__ > 3
+#define JNIEXPORT __attribute__ ((visibility("default")))
+#else
+#define JNIEXPORT
+#endif
+
+#ifndef JNICALL
+#define JNICALL
+#endif
+
+#endif /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */
+
+/* These defines apply to symbols in libgcj */
+#ifdef __GCJ_DLL__
+# ifdef __GCJ_JNI_IMPL__
+# define _CLASSPATH_JNIIMPEXP JNIEXPORT
+# else
+# define _CLASSPATH_JNIIMPEXP JNIIMPORT
+# endif /* ! __GCJ_JNI_IMPL__ */
+#else /* ! __GCJ_DLL__ */
+# define _CLASSPATH_JNIIMPEXP
+#endif /* __GCJ_DLL__ */
+
+#endif /* __GCJ_JNI_MD_H__ */