source: branches/libc-0.6/src/gcc/libjava/gcj/javaprims.h

Last change on this file was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 13.8 KB
Line 
1// javaprims.h - Main external header file for libgcj. -*- c++ -*-
2
3/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
4
5 This file is part of libgcj.
6
7This software is copyrighted work licensed under the terms of the
8Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9details. */
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.
29extern "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 VMObjectStreamClass;
124 class ValidatorAndPriority;
125 class WriteAbortedException;
126 class Writer;
127 };
128
129 namespace lang
130 {
131 class AbstractMethodError;
132 class ArithmeticException;
133 class ArrayIndexOutOfBoundsException;
134 class ArrayStoreException;
135 class AssertionError;
136 class Boolean;
137 class Byte;
138 class CharSequence;
139 class Character;
140 class Character$Subset;
141 class Character$UnicodeBlock;
142 class Class;
143 class ClassCastException;
144 class ClassCircularityError;
145 class ClassFormatError;
146 class ClassLoader;
147 class ClassNotFoundException;
148 class CloneNotSupportedException;
149 class Cloneable;
150 class Comparable;
151 class Compiler;
152 class ConcreteProcess;
153 class Double;
154 class Error;
155 class Exception;
156 class ExceptionInInitializerError;
157 class Float;
158 class IllegalAccessError;
159 class IllegalAccessException;
160 class IllegalArgumentException;
161 class IllegalMonitorStateException;
162 class IllegalStateException;
163 class IllegalThreadStateException;
164 class IncompatibleClassChangeError;
165 class IndexOutOfBoundsException;
166 class InheritableThreadLocal;
167 class InstantiationError;
168 class InstantiationException;
169 class Integer;
170 class InternalError;
171 class InterruptedException;
172 class LinkageError;
173 class Long;
174 class Math;
175 class NegativeArraySizeException;
176 class NoClassDefFoundError;
177 class NoSuchFieldError;
178 class NoSuchFieldException;
179 class NoSuchMethodError;
180 class NoSuchMethodException;
181 class NullPointerException;
182 class Number;
183 class NumberFormatException;
184 class Object;
185 class OutOfMemoryError;
186 class Package;
187 class Process;
188 class Runnable;
189 class Runtime;
190 class RuntimeException;
191 class RuntimePermission;
192 class SecurityContext;
193 class SecurityException;
194 class SecurityManager;
195 class Short;
196 class StackOverflowError;
197 class StackTraceElement;
198 class StrictMath;
199 class String;
200 class String$CaseInsensitiveComparator;
201 class StringBuffer;
202 class StringIndexOutOfBoundsException;
203 class System;
204 class Thread;
205 class ThreadDeath;
206 class ThreadGroup;
207 class ThreadLocal;
208 class Throwable;
209 class UnknownError;
210 class UnsatisfiedLinkError;
211 class UnsupportedClassVersionError;
212 class UnsupportedOperationException;
213 class VMClassLoader;
214 class VMSecurityManager;
215 class VMThrowable;
216 class VerifyError;
217 class VirtualMachineError;
218 class Void;
219 namespace ref
220 {
221 class PhantomReference;
222 class Reference;
223 class ReferenceQueue;
224 class SoftReference;
225 class WeakReference;
226 };
227
228 namespace reflect
229 {
230 class AccessibleObject;
231 class Array;
232 class Constructor;
233 class Field;
234 class InvocationHandler;
235 class InvocationTargetException;
236 class Member;
237 class Method;
238 class Modifier;
239 class Proxy;
240 class Proxy$ClassFactory;
241 class Proxy$ProxyData;
242 class Proxy$ProxySignature;
243 class Proxy$ProxyType;
244 class ReflectPermission;
245 class UndeclaredThrowableException;
246 };
247 };
248
249 namespace util
250 {
251 class AbstractCollection;
252 class AbstractList;
253 class AbstractMap;
254 class AbstractMap$BasicMapEntry;
255 class AbstractSequentialList;
256 class AbstractSet;
257 class ArrayList;
258 class Arrays;
259 class Arrays$ArrayList;
260 class BitSet;
261 class Calendar;
262 class Collection;
263 class Collections;
264 class Collections$CopiesList;
265 class Collections$EmptyList;
266 class Collections$EmptyMap;
267 class Collections$EmptySet;
268 class Collections$ReverseComparator;
269 class Collections$SingletonList;
270 class Collections$SingletonMap;
271 class Collections$SingletonSet;
272 class Collections$SynchronizedCollection;
273 class Collections$SynchronizedIterator;
274 class Collections$SynchronizedList;
275 class Collections$SynchronizedListIterator;
276 class Collections$SynchronizedMap;
277 class Collections$SynchronizedMapEntry;
278 class Collections$SynchronizedRandomAccessList;
279 class Collections$SynchronizedSet;
280 class Collections$SynchronizedSortedMap;
281 class Collections$SynchronizedSortedSet;
282 class Collections$UnmodifiableCollection;
283 class Collections$UnmodifiableEntrySet;
284 class Collections$UnmodifiableIterator;
285 class Collections$UnmodifiableList;
286 class Collections$UnmodifiableListIterator;
287 class Collections$UnmodifiableMap;
288 class Collections$UnmodifiableRandomAccessList;
289 class Collections$UnmodifiableSet;
290 class Collections$UnmodifiableSortedMap;
291 class Collections$UnmodifiableSortedSet;
292 class Comparator;
293 class ConcurrentModificationException;
294 class Date;
295 class Dictionary;
296 class EmptyStackException;
297 class Enumeration;
298 class EventListener;
299 class EventListenerProxy;
300 class EventObject;
301 class GregorianCalendar;
302 class HashMap;
303 class HashMap$HashEntry;
304 class HashMap$HashIterator;
305 class HashSet;
306 class Hashtable;
307 class Hashtable$Enumerator;
308 class Hashtable$HashEntry;
309 class Hashtable$HashIterator;
310 class IdentityHashMap;
311 class IdentityHashMap$IdentityEntry;
312 class IdentityHashMap$IdentityIterator;
313 class Iterator;
314 class LinkedHashMap;
315 class LinkedHashMap$LinkedHashEntry;
316 class LinkedHashSet;
317 class LinkedList;
318 class LinkedList$Entry;
319 class LinkedList$LinkedListItr;
320 class List;
321 class ListIterator;
322 class ListResourceBundle;
323 class Locale;
324 class Map;
325 class Map$Entry;
326 class Map$Map;
327 class MissingResourceException;
328 class MyResources;
329 class NoSuchElementException;
330 class Observable;
331 class Observer;
332 class Properties;
333 class PropertyPermission;
334 class PropertyPermissionCollection;
335 class PropertyResourceBundle;
336 class Random;
337 class RandomAccess;
338 class RandomAccessSubList;
339 class ResourceBundle;
340 class Set;
341 class SimpleTimeZone;
342 class SortedMap;
343 class SortedSet;
344 class Stack;
345 class StringTokenizer;
346 class SubList;
347 class TimeZone;
348 class Timer;
349 class Timer$Scheduler;
350 class Timer$TaskQueue;
351 class TimerTask;
352 class TooManyListenersException;
353 class TreeMap;
354 class TreeMap$Node;
355 class TreeMap$SubMap;
356 class TreeMap$TreeIterator;
357 class TreeSet;
358 class Vector;
359 class WeakHashMap;
360 class WeakHashMap$WeakBucket;
361 class WeakHashMap$WeakEntry;
362 class WeakHashMap$WeakEntrySet;
363 namespace jar
364 {
365 class Attributes;
366 class Attributes$Name;
367 class JarEntry;
368 class JarException;
369 class JarFile;
370 class JarFile$JarEnumeration;
371 class JarInputStream;
372 class JarOutputStream;
373 class Manifest;
374 };
375
376 namespace regex
377 {
378 class Matcher;
379 class Pattern;
380 class PatternSyntaxException;
381 };
382
383 namespace zip
384 {
385 class Adler32;
386 class CRC32;
387 class CheckedInputStream;
388 class CheckedOutputStream;
389 class Checksum;
390 class DataFormatException;
391 class Deflater;
392 class DeflaterOutputStream;
393 class GZIPInputStream;
394 class GZIPOutputStream;
395 class Inflater;
396 class InflaterInputStream;
397 class ZipConstants;
398 class ZipEntry;
399 class ZipException;
400 class ZipFile;
401 class ZipFile$PartialInputStream;
402 class ZipFile$ZipEntryEnumeration;
403 class ZipInputStream;
404 class ZipOutputStream;
405 };
406 };
407 };
408};
409
410typedef struct java::lang::Object* jobject;
411typedef class java::lang::Class* jclass;
412typedef class java::lang::Throwable* jthrowable;
413typedef class java::lang::String* jstring;
414struct _Jv_JNIEnv;
415
416typedef struct _Jv_Field *jfieldID;
417typedef struct _Jv_Method *jmethodID;
418
419extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
420extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass, jint) __attribute__((__malloc__));
421extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass, jint) __attribute__((__malloc__));
422#ifdef JV_HASH_SYNCHRONIZATION
423 extern "C" jobject _Jv_AllocPtrFreeObject (jclass, jint)
424 __attribute__((__malloc__));
425#else
426 // Collector still needs to scan sync_info
427 static inline jobject _Jv_AllocPtrFreeObject (jclass klass, jint sz)
428 {
429 return _Jv_AllocObject(klass, sz);
430 }
431#endif
432extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
433extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
434extern "C" jstring _Jv_NewString (const jchar*, jsize)
435 __attribute__((__malloc__));
436extern jint _Jv_FormatInt (jchar* bufend, jint num);
437extern "C" jchar* _Jv_GetStringChars (jstring str);
438extern "C" void _Jv_MonitorEnter (jobject);
439extern "C" void _Jv_MonitorExit (jobject);
440extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
441 __attribute__((__malloc__));
442extern "C" jsize _Jv_GetStringUTFLength (jstring);
443extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
444
445extern jint _Jv_CreateJavaVM (void* /*vm_args*/);
446
447void
448_Jv_ThreadRun (java::lang::Thread* thread);
449jint
450_Jv_AttachCurrentThread(java::lang::Thread* thread);
451extern "C" java::lang::Thread*
452_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
453extern "C" java::lang::Thread*
454_Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group);
455extern "C" jint _Jv_DetachCurrentThread (void);
456
457extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
458extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
459extern "C" void* _Jv_Realloc (void *, jsize);
460extern "C" void _Jv_Free (void*);
461extern void (*_Jv_RegisterClassHook) (jclass cl);
462extern "C" void _Jv_RegisterClassHookDefault (jclass);
463
464typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
465typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
466
467struct _Jv_Utf8Const
468{
469 _Jv_ushort hash;
470 _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
471 char data[1]; /* In Utf8 format, with final '\0'. */
472};
473
474
475#endif /* __JAVAPRIMS_H__ */
Note: See TracBrowser for help on using the repository browser.