OSDN Git Service

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