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