OSDN Git Service

* Makefile.in: Rebuilt.
[pf3gnuchains/gcc-fork.git] / libjava / gcj / javaprims.h
1 // javaprims.h - Main external header file for libgcj.  -*- c++ -*-
2
3 /* Copyright (C) 1998, 1999, 2000  Free Software Foundation
4
5    This file is part of libgcj.
6
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
9 details.  */
10
11 #ifndef __JAVAPRIMS_H__
12 #define __JAVAPRIMS_H__
13
14 // FIXME: this is a hack until we get a proper gcjh.
15 // It is needed to work around system header files that define TRUE
16 // and FALSE.
17 #undef TRUE
18 #define TRUE TRUE
19 #undef FALSE
20 #define FALSE FALSE
21
22 // To force selection of correct types that will mangle consistently
23 // across platforms.
24 extern "Java"
25 {
26   typedef __java_byte jbyte;
27   typedef __java_short jshort;
28   typedef __java_int jint;
29   typedef __java_long jlong;
30   typedef __java_float jfloat;
31   typedef __java_double jdouble;
32   typedef __java_char jchar;
33   typedef __java_boolean jboolean;
34   typedef jint jsize;
35
36   // The following class declarations are automatically generated by
37   // the `classes.pl' script.
38   namespace java
39   {
40     namespace io
41     {
42       class BufferedInputStream;
43       class BufferedOutputStream;
44       class BufferedReader;
45       class BufferedWriter;
46       class ByteArrayInputStream;
47       class ByteArrayOutputStream;
48       class CharArrayReader;
49       class CharArrayWriter;
50       class CharConversionException;
51       class DataInput;
52       class DataInputStream;
53       class DataOutput;
54       class DataOutputStream;
55       class EOFException;
56       class Externalizable;
57       class File;
58       class FileDescriptor;
59       class FileFilter;
60       class FileInputStream;
61       class FileNotFoundException;
62       class FileOutputStream;
63       class FilePermission;
64       class FileReader;
65       class FileWriter;
66       class FilenameFilter;
67       class FilterInputStream;
68       class FilterOutputStream;
69       class FilterReader;
70       class FilterWriter;
71       class IOException;
72       class InputStream;
73       class InputStreamReader;
74       class InterfaceComparator;
75       class InterruptedIOException;
76       class InvalidClassException;
77       class InvalidObjectException;
78       class LineNumberInputStream;
79       class LineNumberReader;
80       class MemberComparator;
81       class NotActiveException;
82       class NotSerializableException;
83       class ObjectInput;
84       class ObjectInputStream;
85       class ObjectInputStream$GetField;
86       class ObjectInputValidation;
87       class ObjectOutput;
88       class ObjectOutputStream;
89       class ObjectOutputStream$PutField;
90       class ObjectStreamClass;
91       class ObjectStreamConstants;
92       class ObjectStreamException;
93       class ObjectStreamField;
94       class OptionalDataException;
95       class OutputStream;
96       class OutputStreamWriter;
97       class PipedInputStream;
98       class PipedOutputStream;
99       class PipedReader;
100       class PipedWriter;
101       class PrintStream;
102       class PrintWriter;
103       class PushbackInputStream;
104       class PushbackReader;
105       class RandomAccessFile;
106       class Reader;
107       class SequenceInputStream;
108       class Serializable;
109       class SerializablePermission;
110       class StreamCorruptedException;
111       class StreamTokenizer;
112       class StringBufferInputStream;
113       class StringReader;
114       class StringWriter;
115       class SyncFailedException;
116       class UTFDataFormatException;
117       class UnsupportedEncodingException;
118       class ValidatorAndPriority;
119       class WriteAbortedException;
120       class Writer;
121     };
122
123     namespace lang
124     {
125       class AbstractMethodError;
126       class ArithmeticException;
127       class ArrayIndexOutOfBoundsException;
128       class ArrayStoreException;
129       class Boolean;
130       class Byte;
131       class CPlusPlusDemangler;
132       class Character;
133       class Character$Subset;
134       class Character$UnicodeBlock;
135       class Class;
136       class ClassCastException;
137       class ClassCircularityError;
138       class ClassFormatError;
139       class ClassLoader;
140       class ClassNotFoundException;
141       class CloneNotSupportedException;
142       class Cloneable;
143       class Comparable;
144       class Compiler;
145       class ConcreteProcess;
146       class Double;
147       class Error;
148       class Exception;
149       class ExceptionInInitializerError;
150       class Float;
151       class IllegalAccessError;
152       class IllegalAccessException;
153       class IllegalArgumentException;
154       class IllegalMonitorStateException;
155       class IllegalStateException;
156       class IllegalThreadStateException;
157       class IncompatibleClassChangeError;
158       class IndexOutOfBoundsException;
159       class InstantiationError;
160       class InstantiationException;
161       class Integer;
162       class InternalError;
163       class InterruptedException;
164       class LinkageError;
165       class Long;
166       class Math;
167       class NegativeArraySizeException;
168       class NoClassDefFoundError;
169       class NoSuchFieldError;
170       class NoSuchFieldException;
171       class NoSuchMethodError;
172       class NoSuchMethodException;
173       class NullPointerException;
174       class Number;
175       class NumberFormatException;
176       class Object;
177       class OutOfMemoryError;
178       class Package;
179       class Process;
180       class Runnable;
181       class Runtime;
182       class RuntimeException;
183       class RuntimePermission;
184       class SecurityException;
185       class SecurityManager;
186       class Short;
187       class StackOverflowError;
188       class String;
189       class StringBuffer;
190       class StringIndexOutOfBoundsException;
191       class System;
192       class Thread;
193       class ThreadDeath;
194       class ThreadGroup;
195       class Throwable;
196       class UnknownError;
197       class UnsatisfiedLinkError;
198       class UnsupportedOperationException;
199       class VerifyError;
200       class VirtualMachineError;
201       class Void;
202       namespace ref
203       {
204         class PhantomReference;
205         class Reference;
206         class ReferenceQueue;
207         class SoftReference;
208         class WeakReference;
209       };
210
211       namespace reflect
212       {
213         class AccessibleObject;
214         class Array;
215         class Constructor;
216         class Field;
217         class InvocationTargetException;
218         class Member;
219         class Method;
220         class Modifier;
221         class ReflectPermission;
222       };
223     };
224
225     namespace util
226     {
227       class AbstractCollection;
228       class AbstractList;
229       class AbstractList$AbstractListItr;
230       class AbstractMap;
231       class AbstractSequentialList;
232       class AbstractSet;
233       class ArrayList;
234       class Arrays;
235       class Arrays$ListImpl;
236       class BasicMapEntry;
237       class BitSet;
238       class Calendar;
239       class Collection;
240       class Collections;
241       class Collections$ReverseComparator;
242       class Collections$SynchronizedCollection;
243       class Collections$SynchronizedIterator;
244       class Collections$SynchronizedList;
245       class Collections$SynchronizedListIterator;
246       class Collections$SynchronizedMap;
247       class Collections$SynchronizedSet;
248       class Collections$SynchronizedSortedMap;
249       class Collections$SynchronizedSortedSet;
250       class Collections$UnmodifiableCollection;
251       class Collections$UnmodifiableIterator;
252       class Collections$UnmodifiableList;
253       class Collections$UnmodifiableListIterator;
254       class Collections$UnmodifiableMap;
255       class Collections$UnmodifiableSet;
256       class Collections$UnmodifiableSortedMap;
257       class Collections$UnmodifiableSortedSet;
258       class Comparator;
259       class ConcurrentModificationException;
260       class Date;
261       class Dictionary;
262       class EmptyStackException;
263       class Enumeration;
264       class EventListener;
265       class EventObject;
266       class GregorianCalendar;
267       class HashMap;
268       class HashMap$Entry;
269       class HashMap$HashIterator;
270       class HashSet;
271       class Hashtable;
272       class Hashtable$Entry;
273       class Hashtable$Enumerator;
274       class Hashtable$HashIterator;
275       class Iterator;
276       class LinkedList;
277       class LinkedList$Entry;
278       class LinkedList$LinkedListItr;
279       class List;
280       class ListIterator;
281       class ListResourceBundle;
282       class Locale;
283       class Map;
284       class Map$Entry;
285       class MissingResourceException;
286       class NoSuchElementException;
287       class Observable;
288       class Observer;
289       class Properties;
290       class PropertyPermission;
291       class PropertyResourceBundle;
292       class Random;
293       class ResourceBundle;
294       class Set;
295       class SimpleTimeZone;
296       class SortedMap;
297       class SortedSet;
298       class Stack;
299       class StringTokenizer;
300       class SubList;
301       class TimeZone;
302       class Timer;
303       class Timer$Scheduler;
304       class Timer$TaskQueue;
305       class TimerTask;
306       class TooManyListenersException;
307       class TreeMap;
308       class TreeMap$Node;
309       class TreeMap$SubMap;
310       class TreeMap$TreeIterator;
311       class TreeMap$VerifyResult;
312       class TreeSet;
313       class Vector;
314       class WeakHashMap;
315       class WeakHashMap$Entry;
316       class WeakHashMap$WeakBucket;
317       class WeakHashMap$WeakEntrySet;
318       namespace jar
319       {
320         class Attributes;
321         class Attributes$Name;
322         class JarEntry;
323         class JarException;
324         class JarFile;
325         class JarFile$JarEnumeration;
326         class JarInputStream;
327         class JarOutputStream;
328         class Manifest;
329       };
330
331       namespace zip
332       {
333         class Adler32;
334         class CRC32;
335         class CheckedInputStream;
336         class CheckedOutputStream;
337         class Checksum;
338         class DataFormatException;
339         class Deflater;
340         class DeflaterOutputStream;
341         class GZIPInputStream;
342         class GZIPOutputStream;
343         class Inflater;
344         class InflaterInputStream;
345         class ZipConstants;
346         class ZipEntry;
347         class ZipEnumeration;
348         class ZipException;
349         class ZipFile;
350         class ZipInputStream;
351         class ZipOutputStream;
352       };
353     };
354   };
355 };
356   
357 typedef struct java::lang::Object* jobject;
358 typedef class java::lang::Class* jclass;
359 typedef class java::lang::Throwable* jthrowable;
360 typedef class java::lang::String* jstring;
361 struct _Jv_JNIEnv;
362
363 typedef struct _Jv_Field *jfieldID;
364 typedef struct _Jv_Method *jmethodID;
365
366 extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
367 extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
368 extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
369 extern "C" jstring _Jv_NewString (const jchar*, jsize)
370   __attribute__((__malloc__));
371 extern "C" jchar* _Jv_GetStringChars (jstring str);
372 extern "C" jint _Jv_MonitorEnter (jobject);
373 extern "C" jint _Jv_MonitorExit (jobject);
374 extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
375   __attribute__((__malloc__));
376 extern "C" jsize _Jv_GetStringUTFLength (jstring);
377 extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
378
379 extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
380 extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
381 extern "C" void* _Jv_Realloc (void *, jsize);
382 extern "C" void _Jv_Free (void*);
383
384 typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
385 typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
386
387 struct _Jv_Utf8Const
388 {
389   _Jv_ushort hash;
390   _Jv_ushort length;    /* In bytes, of data portion, without final '\0'. */
391   char data[1];         /* In Utf8 format, with final '\0'. */
392 };
393
394 #endif /* __JAVAPRIMS_H__ */