Makefile.am: Removed java/io/Replaceable.java and java/io/Resolvable.java.
[gcc.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 BlockDataException;
43 class BufferedInputStream;
44 class BufferedOutputStream;
45 class BufferedReader;
46 class BufferedWriter;
47 class ByteArrayInputStream;
48 class ByteArrayOutputStream;
49 class CharArrayReader;
50 class CharArrayWriter;
51 class CharConversionException;
52 class DataInput;
53 class DataInputStream;
54 class DataOutput;
55 class DataOutputStream;
56 class EOFException;
57 class Externalizable;
58 class File;
59 class FileDescriptor;
60 class FileInputStream;
61 class FileNotFoundException;
62 class FileOutputStream;
63 class FileReader;
64 class FileWriter;
65 class FilenameFilter;
66 class FilterInputStream;
67 class FilterOutputStream;
68 class FilterReader;
69 class FilterWriter;
70 class IOException;
71 class InputStream;
72 class InputStreamReader;
73 class InterfaceComparator;
74 class InterruptedIOException;
75 class InvalidClassException;
76 class InvalidObjectException;
77 class LineNumberInputStream;
78 class LineNumberReader;
79 class MemberComparator;
80 class NotActiveException;
81 class NotSerializableException;
82 class ObjectInput;
83 class ObjectInputStream;
84 class ObjectInputStream$GetField;
85 class ObjectInputValidation;
86 class ObjectOutput;
87 class ObjectOutputStream;
88 class ObjectOutputStream$PutField;
89 class ObjectStreamClass;
90 class ObjectStreamConstants;
91 class ObjectStreamException;
92 class ObjectStreamField;
93 class OptionalDataException;
94 class OutputStream;
95 class OutputStreamWriter;
96 class PipedInputStream;
97 class PipedOutputStream;
98 class PipedReader;
99 class PipedWriter;
100 class PrintStream;
101 class PrintWriter;
102 class PushbackInputStream;
103 class PushbackReader;
104 class RandomAccessFile;
105 class Reader;
106 class SequenceInputStream;
107 class Serializable;
108 class SerializablePermission;
109 class StreamCorruptedException;
110 class StreamTokenizer;
111 class StringBufferInputStream;
112 class StringReader;
113 class StringWriter;
114 class SyncFailedException;
115 class UTFDataFormatException;
116 class UnsupportedEncodingException;
117 class ValidatorAndPriority;
118 class WriteAbortedException;
119 class Writer;
120 };
121
122 namespace lang
123 {
124 class AbstractMethodError;
125 class ArithmeticException;
126 class ArrayIndexOutOfBoundsException;
127 class ArrayStoreException;
128 class Boolean;
129 class Byte;
130 class CPlusPlusDemangler;
131 class Character;
132 class Class;
133 class ClassCastException;
134 class ClassCircularityError;
135 class ClassFormatError;
136 class ClassLoader;
137 class ClassNotFoundException;
138 class CloneNotSupportedException;
139 class Cloneable;
140 class Comparable;
141 class Compiler;
142 class ConcreteProcess;
143 class Double;
144 class Error;
145 class Exception;
146 class ExceptionInInitializerError;
147 class Float;
148 class IllegalAccessError;
149 class IllegalAccessException;
150 class IllegalArgumentException;
151 class IllegalMonitorStateException;
152 class IllegalStateException;
153 class IllegalThreadStateException;
154 class IncompatibleClassChangeError;
155 class IndexOutOfBoundsException;
156 class InstantiationError;
157 class InstantiationException;
158 class Integer;
159 class InternalError;
160 class InterruptedException;
161 class LinkageError;
162 class Long;
163 class Math;
164 class NegativeArraySizeException;
165 class NoClassDefFoundError;
166 class NoSuchFieldError;
167 class NoSuchFieldException;
168 class NoSuchMethodError;
169 class NoSuchMethodException;
170 class NullPointerException;
171 class Number;
172 class NumberFormatException;
173 class Object;
174 class OutOfMemoryError;
175 class Process;
176 class Runnable;
177 class Runtime;
178 class RuntimeException;
179 class SecurityException;
180 class SecurityManager;
181 class Short;
182 class StackOverflowError;
183 class String;
184 class StringBuffer;
185 class StringIndexOutOfBoundsException;
186 class System;
187 class Thread;
188 class ThreadDeath;
189 class ThreadGroup;
190 class Throwable;
191 class UnknownError;
192 class UnsatisfiedLinkError;
193 class UnsupportedOperationException;
194 class VerifyError;
195 class VirtualMachineError;
196 class Void;
197 namespace reflect
198 {
199 class AccessibleObject;
200 class Array;
201 class Constructor;
202 class Field;
203 class InvocationTargetException;
204 class Member;
205 class Method;
206 class Modifier;
207 };
208 };
209
210 namespace util
211 {
212 class AbstractCollection;
213 class AbstractList;
214 class AbstractList$SubList;
215 class AbstractSet;
216 class Arrays;
217 class Arrays$ListImpl;
218 class BasicMapEntry;
219 class BitSet;
220 class Bucket;
221 class Bucket$Node;
222 class Calendar;
223 class Collection;
224 class Comparator;
225 class ConcurrentModificationException;
226 class Date;
227 class Dictionary;
228 class EmptyStackException;
229 class Enumeration;
230 class EventListener;
231 class EventObject;
232 class GregorianCalendar;
233 class Hashtable;
234 class Hashtable$HashtableCollection;
235 class Hashtable$HashtableEntry;
236 class Hashtable$HashtableEnumeration;
237 class Hashtable$HashtableIterator;
238 class Hashtable$HashtableSet;
239 class Iterator;
240 class List;
241 class ListIterator;
242 class ListResourceBundle;
243 class Locale;
244 class Map;
245 class Map$Entry;
246 class MissingResourceException;
247 class NoSuchElementException;
248 class Observable;
249 class Observer;
250 class Properties;
251 class PropertyResourceBundle;
252 class Random;
253 class ResourceBundle;
254 class Set;
255 class SimpleTimeZone;
256 class Stack;
257 class StringTokenizer;
258 class TimeZone;
259 class TooManyListenersException;
260 class Vector;
261 class VectorEnumeration;
262 namespace jar
263 {
264 class Attributes;
265 class JarEntry;
266 class JarException;
267 class JarFile;
268 class JarFile$JarEnumeration;
269 class JarInputStream;
270 class JarOutputStream;
271 class Manifest;
272 };
273
274 namespace zip
275 {
276 class Adler32;
277 class CRC32;
278 class CheckedInputStream;
279 class CheckedOutputStream;
280 class Checksum;
281 class DataFormatException;
282 class Deflater;
283 class DeflaterOutputStream;
284 class GZIPInputStream;
285 class GZIPOutputStream;
286 class Inflater;
287 class InflaterInputStream;
288 class ZipConstants;
289 class ZipEntry;
290 class ZipEnumeration;
291 class ZipException;
292 class ZipFile;
293 class ZipInputStream;
294 class ZipOutputStream;
295 };
296 };
297 };
298 namespace java
299 {
300 namespace io
301 {
302 class BlockDataException;
303 class BufferedInputStream;
304 class BufferedOutputStream;
305 class BufferedReader;
306 class BufferedWriter;
307 class ByteArrayInputStream;
308 class ByteArrayOutputStream;
309 class CharArrayReader;
310 class CharArrayWriter;
311 class CharConversionException;
312 class DataInput;
313 class DataInputStream;
314 class DataOutput;
315 class DataOutputStream;
316 class EOFException;
317 class Externalizable;
318 class File;
319 class FileDescriptor;
320 class FileInputStream;
321 class FileNotFoundException;
322 class FileOutputStream;
323 class FileReader;
324 class FileWriter;
325 class FilenameFilter;
326 class FilterInputStream;
327 class FilterOutputStream;
328 class FilterReader;
329 class FilterWriter;
330 class IOException;
331 class InputStream;
332 class InputStreamReader;
333 class InterfaceComparator;
334 class InterruptedIOException;
335 class InvalidClassException;
336 class InvalidObjectException;
337 class LineNumberInputStream;
338 class LineNumberReader;
339 class MemberComparator;
340 class NotActiveException;
341 class NotSerializableException;
342 class ObjectInput;
343 class ObjectInputStream;
344 class ObjectInputStream$GetField;
345 class ObjectInputValidation;
346 class ObjectOutput;
347 class ObjectOutputStream;
348 class ObjectOutputStream$PutField;
349 class ObjectStreamClass;
350 class ObjectStreamConstants;
351 class ObjectStreamException;
352 class ObjectStreamField;
353 class OptionalDataException;
354 class OutputStream;
355 class OutputStreamWriter;
356 class PipedInputStream;
357 class PipedOutputStream;
358 class PipedReader;
359 class PipedWriter;
360 class PrintStream;
361 class PrintWriter;
362 class PushbackInputStream;
363 class PushbackReader;
364 class RandomAccessFile;
365 class Reader;
366 class Replaceable;
367 class Resolvable;
368 class SequenceInputStream;
369 class Serializable;
370 class SerializablePermission;
371 class StreamCorruptedException;
372 class StreamTokenizer;
373 class StringBufferInputStream;
374 class StringReader;
375 class StringWriter;
376 class SyncFailedException;
377 class UTFDataFormatException;
378 class UnsupportedEncodingException;
379 class ValidatorAndPriority;
380 class WriteAbortedException;
381 class Writer;
382 };
383 };
384 };
385
386 typedef struct java::lang::Object* jobject;
387 typedef class java::lang::Class* jclass;
388 typedef class java::lang::Throwable* jthrowable;
389 typedef class java::lang::String* jstring;
390 struct _Jv_JNIEnv;
391
392 typedef struct _Jv_Field *jfieldID;
393 typedef struct _Jv_Method *jmethodID;
394
395 extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
396 extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
397 extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
398 extern "C" jstring _Jv_NewString (const jchar*, jsize)
399 __attribute__((__malloc__));
400 extern "C" jchar* _Jv_GetStringChars (jstring str);
401 extern "C" jint _Jv_MonitorEnter (jobject);
402 extern "C" jint _Jv_MonitorExit (jobject);
403 extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
404 __attribute__((__malloc__));
405 extern "C" jsize _Jv_GetStringUTFLength (jstring);
406 extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
407
408 extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
409 extern "C" void _Jv_Sjlj_Throw (void *) __attribute__ ((__noreturn__));
410 extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
411 extern "C" void* _Jv_Realloc (void *, jsize);
412 extern "C" void _Jv_Free (void*);
413
414 typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
415 typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
416
417 struct _Jv_Utf8Const
418 {
419 _Jv_ushort hash;
420 _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
421 char data[1]; /* In Utf8 format, with final '\0'. */
422 };
423
424 #endif /* __JAVAPRIMS_H__ */