diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-10 22:03:10 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-10 22:03:10 +0000 |
commit | 5e25b6c0051d1080d65f763ab41fdd3ccf4c0266 (patch) | |
tree | 2d703bb5c0f735c114d35388f4ce82a2a194fe18 /libjava/gcj/javaprims.h | |
parent | 58aea4f55da2dbf234dd4a1a9229f2df2ef25134 (diff) | |
download | gcc-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.h | 306 |
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__ */ |