OSDN Git Service

* real.c (encode_ieee_single): Ensure proper promotion.
[pf3gnuchains/gcc-fork.git] / libjava / gcj / javaprims.h
index 0592922..4420f64 100644 (file)
@@ -1,6 +1,6 @@
 // javaprims.h - Main external header file for libgcj.  -*- c++ -*-
 
-/* Copyright (C) 1998, 1999, 2000  Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -11,6 +11,11 @@ details.  */
 #ifndef __JAVAPRIMS_H__
 #define __JAVAPRIMS_H__
 
+// Force C++ compiler to use Java-style exceptions.
+#pragma GCC java_exceptions
+
+#include <gcj/libgcj-config.h>
+
 // FIXME: this is a hack until we get a proper gcjh.
 // It is needed to work around system header files that define TRUE
 // and FALSE.
@@ -39,7 +44,6 @@ extern "Java"
   {
     namespace io
     {
-      class BlockDataException;
       class BufferedInputStream;
       class BufferedOutputStream;
       class BufferedReader;
@@ -57,9 +61,11 @@ extern "Java"
       class Externalizable;
       class File;
       class FileDescriptor;
+      class FileFilter;
       class FileInputStream;
       class FileNotFoundException;
       class FileOutputStream;
+      class FilePermission;
       class FileReader;
       class FileWriter;
       class FilenameFilter;
@@ -103,8 +109,6 @@ extern "Java"
       class PushbackReader;
       class RandomAccessFile;
       class Reader;
-      class Replaceable;
-      class Resolvable;
       class SequenceInputStream;
       class Serializable;
       class SerializablePermission;
@@ -116,10 +120,11 @@ extern "Java"
       class SyncFailedException;
       class UTFDataFormatException;
       class UnsupportedEncodingException;
+      class VMObjectStreamClass;
       class ValidatorAndPriority;
       class WriteAbortedException;
       class Writer;
-    };
+    }
 
     namespace lang
     {
@@ -127,10 +132,13 @@ extern "Java"
       class ArithmeticException;
       class ArrayIndexOutOfBoundsException;
       class ArrayStoreException;
+      class AssertionError;
       class Boolean;
       class Byte;
-      class CPlusPlusDemangler;
+      class CharSequence;
       class Character;
+      class Character$Subset;
+      class Character$UnicodeBlock;
       class Class;
       class ClassCastException;
       class ClassCircularityError;
@@ -155,6 +163,7 @@ extern "Java"
       class IllegalThreadStateException;
       class IncompatibleClassChangeError;
       class IndexOutOfBoundsException;
+      class InheritableThreadLocal;
       class InstantiationError;
       class InstantiationException;
       class Integer;
@@ -174,51 +183,112 @@ extern "Java"
       class NumberFormatException;
       class Object;
       class OutOfMemoryError;
+      class Package;
       class Process;
       class Runnable;
       class Runtime;
       class RuntimeException;
+      class RuntimePermission;
+      class SecurityContext;
       class SecurityException;
       class SecurityManager;
       class Short;
       class StackOverflowError;
+      class StackTraceElement;
+      class StrictMath;
       class String;
+      class String$CaseInsensitiveComparator;
       class StringBuffer;
       class StringIndexOutOfBoundsException;
       class System;
       class Thread;
       class ThreadDeath;
       class ThreadGroup;
+      class ThreadLocal;
       class Throwable;
       class UnknownError;
       class UnsatisfiedLinkError;
+      class UnsupportedClassVersionError;
       class UnsupportedOperationException;
+      class VMClassLoader;
+      class VMSecurityManager;
+      class VMThrowable;
       class VerifyError;
       class VirtualMachineError;
       class Void;
+      namespace ref
+      {
+        class PhantomReference;
+        class Reference;
+        class ReferenceQueue;
+        class SoftReference;
+        class WeakReference;
+      }
+
       namespace reflect
       {
         class AccessibleObject;
         class Array;
         class Constructor;
         class Field;
+        class InvocationHandler;
         class InvocationTargetException;
         class Member;
         class Method;
         class Modifier;
-      };
-    };
+        class Proxy;
+        class Proxy$ClassFactory;
+        class Proxy$ProxyData;
+        class Proxy$ProxySignature;
+        class Proxy$ProxyType;
+        class ReflectPermission;
+        class UndeclaredThrowableException;
+      }
+    }
 
     namespace util
     {
       class AbstractCollection;
       class AbstractList;
-      class AbstractList$SubList;
+      class AbstractMap;
+      class AbstractMap$BasicMapEntry;
+      class AbstractSequentialList;
+      class AbstractSet;
+      class ArrayList;
       class Arrays;
-      class Arrays$ListImpl;
+      class Arrays$ArrayList;
       class BitSet;
       class Calendar;
       class Collection;
+      class Collections;
+      class Collections$CopiesList;
+      class Collections$EmptyList;
+      class Collections$EmptyMap;
+      class Collections$EmptySet;
+      class Collections$ReverseComparator;
+      class Collections$SingletonList;
+      class Collections$SingletonMap;
+      class Collections$SingletonSet;
+      class Collections$SynchronizedCollection;
+      class Collections$SynchronizedIterator;
+      class Collections$SynchronizedList;
+      class Collections$SynchronizedListIterator;
+      class Collections$SynchronizedMap;
+      class Collections$SynchronizedMapEntry;
+      class Collections$SynchronizedRandomAccessList;
+      class Collections$SynchronizedSet;
+      class Collections$SynchronizedSortedMap;
+      class Collections$SynchronizedSortedSet;
+      class Collections$UnmodifiableCollection;
+      class Collections$UnmodifiableEntrySet;
+      class Collections$UnmodifiableIterator;
+      class Collections$UnmodifiableList;
+      class Collections$UnmodifiableListIterator;
+      class Collections$UnmodifiableMap;
+      class Collections$UnmodifiableRandomAccessList;
+      class Collections$UnmodifiableSet;
+      class Collections$UnmodifiableSortedMap;
+      class Collections$UnmodifiableSortedSet;
       class Comparator;
       class ConcurrentModificationException;
       class Date;
@@ -226,37 +296,122 @@ extern "Java"
       class EmptyStackException;
       class Enumeration;
       class EventListener;
+      class EventListenerProxy;
       class EventObject;
       class GregorianCalendar;
+      class HashMap;
+      class HashMap$HashEntry;
+      class HashMap$HashIterator;
+      class HashSet;
       class Hashtable;
-      class HashtableEntry;
-      class HashtableEnumeration;
+      class Hashtable$Enumerator;
+      class Hashtable$HashEntry;
+      class Hashtable$HashIterator;
+      class IdentityHashMap;
+      class IdentityHashMap$IdentityEntry;
+      class IdentityHashMap$IdentityIterator;
       class Iterator;
+      class LinkedHashMap;
+      class LinkedHashMap$LinkedHashEntry;
+      class LinkedHashSet;
+      class LinkedList;
+      class LinkedList$Entry;
+      class LinkedList$LinkedListItr;
       class List;
       class ListIterator;
       class ListResourceBundle;
       class Locale;
+      class Map;
+      class Map$Entry;
+      class Map$Map;
       class MissingResourceException;
+      class MyResources;
       class NoSuchElementException;
       class Observable;
       class Observer;
       class Properties;
+      class PropertyPermission;
+      class PropertyPermissionCollection;
       class PropertyResourceBundle;
       class Random;
+      class RandomAccess;
+      class RandomAccessSubList;
       class ResourceBundle;
+      class Set;
       class SimpleTimeZone;
+      class SortedMap;
+      class SortedSet;
       class Stack;
       class StringTokenizer;
+      class SubList;
       class TimeZone;
+      class Timer;
+      class Timer$Scheduler;
+      class Timer$TaskQueue;
+      class TimerTask;
       class TooManyListenersException;
+      class TreeMap;
+      class TreeMap$Node;
+      class TreeMap$SubMap;
+      class TreeMap$TreeIterator;
+      class TreeSet;
       class Vector;
-      class VectorEnumeration;
+      class WeakHashMap;
+      class WeakHashMap$WeakBucket;
+      class WeakHashMap$WeakEntry;
+      class WeakHashMap$WeakEntrySet;
       namespace jar
       {
+        class Attributes;
+        class Attributes$Name;
         class JarEntry;
+        class JarException;
         class JarFile;
+        class JarFile$JarEnumeration;
         class JarInputStream;
-      };
+        class JarOutputStream;
+        class Manifest;
+      }
+
+      namespace logging
+      {
+        class ConsoleHandler;
+        class ErrorManager;
+        class FileHandler;
+        class Filter;
+        class Formatter;
+        class Handler;
+        class Level;
+        class LogManager;
+        class LogRecord;
+        class Logger;
+        class LoggingPermission;
+        class MemoryHandler;
+        class SimpleFormatter;
+        class SocketHandler;
+        class StreamHandler;
+        class XMLFormatter;
+      }
+
+      namespace prefs
+      {
+        class AbstractPreferences;
+        class BackingStoreException;
+        class InvalidPreferencesFormatException;
+        class NodeChangeEvent;
+        class NodeChangeListener;
+        class PreferenceChangeEvent;
+        class PreferenceChangeListener;
+        class Preferences;
+        class PreferencesFactory;
+      }
+
+      namespace regex
+      {
+        class Matcher;
+        class Pattern;
+        class PatternSyntaxException;
+      }
 
       namespace zip
       {
@@ -274,16 +429,17 @@ extern "Java"
         class InflaterInputStream;
         class ZipConstants;
         class ZipEntry;
-        class ZipEnumeration;
         class ZipException;
         class ZipFile;
+        class ZipFile$PartialInputStream;
+        class ZipFile$ZipEntryEnumeration;
         class ZipInputStream;
         class ZipOutputStream;
-      };
-    };
-  };
-};
-
+      }
+    }
+  }
+}
+  
 typedef struct java::lang::Object* jobject;
 typedef class java::lang::Class* jclass;
 typedef class java::lang::Throwable* jthrowable;
@@ -294,26 +450,53 @@ typedef struct _Jv_Field *jfieldID;
 typedef struct _Jv_Method *jmethodID;
 
 extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
+extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass, jint) __attribute__((__malloc__));
+extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass, jint) __attribute__((__malloc__));
+#ifdef JV_HASH_SYNCHRONIZATION
+  extern "C" jobject _Jv_AllocPtrFreeObject (jclass, jint)
+                           __attribute__((__malloc__));
+#else
+  // Collector still needs to scan sync_info
+  static inline jobject _Jv_AllocPtrFreeObject (jclass klass, jint sz)
+  {
+    return _Jv_AllocObject(klass, sz);
+  }
+#endif
 extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
 extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
 extern "C" jstring _Jv_NewString (const jchar*, jsize)
   __attribute__((__malloc__));
+extern jint _Jv_FormatInt (jchar* bufend, jint num);
 extern "C" jchar* _Jv_GetStringChars (jstring str);
-extern "C" jint _Jv_MonitorEnter (jobject);
-extern "C" jint _Jv_MonitorExit (jobject);
+extern "C" void _Jv_MonitorEnter (jobject);
+extern "C" void _Jv_MonitorExit (jobject);
 extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
   __attribute__((__malloc__));
 extern "C" jsize _Jv_GetStringUTFLength (jstring);
 extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
 
-extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
-extern "C" void _Jv_Sjlj_Throw (void *) __attribute__ ((__noreturn__));
+extern jint _Jv_CreateJavaVM (void* /*vm_args*/);
+
+void
+_Jv_ThreadRun (java::lang::Thread* thread);
+jint
+_Jv_AttachCurrentThread(java::lang::Thread* thread);
+extern "C" java::lang::Thread*
+_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
+extern "C" java::lang::Thread*
+_Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group);
+extern "C" jint _Jv_DetachCurrentThread (void);
+
+extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
 extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
 extern "C" void* _Jv_Realloc (void *, jsize);
 extern "C" void _Jv_Free (void*);
+extern void (*_Jv_RegisterClassHook) (jclass cl);
+extern "C" void _Jv_RegisterClassHookDefault (jclass);
 
 typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
 typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
+typedef unsigned int _Jv_ulong __attribute__((__mode__(__DI__)));
 
 struct _Jv_Utf8Const
 {
@@ -322,4 +505,5 @@ struct _Jv_Utf8Const
   char data[1];                /* In Utf8 format, with final '\0'. */
 };
 
+
 #endif /* __JAVAPRIMS_H__ */