summaryrefslogtreecommitdiff
path: root/libjava/gcj/javaprims.h
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-10 22:03:10 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-10 22:03:10 +0000
commit5e25b6c0051d1080d65f763ab41fdd3ccf4c0266 (patch)
tree2d703bb5c0f735c114d35388f4ce82a2a194fe18 /libjava/gcj/javaprims.h
parent58aea4f55da2dbf234dd4a1a9229f2df2ef25134 (diff)
downloadgcc-5e25b6c0051d1080d65f763ab41fdd3ccf4c0266.tar.gz
* configure: Rebuilt.
* configure.in: Build include/Makefile. * Makefile.in: Rebuilt. * Makefile.am (SUBDIRS): Added gcj and include. (install-data-local): New target. (extra_headers): New macro. * include/Makefile.in: New file. * include/Makefile.am: New file. * interpret.cc: Don't include gcj/field.h or gcj/cni.h. * java/lang/reflect/natField.cc: Don't include gcj/field.h or gcj/cni.h. * boehm.cc: Don't include java-threads.h or gcj/field.h. * resolve.cc: Include config.h. * defineclass.cc: Include config.h. * include/java-interp.h: Don't include config.h. * include/jvm.h: Include java-threads.h, Object.h, java-gc.h, cni.h. * gcj/javaprims.h: Regenerated namespace decls. * classes.pl (scan): Don't put `;' after closing brace. * Makefile.in: Rebuilt. * Makefile.am (INCLUDES): Added -I for top_srcdir. * configure.in: Create gcj/Makefile. * gcj/Makefile.in: New file. * gcj/Makefile.am: New file. * java/lang/Object.h: Don't include any other headers. * gcj/array.h: Renamed from include/java-array.h. * gcj/field.h: Renamed from include/java-field.h. * gcj/method.h: Renamed from include/java-method.h. * gcj/cni.h, gcj/javaprims.h: Moved from include/. Updated all files to reflect new include structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29278 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gcj/javaprims.h')
-rw-r--r--libjava/gcj/javaprims.h306
1 files changed, 306 insertions, 0 deletions
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
new file mode 100644
index 00000000000..ee085379a58
--- /dev/null
+++ b/libjava/gcj/javaprims.h
@@ -0,0 +1,306 @@
+// javaprims.h - Main external header file for libgcj. -*- c++ -*-
+
+/* Copyright (C) 1998, 1999 Cygnus Solutions
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#ifndef __JAVAPRIMS_H__
+#define __JAVAPRIMS_H__
+
+// FIXME: this is a hack until we get a proper gcjh.
+// It is needed to work around system header files that define TRUE
+// and FALSE.
+#undef TRUE
+#define TRUE TRUE
+#undef FALSE
+#define FALSE FALSE
+
+// To force selection of correct types that will mangle consistently
+// across platforms.
+extern "Java"
+{
+ typedef __java_byte jbyte;
+ typedef __java_short jshort;
+ typedef __java_int jint;
+ typedef __java_long jlong;
+ typedef __java_float jfloat;
+ typedef __java_double jdouble;
+ typedef __java_char jchar;
+ typedef __java_boolean jboolean;
+ typedef jint jsize;
+
+ // The following class declarations are automatically generated by
+ // the `classes.pl' script.
+ namespace java
+ {
+ namespace io
+ {
+ class BufferedInputStream;
+ class BufferedOutputStream;
+ class BufferedReader;
+ class BufferedWriter;
+ class ByteArrayInputStream;
+ class ByteArrayOutputStream;
+ class CharArrayReader;
+ class CharArrayWriter;
+ class CharConversionException;
+ class DataInput;
+ class DataInputStream;
+ class DataOutput;
+ class DataOutputStream;
+ class EOFException;
+ class File;
+ class FileDescriptor;
+ class FileInputStream;
+ class FileNotFoundException;
+ class FileOutputStream;
+ class FileReader;
+ class FileWriter;
+ class FilenameFilter;
+ class FilterInputStream;
+ class FilterOutputStream;
+ class FilterReader;
+ class FilterWriter;
+ class IOException;
+ class InputStream;
+ class InputStreamReader;
+ class InterruptedIOException;
+ class LineNumberInputStream;
+ class LineNumberReader;
+ class OutputStream;
+ class OutputStreamWriter;
+ class PipedInputStream;
+ class PipedOutputStream;
+ class PipedReader;
+ class PipedWriter;
+ class PrintStream;
+ class PrintWriter;
+ class PushbackInputStream;
+ class PushbackReader;
+ class RandomAccessFile;
+ class Reader;
+ class SequenceInputStream;
+ class Serializable;
+ class StreamTokenizer;
+ class StringBufferInputStream;
+ class StringReader;
+ class StringWriter;
+ class SyncFailedException;
+ class UTFDataFormatException;
+ class UnsupportedEncodingException;
+ class Writer;
+ }
+
+ namespace lang
+ {
+ class AbstractMethodError;
+ class ArithmeticException;
+ class ArrayIndexOutOfBoundsException;
+ class ArrayStoreException;
+ class Boolean;
+ class Byte;
+ class Character;
+ class Class;
+ class ClassCastException;
+ class ClassCircularityError;
+ class ClassFormatError;
+ class ClassLoader;
+ class ClassNotFoundException;
+ class CloneNotSupportedException;
+ class Cloneable;
+ class Comparable;
+ class Compiler;
+ class ConcreteProcess;
+ class Double;
+ class Error;
+ class Exception;
+ class ExceptionInInitializerError;
+ class FirstThread;
+ class Float;
+ class IllegalAccessError;
+ class IllegalAccessException;
+ class IllegalArgumentException;
+ class IllegalMonitorStateException;
+ class IllegalStateException;
+ class IllegalThreadStateException;
+ class IncompatibleClassChangeError;
+ class IndexOutOfBoundsException;
+ class InstantiationError;
+ class InstantiationException;
+ class Integer;
+ class InternalError;
+ class InterruptedException;
+ class LinkageError;
+ class Long;
+ class Math;
+ class NegativeArraySizeException;
+ class NoClassDefFoundError;
+ class NoSuchFieldError;
+ class NoSuchFieldException;
+ class NoSuchMethodError;
+ class NoSuchMethodException;
+ class NullPointerException;
+ class Number;
+ class NumberFormatException;
+ class Object;
+ class OutOfMemoryError;
+ class Process;
+ class Runnable;
+ class Runtime;
+ class RuntimeException;
+ class SecurityException;
+ class SecurityManager;
+ class Short;
+ class StackOverflowError;
+ class String;
+ class StringBuffer;
+ class StringIndexOutOfBoundsException;
+ class System;
+ class Thread;
+ class ThreadDeath;
+ class ThreadGroup;
+ class Throwable;
+ class UnknownError;
+ class UnsatisfiedLinkError;
+ class UnsupportedOperationException;
+ class VerifyError;
+ class VirtualMachineError;
+ class Void;
+ namespace reflect
+ {
+ class AccessibleObject;
+ class Array;
+ class Constructor;
+ class Field;
+ class InvocationTargetException;
+ class Member;
+ class Method;
+ class Modifier;
+ }
+ }
+
+ namespace util
+ {
+ class BitSet;
+ class Calendar;
+ class ConcurrentModificationException;
+ class Date;
+ class Dictionary;
+ class EmptyStackException;
+ class Enumeration;
+ class EventListener;
+ class EventObject;
+ class GregorianCalendar;
+ class Hashtable;
+ class HashtableEntry;
+ class HashtableEnumeration;
+ class ListResourceBundle;
+ class Locale;
+ class MissingResourceException;
+ class NoSuchElementException;
+ class Observable;
+ class Observer;
+ class Properties;
+ class PropertyResourceBundle;
+ class Random;
+ class ResourceBundle;
+ class SimpleTimeZone;
+ class Stack;
+ class StringTokenizer;
+ class TimeZone;
+ class TooManyListenersException;
+ class Vector;
+ class VectorEnumeration;
+ namespace jar
+ {
+ class JarEntry;
+ class JarFile;
+ class JarInputStream;
+ }
+
+ namespace zip
+ {
+ class Adler32;
+ class CRC32;
+ class CheckedInputStream;
+ class CheckedOutputStream;
+ class Checksum;
+ class DataFormatException;
+ class Deflater;
+ class DeflaterOutputStream;
+ class GZIPInputStream;
+ class GZIPOutputStream;
+ class Inflater;
+ class InflaterInputStream;
+ class ZipConstants;
+ class ZipEntry;
+ class ZipEnumeration;
+ class ZipException;
+ class ZipFile;
+ class ZipInputStream;
+ class ZipOutputStream;
+ }
+ }
+ }
+};
+
+typedef struct java::lang::Object* jobject;
+typedef class java::lang::Class* jclass;
+typedef class java::lang::Throwable* jthrowable;
+typedef class java::lang::String* jstring;
+struct _Jv_JNIEnv;
+
+typedef struct _Jv_Field *jfieldID;
+typedef struct _Jv_Method *jmethodID;
+
+extern "C" jobject _Jv_AllocObject (jclass, jint);
+extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
+extern "C" jstring _Jv_AllocString(jsize);
+extern "C" jstring _Jv_NewString (const jchar*, jsize);
+extern "C" jchar* _Jv_GetStringChars (jstring str);
+extern "C" jint _Jv_MonitorEnter (jobject);
+extern "C" jint _Jv_MonitorExit (jobject);
+extern "C" jstring _Jv_NewStringLatin1(const char*, jsize);
+extern "C" jsize _Jv_GetStringUTFLength (jstring);
+extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
+
+extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
+extern "C" void* _Jv_Malloc (jsize);
+extern "C" void _Jv_Free (void*);
+
+typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
+typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
+
+typedef union {
+ jobject o;
+ jint i; // Also stores smaller integral types.
+ jfloat f;
+ jint ia[1]; // Half of _Jv_word2.
+ void* p;
+
+ // these are things we will store in the constant
+ jclass clazz;
+ jstring string;
+ struct _Jv_Field *field;
+ struct _Jv_Utf8Const *utf8;
+ struct _Jv_ResolvedMethod *rmethod;
+} _Jv_word;
+
+typedef union {
+ jint ia[2];
+ jlong l;
+ jdouble d;
+} _Jv_word2;
+
+struct _Jv_Utf8Const
+{
+ _Jv_ushort hash;
+ _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
+ char data[1]; /* In Utf8 format, with final '\0'. */
+};
+
+#endif /* __JAVAPRIMS_H__ */