Daily bump.
[official-gcc.git] / libjava / gcj / javaprims.h
blob60c045aa1163a0b0c3f8fc679a23fa73dce3df7b
1 // javaprims.h - Main external header file for libgcj. -*- c++ -*-
4 /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
5 Free Software Foundation
7 This file is part of libgcj.
9 This software is copyrighted work licensed under the terms of the
10 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
11 details. */
13 #ifndef __JAVAPRIMS_H__
14 #define __JAVAPRIMS_H__
16 // Force C++ compiler to use Java-style exceptions.
17 #pragma GCC java_exceptions
19 #include <gcj/libgcj-config.h>
21 // FIXME: this is a hack until we get a proper gcjh.
22 // It is needed to work around system header files that define TRUE
23 // and FALSE.
24 #undef TRUE
25 #define TRUE TRUE
26 #undef FALSE
27 #define FALSE FALSE
29 // To force selection of correct types that will mangle consistently
30 // across platforms.
31 extern "Java"
33 typedef __java_byte jbyte;
34 typedef __java_short jshort;
35 typedef __java_int jint;
36 typedef __java_long jlong;
37 typedef __java_float jfloat;
38 typedef __java_double jdouble;
39 typedef __java_char jchar;
40 typedef __java_boolean jboolean;
41 typedef jint jsize;
43 // The following class declarations are automatically generated by
44 // the `classes.pl' script.
45 namespace java
47 namespace io
49 class BufferedInputStream;
50 class BufferedOutputStream;
51 class BufferedReader;
52 class BufferedWriter;
53 class ByteArrayInputStream;
54 class ByteArrayOutputStream;
55 class CharArrayReader;
56 class CharArrayWriter;
57 class CharConversionException;
58 class Closeable;
59 class DataInput;
60 class DataInputStream;
61 class DataOutput;
62 class DataOutputStream;
63 class DeleteFileHelper;
64 class DeleteFileHelper$1;
65 class EOFException;
66 class Externalizable;
67 class File;
68 class FileDescriptor;
69 class FileFilter;
70 class FileInputStream;
71 class FileNotFoundException;
72 class FileOutputStream;
73 class FilePermission;
74 class FileReader;
75 class FileWriter;
76 class FilenameFilter;
77 class FilterInputStream;
78 class FilterOutputStream;
79 class FilterReader;
80 class FilterWriter;
81 class Flushable;
82 class IOException;
83 class InputStream;
84 class InputStreamReader;
85 class InterruptedIOException;
86 class InvalidClassException;
87 class InvalidObjectException;
88 class LineNumberInputStream;
89 class LineNumberReader;
90 class NotActiveException;
91 class NotSerializableException;
92 class ObjectInput;
93 class ObjectInputStream;
94 class ObjectInputStream$1;
95 class ObjectInputStream$2;
96 class ObjectInputStream$GetField;
97 class ObjectInputStream$ValidatorAndPriority;
98 class ObjectInputValidation;
99 class ObjectOutput;
100 class ObjectOutputStream;
101 class ObjectOutputStream$1;
102 class ObjectOutputStream$PutField;
103 class ObjectStreamClass;
104 class ObjectStreamClass$1;
105 class ObjectStreamClass$2;
106 class ObjectStreamClass$InterfaceComparator;
107 class ObjectStreamClass$MemberComparator;
108 class ObjectStreamConstants;
109 class ObjectStreamException;
110 class ObjectStreamField;
111 class ObjectStreamField$1;
112 class OptionalDataException;
113 class OutputStream;
114 class OutputStreamWriter;
115 class PipedInputStream;
116 class PipedOutputStream;
117 class PipedReader;
118 class PipedWriter;
119 class PrintStream;
120 class PrintWriter;
121 class PushbackInputStream;
122 class PushbackReader;
123 class RandomAccessFile;
124 class Reader;
125 class SequenceInputStream;
126 class Serializable;
127 class SerializablePermission;
128 class StreamCorruptedException;
129 class StreamTokenizer;
130 class StringBufferInputStream;
131 class StringReader;
132 class StringWriter;
133 class SyncFailedException;
134 class UTFDataFormatException;
135 class UnsupportedEncodingException;
136 class VMObjectInputStream;
137 class VMObjectStreamClass;
138 class WriteAbortedException;
139 class Writer;
142 namespace lang
144 class AbstractMethodError;
145 class Appendable;
146 class ArithmeticException;
147 class ArrayIndexOutOfBoundsException;
148 class ArrayStoreException;
149 class AssertionError;
150 class Boolean;
151 class Byte;
152 class CharSequence;
153 class Character;
154 class Character$Subset;
155 class Character$UnicodeBlock;
156 class Character$UnicodeBlock$NameType;
157 class Class;
158 class Class$1;
159 class ClassCastException;
160 class ClassCircularityError;
161 class ClassFormatError;
162 class ClassLoader;
163 class ClassLoader$AnnotationsKey;
164 class ClassNotFoundException;
165 class CloneNotSupportedException;
166 class Cloneable;
167 class Comparable;
168 class Compiler;
169 class Deprecated;
170 class Double;
171 class EcosProcess;
172 class Enum;
173 class EnumConstantNotPresentException;
174 class Error;
175 class Exception;
176 class ExceptionInInitializerError;
177 class Float;
178 class IllegalAccessError;
179 class IllegalAccessException;
180 class IllegalArgumentException;
181 class IllegalMonitorStateException;
182 class IllegalStateException;
183 class IllegalThreadStateException;
184 class IncompatibleClassChangeError;
185 class IndexOutOfBoundsException;
186 class InheritableThreadLocal;
187 class InstantiationError;
188 class InstantiationException;
189 class Integer;
190 class InternalError;
191 class InterruptedException;
192 class Iterable;
193 class LinkageError;
194 class Long;
195 class Math;
196 class NegativeArraySizeException;
197 class NoClassDefFoundError;
198 class NoSuchFieldError;
199 class NoSuchFieldException;
200 class NoSuchMethodError;
201 class NoSuchMethodException;
202 class NullPointerException;
203 class Number;
204 class NumberFormatException;
205 class Object;
206 class OutOfMemoryError;
207 class Override;
208 class Package;
209 class PosixProcess;
210 class PosixProcess$EOFInputStream;
211 class PosixProcess$ProcessManager;
212 class Process;
213 class ProcessBuilder;
214 class Readable;
215 class Runnable;
216 class Runtime;
217 class RuntimeException;
218 class RuntimePermission;
219 class SecurityException;
220 class SecurityManager;
221 class SecurityManager$1;
222 class Short;
223 class StackOverflowError;
224 class StackTraceElement;
225 class StrictMath;
226 class String;
227 class String$CaseInsensitiveComparator;
228 class StringBuffer;
229 class StringBuilder;
230 class StringIndexOutOfBoundsException;
231 class SuppressWarnings;
232 class System;
233 class System$EnvironmentCollection;
234 class System$EnvironmentMap;
235 class System$EnvironmentSet;
236 class Thread;
237 class Thread$State;
238 class Thread$UncaughtExceptionHandler;
239 class ThreadDeath;
240 class ThreadGroup;
241 class ThreadLocal;
242 class Throwable;
243 class Throwable$StaticData;
244 class TypeNotPresentException;
245 class UnknownError;
246 class UnsatisfiedLinkError;
247 class UnsupportedClassVersionError;
248 class UnsupportedOperationException;
249 class VMClassLoader;
250 class VMCompiler;
251 class VMDouble;
252 class VMFloat;
253 class VMProcess;
254 class VMThrowable;
255 class VerifyError;
256 class VirtualMachineError;
257 class Void;
258 class Win32Process;
259 class Win32Process$EOFInputStream;
260 namespace annotation
262 class Annotation;
263 class AnnotationFormatError;
264 class AnnotationTypeMismatchException;
265 class Documented;
266 class ElementType;
267 class IncompleteAnnotationException;
268 class Inherited;
269 class Retention;
270 class RetentionPolicy;
271 class Target;
274 namespace instrument
276 class ClassDefinition;
277 class ClassFileTransformer;
278 class IllegalClassFormatException;
279 class Instrumentation;
280 class UnmodifiableClassException;
283 namespace management
285 class ClassLoadingMXBean;
286 class CompilationMXBean;
287 class GarbageCollectorMXBean;
288 class LockInfo;
289 class ManagementFactory;
290 class ManagementFactory$ManagementInvocationHandler;
291 class ManagementPermission;
292 class MemoryMXBean;
293 class MemoryManagerMXBean;
294 class MemoryNotificationInfo;
295 class MemoryPoolMXBean;
296 class MemoryType;
297 class MemoryUsage;
298 class MonitorInfo;
299 class OperatingSystemMXBean;
300 class RuntimeMXBean;
301 class ThreadInfo;
302 class ThreadMXBean;
303 class VMManagementFactory;
306 namespace ref
308 class PhantomReference;
309 class Reference;
310 class ReferenceQueue;
311 class SoftReference;
312 class WeakReference;
315 namespace reflect
317 class AccessibleObject;
318 class AnnotatedElement;
319 class Array;
320 class Constructor;
321 class Field;
322 class GenericArrayType;
323 class GenericDeclaration;
324 class GenericSignatureFormatError;
325 class InvocationHandler;
326 class InvocationTargetException;
327 class MalformedParameterizedTypeException;
328 class Member;
329 class Method;
330 class Modifier;
331 class ParameterizedType;
332 class Proxy;
333 class Proxy$ClassFactory;
334 class Proxy$ProxyData;
335 class Proxy$ProxySignature;
336 class Proxy$ProxyType;
337 class ReflectPermission;
338 class Type;
339 class TypeVariable;
340 class UndeclaredThrowableException;
341 class VMProxy;
342 class WildcardType;
346 namespace util
348 class AbstractCollection;
349 class AbstractList;
350 class AbstractList$1;
351 class AbstractList$2;
352 class AbstractList$3;
353 class AbstractList$RandomAccessSubList;
354 class AbstractList$SubList;
355 class AbstractMap;
356 class AbstractMap$1;
357 class AbstractMap$2;
358 class AbstractMap$3;
359 class AbstractMap$4;
360 class AbstractMap$SimpleEntry;
361 class AbstractMap$SimpleImmutableEntry;
362 class AbstractQueue;
363 class AbstractSequentialList;
364 class AbstractSet;
365 class ArrayDeque;
366 class ArrayDeque$DeqIterator;
367 class ArrayDeque$DescendingIterator;
368 class ArrayList;
369 class Arrays;
370 class Arrays$ArrayList;
371 class BitSet;
372 class Calendar;
373 class Collection;
374 class Collections;
375 class Collections$1;
376 class Collections$1$SynchronizedMapEntry;
377 class Collections$2;
378 class Collections$3;
379 class Collections$4;
380 class Collections$5;
381 class Collections$6;
382 class Collections$7;
383 class Collections$8;
384 class Collections$9;
385 class Collections$CheckedCollection;
386 class Collections$CheckedIterator;
387 class Collections$CheckedList;
388 class Collections$CheckedListIterator;
389 class Collections$CheckedMap;
390 class Collections$CheckedMap$CheckedEntrySet;
391 class Collections$CheckedRandomAccessList;
392 class Collections$CheckedSet;
393 class Collections$CheckedSortedMap;
394 class Collections$CheckedSortedSet;
395 class Collections$CopiesList;
396 class Collections$EmptyList;
397 class Collections$EmptyMap;
398 class Collections$EmptySet;
399 class Collections$LIFOQueue;
400 class Collections$MapSet;
401 class Collections$ReverseComparator;
402 class Collections$SingletonList;
403 class Collections$SingletonMap;
404 class Collections$SingletonSet;
405 class Collections$SynchronizedCollection;
406 class Collections$SynchronizedIterator;
407 class Collections$SynchronizedList;
408 class Collections$SynchronizedListIterator;
409 class Collections$SynchronizedMap;
410 class Collections$SynchronizedRandomAccessList;
411 class Collections$SynchronizedSet;
412 class Collections$SynchronizedSortedMap;
413 class Collections$SynchronizedSortedSet;
414 class Collections$UnmodifiableCollection;
415 class Collections$UnmodifiableIterator;
416 class Collections$UnmodifiableList;
417 class Collections$UnmodifiableListIterator;
418 class Collections$UnmodifiableMap;
419 class Collections$UnmodifiableMap$UnmodifiableEntrySet;
420 class Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry;
421 class Collections$UnmodifiableRandomAccessList;
422 class Collections$UnmodifiableSet;
423 class Collections$UnmodifiableSortedMap;
424 class Collections$UnmodifiableSortedSet;
425 class Comparator;
426 class ConcurrentModificationException;
427 class Currency;
428 class Date;
429 class Deque;
430 class Dictionary;
431 class DuplicateFormatFlagsException;
432 class EmptyStackException;
433 class EnumMap;
434 class EnumMap$1;
435 class EnumMap$2;
436 class EnumMap$3;
437 class EnumMap$4;
438 class EnumMap$5;
439 class EnumMap$6;
440 class EnumMap$7;
441 class EnumSet;
442 class EnumSet$1;
443 class Enumeration;
444 class EventListener;
445 class EventListenerProxy;
446 class EventObject;
447 class FormatFlagsConversionMismatchException;
448 class Formattable;
449 class FormattableFlags;
450 class Formatter;
451 class Formatter$BigDecimalLayoutForm;
452 class FormatterClosedException;
453 class GregorianCalendar;
454 class HashMap;
455 class HashMap$1;
456 class HashMap$2;
457 class HashMap$3;
458 class HashMap$HashEntry;
459 class HashMap$HashIterator;
460 class HashSet;
461 class Hashtable;
462 class Hashtable$1;
463 class Hashtable$2;
464 class Hashtable$3;
465 class Hashtable$EntryEnumerator;
466 class Hashtable$EntryIterator;
467 class Hashtable$HashEntry;
468 class Hashtable$KeyEnumerator;
469 class Hashtable$KeyIterator;
470 class Hashtable$ValueEnumerator;
471 class Hashtable$ValueIterator;
472 class IdentityHashMap;
473 class IdentityHashMap$1;
474 class IdentityHashMap$2;
475 class IdentityHashMap$3;
476 class IdentityHashMap$IdentityEntry;
477 class IdentityHashMap$IdentityIterator;
478 class IllegalFormatCodePointException;
479 class IllegalFormatConversionException;
480 class IllegalFormatException;
481 class IllegalFormatFlagsException;
482 class IllegalFormatPrecisionException;
483 class IllegalFormatWidthException;
484 class InputMismatchException;
485 class InvalidPropertiesFormatException;
486 class Iterator;
487 class LinkedHashMap;
488 class LinkedHashMap$1;
489 class LinkedHashMap$LinkedHashEntry;
490 class LinkedHashSet;
491 class LinkedList;
492 class LinkedList$1;
493 class LinkedList$Entry;
494 class LinkedList$LinkedListItr;
495 class List;
496 class ListIterator;
497 class ListResourceBundle;
498 class Locale;
499 class Map;
500 class Map$Entry;
501 class MissingFormatArgumentException;
502 class MissingFormatWidthException;
503 class MissingResourceException;
504 class NavigableMap;
505 class NavigableSet;
506 class NoSuchElementException;
507 class Observable;
508 class Observer;
509 class PriorityQueue;
510 class PriorityQueue$1;
511 class Properties;
512 class PropertyPermission;
513 class PropertyPermissionCollection;
514 class PropertyResourceBundle;
515 class Queue;
516 class Random;
517 class RandomAccess;
518 class ResourceBundle;
519 class ResourceBundle$1;
520 class ResourceBundle$BundleKey;
521 class ServiceConfigurationError;
522 class ServiceLoader;
523 class ServiceLoader$1;
524 class Set;
525 class SimpleTimeZone;
526 class SortedMap;
527 class SortedSet;
528 class Stack;
529 class StringTokenizer;
530 class TimeZone;
531 class TimeZone$1;
532 class Timer;
533 class Timer$Scheduler;
534 class Timer$TaskQueue;
535 class TimerTask;
536 class TooManyListenersException;
537 class TreeMap;
538 class TreeMap$1;
539 class TreeMap$2;
540 class TreeMap$3;
541 class TreeMap$4;
542 class TreeMap$5;
543 class TreeMap$6;
544 class TreeMap$7;
545 class TreeMap$DescendingMap;
546 class TreeMap$DescendingSet;
547 class TreeMap$EntrySet;
548 class TreeMap$KeySet;
549 class TreeMap$NavigableEntrySet;
550 class TreeMap$NavigableKeySet;
551 class TreeMap$Node;
552 class TreeMap$SubMap;
553 class TreeMap$SubMap$EntrySet;
554 class TreeMap$SubMap$KeySet;
555 class TreeMap$SubMap$NavigableEntrySet;
556 class TreeMap$SubMap$NavigableKeySet;
557 class TreeMap$TreeIterator;
558 class TreeSet;
559 class UUID;
560 class UnknownFormatConversionException;
561 class UnknownFormatFlagsException;
562 class VMTimeZone;
563 class Vector;
564 class Vector$1;
565 class WeakHashMap;
566 class WeakHashMap$1;
567 class WeakHashMap$2;
568 class WeakHashMap$WeakBucket;
569 class WeakHashMap$WeakBucket$WeakEntry;
570 class WeakHashMap$WeakEntrySet;
571 namespace concurrent
573 class AbstractExecutorService;
574 class ArrayBlockingQueue;
575 class ArrayBlockingQueue$Itr;
576 class BlockingDeque;
577 class BlockingQueue;
578 class BrokenBarrierException;
579 class Callable;
580 class CancellationException;
581 class CompletionService;
582 class ConcurrentHashMap;
583 class ConcurrentHashMap$EntryIterator;
584 class ConcurrentHashMap$EntrySet;
585 class ConcurrentHashMap$HashEntry;
586 class ConcurrentHashMap$HashIterator;
587 class ConcurrentHashMap$KeyIterator;
588 class ConcurrentHashMap$KeySet;
589 class ConcurrentHashMap$Segment;
590 class ConcurrentHashMap$ValueIterator;
591 class ConcurrentHashMap$Values;
592 class ConcurrentHashMap$WriteThroughEntry;
593 class ConcurrentLinkedQueue;
594 class ConcurrentLinkedQueue$Itr;
595 class ConcurrentLinkedQueue$Node;
596 class ConcurrentMap;
597 class ConcurrentNavigableMap;
598 class ConcurrentSkipListMap;
599 class ConcurrentSkipListMap$ComparableUsingComparator;
600 class ConcurrentSkipListMap$EntryIterator;
601 class ConcurrentSkipListMap$EntrySet;
602 class ConcurrentSkipListMap$HeadIndex;
603 class ConcurrentSkipListMap$Index;
604 class ConcurrentSkipListMap$Iter;
605 class ConcurrentSkipListMap$KeyIterator;
606 class ConcurrentSkipListMap$KeySet;
607 class ConcurrentSkipListMap$Node;
608 class ConcurrentSkipListMap$SubMap;
609 class ConcurrentSkipListMap$SubMap$SubMapEntryIterator;
610 class ConcurrentSkipListMap$SubMap$SubMapIter;
611 class ConcurrentSkipListMap$SubMap$SubMapKeyIterator;
612 class ConcurrentSkipListMap$SubMap$SubMapValueIterator;
613 class ConcurrentSkipListMap$ValueIterator;
614 class ConcurrentSkipListMap$Values;
615 class ConcurrentSkipListSet;
616 class CopyOnWriteArrayList;
617 class CopyOnWriteArraySet;
618 class CountDownLatch;
619 class CountDownLatch$Sync;
620 class CyclicBarrier;
621 class CyclicBarrier$Generation;
622 class DelayQueue;
623 class DelayQueue$Itr;
624 class Delayed;
625 class Exchanger;
626 class Exchanger$Node;
627 class Exchanger$Slot;
628 class ExecutionException;
629 class Executor;
630 class ExecutorCompletionService;
631 class ExecutorCompletionService$QueueingFuture;
632 class ExecutorService;
633 class Executors;
634 class Executors$1;
635 class Executors$2;
636 class Executors$3;
637 class Executors$4;
638 class Executors$5;
639 class Executors$6;
640 class Executors$DefaultThreadFactory;
641 class Executors$DelegatedExecutorService;
642 class Executors$DelegatedScheduledExecutorService;
643 class Executors$FinalizableDelegatedExecutorService;
644 class Executors$PrivilegedCallable;
645 class Executors$PrivilegedCallableUsingCurrentClassLoader;
646 class Executors$PrivilegedThreadFactory;
647 class Executors$RunnableAdapter;
648 class Future;
649 class FutureTask;
650 class FutureTask$Sync;
651 class LinkedBlockingDeque;
652 class LinkedBlockingDeque$AbstractItr;
653 class LinkedBlockingDeque$DescendingItr;
654 class LinkedBlockingDeque$Itr;
655 class LinkedBlockingDeque$Node;
656 class LinkedBlockingQueue;
657 class LinkedBlockingQueue$Itr;
658 class LinkedBlockingQueue$Node;
659 class PriorityBlockingQueue;
660 class PriorityBlockingQueue$Itr;
661 class RejectedExecutionException;
662 class RejectedExecutionHandler;
663 class RunnableFuture;
664 class RunnableScheduledFuture;
665 class ScheduledExecutorService;
666 class ScheduledFuture;
667 class ScheduledThreadPoolExecutor;
668 class ScheduledThreadPoolExecutor$1;
669 class ScheduledThreadPoolExecutor$DelayedWorkQueue;
670 class ScheduledThreadPoolExecutor$ScheduledFutureTask;
671 class Semaphore;
672 class Semaphore$FairSync;
673 class Semaphore$NonfairSync;
674 class Semaphore$Sync;
675 class SynchronousQueue;
676 class SynchronousQueue$EmptyIterator;
677 class SynchronousQueue$FifoWaitQueue;
678 class SynchronousQueue$LifoWaitQueue;
679 class SynchronousQueue$TransferQueue;
680 class SynchronousQueue$TransferQueue$QNode;
681 class SynchronousQueue$TransferStack;
682 class SynchronousQueue$TransferStack$SNode;
683 class SynchronousQueue$Transferer;
684 class SynchronousQueue$WaitQueue;
685 class ThreadFactory;
686 class ThreadPoolExecutor;
687 class ThreadPoolExecutor$AbortPolicy;
688 class ThreadPoolExecutor$CallerRunsPolicy;
689 class ThreadPoolExecutor$DiscardOldestPolicy;
690 class ThreadPoolExecutor$DiscardPolicy;
691 class ThreadPoolExecutor$Worker;
692 class TimeUnit;
693 class TimeUnit$1;
694 class TimeUnit$2;
695 class TimeUnit$3;
696 class TimeUnit$4;
697 class TimeUnit$5;
698 class TimeUnit$6;
699 class TimeUnit$7;
700 class TimeoutException;
701 namespace atomic
703 class AtomicBoolean;
704 class AtomicInteger;
705 class AtomicIntegerArray;
706 class AtomicIntegerFieldUpdater;
707 class AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;
708 class AtomicLong;
709 class AtomicLongArray;
710 class AtomicLongFieldUpdater;
711 class AtomicLongFieldUpdater$CASUpdater;
712 class AtomicLongFieldUpdater$LockedUpdater;
713 class AtomicMarkableReference;
714 class AtomicMarkableReference$ReferenceBooleanPair;
715 class AtomicReference;
716 class AtomicReferenceArray;
717 class AtomicReferenceFieldUpdater;
718 class AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;
719 class AtomicStampedReference;
720 class AtomicStampedReference$ReferenceIntegerPair;
723 namespace locks
725 class AbstractOwnableSynchronizer;
726 class AbstractQueuedLongSynchronizer;
727 class AbstractQueuedLongSynchronizer$ConditionObject;
728 class AbstractQueuedLongSynchronizer$Node;
729 class AbstractQueuedSynchronizer;
730 class AbstractQueuedSynchronizer$ConditionObject;
731 class AbstractQueuedSynchronizer$Node;
732 class Condition;
733 class Lock;
734 class LockSupport;
735 class ReadWriteLock;
736 class ReentrantLock;
737 class ReentrantLock$FairSync;
738 class ReentrantLock$NonfairSync;
739 class ReentrantLock$Sync;
740 class ReentrantReadWriteLock;
741 class ReentrantReadWriteLock$FairSync;
742 class ReentrantReadWriteLock$NonfairSync;
743 class ReentrantReadWriteLock$ReadLock;
744 class ReentrantReadWriteLock$Sync;
745 class ReentrantReadWriteLock$Sync$HoldCounter;
746 class ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
747 class ReentrantReadWriteLock$WriteLock;
751 namespace jar
753 class Attributes;
754 class Attributes$Name;
755 class JarEntry;
756 class JarException;
757 class JarFile;
758 class JarFile$EntryInputStream;
759 class JarFile$JarEnumeration;
760 class JarInputStream;
761 class JarOutputStream;
762 class Manifest;
765 namespace logging
767 class ConsoleHandler;
768 class ErrorManager;
769 class FileHandler;
770 class FileHandler$ostr;
771 class Filter;
772 class Formatter;
773 class Handler;
774 class Level;
775 class LogManager;
776 class LogManager$1;
777 class LogRecord;
778 class Logger;
779 class Logger$1;
780 class LoggingMXBean;
781 class LoggingPermission;
782 class MemoryHandler;
783 class SimpleFormatter;
784 class SocketHandler;
785 class StreamHandler;
786 class XMLFormatter;
789 namespace prefs
791 class AbstractPreferences;
792 class AbstractPreferences$1;
793 class AbstractPreferences$2;
794 class BackingStoreException;
795 class InvalidPreferencesFormatException;
796 class NodeChangeEvent;
797 class NodeChangeListener;
798 class PreferenceChangeEvent;
799 class PreferenceChangeListener;
800 class Preferences;
801 class Preferences$1;
802 class PreferencesFactory;
805 namespace regex
807 class MatchResult;
808 class Matcher;
809 class Pattern;
810 class PatternSyntaxException;
813 namespace spi
815 class CurrencyNameProvider;
816 class LocaleNameProvider;
817 class LocaleServiceProvider;
818 class TimeZoneNameProvider;
821 namespace zip
823 class Adler32;
824 class CRC32;
825 class CheckedInputStream;
826 class CheckedOutputStream;
827 class Checksum;
828 class DataFormatException;
829 class Deflater;
830 class DeflaterOutputStream;
831 class GZIPInputStream;
832 class GZIPOutputStream;
833 class Inflater;
834 class InflaterInputStream;
835 class ZipConstants;
836 class ZipEntry;
837 class ZipException;
838 class ZipFile;
839 class ZipFile$1;
840 class ZipFile$PartialInputStream;
841 class ZipFile$ZipEntryEnumeration;
842 class ZipInputStream;
843 class ZipOutputStream;
849 typedef struct java::lang::Object* jobject;
850 typedef class java::lang::Class* jclass;
851 typedef class java::lang::Throwable* jthrowable;
852 typedef class java::lang::String* jstring;
853 struct _Jv_JNIEnv;
855 typedef struct _Jv_Field *jfieldID;
856 typedef struct _Jv_Method *jmethodID;
858 extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
859 extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__));
860 extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__));
861 #ifdef JV_HASH_SYNCHRONIZATION
862 extern "C" jobject _Jv_AllocPtrFreeObject (jclass)
863 __attribute__((__malloc__));
864 #else
865 // Collector still needs to scan sync_info
866 static inline jobject _Jv_AllocPtrFreeObject (jclass klass)
868 return _Jv_AllocObject(klass);
870 #endif
871 extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
872 extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
873 extern "C" jstring _Jv_NewString (const jchar*, jsize)
874 __attribute__((__malloc__));
875 extern jint _Jv_FormatInt (jchar* bufend, jint num);
876 extern "C" jchar* _Jv_GetStringChars (jstring str);
877 extern "C" void _Jv_MonitorEnter (jobject);
878 extern "C" void _Jv_MonitorExit (jobject);
879 extern "C" jstring _Jv_NewStringUTF (const char *bytes)
880 __attribute__((__malloc__));
881 extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
882 __attribute__((__malloc__));
883 extern "C" jsize _Jv_GetStringUTFLength (jstring);
884 extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
885 extern "C" jint _Jv_hashUtf8String (const char*, int);
886 extern bool _Jv_is_proxy (void *pc);
888 struct _Jv_VMOption
890 // a VM initialization option
891 char* optionString;
892 // extra information associated with this option
893 void* extraInfo;
896 struct _Jv_VMInitArgs
898 // for compatibility with JavaVMInitArgs
899 jint version;
901 // number of VM initialization options
902 jint nOptions;
904 // an array of VM initialization options
905 struct _Jv_VMOption* options;
907 // true if the option parser should ignore unrecognized options
908 jboolean ignoreUnrecognized;
911 extern jint _Jv_CreateJavaVM (struct _Jv_VMInitArgs*);
913 void
914 _Jv_ThreadRun (java::lang::Thread* thread);
915 jint
916 _Jv_AttachCurrentThread(java::lang::Thread* thread);
917 extern "C" java::lang::Thread*
918 _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
919 extern "C" java::lang::Thread*
920 _Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group);
921 extern "C" jint _Jv_DetachCurrentThread (void);
923 extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
924 extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
925 extern "C" void* _Jv_Realloc (void *, jsize);
926 extern "C" void _Jv_Free (void*);
927 extern void (*_Jv_RegisterClassHook) (jclass cl);
928 extern "C" void _Jv_RegisterClassHookDefault (jclass);
930 typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
931 typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
932 typedef unsigned int _Jv_ulong __attribute__((__mode__(__DI__)));
934 // The type to use when treating a pointer as an integer. Similar to
935 // uintptr_t in C99.
936 typedef unsigned int _Jv_uintptr_t __attribute__((__mode__(__pointer__)));
938 class _Jv_Utf8Const
940 _Jv_ushort hash;
941 _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
942 char data[1]; /* In Utf8 format, with final '\0'. */
943 public:
944 /** Return same value of java.lang.String's hashCode. */
945 jint hash32() { return _Jv_hashUtf8String(data, length); }
946 /** Return a hash code that has at least 16 bits of information. */
947 _Jv_ushort hash16 () { return hash; }
948 /** Return a hash code that has at least 8 bits of information. */
949 _Jv_ushort hash8 () { return hash; }
950 /** Length in bytes of the UTF8-encoding. */
951 _Jv_ushort len () const { return length; }
952 /** Pointer to the first byte in the NUL-terminated UTF8-encoding. */
953 char* chars() { return data; }
954 /** Pointer to the NUL byte that terminated the UTF8-encoding. */
955 char* limit() { return data+length; }
956 /** Return the first byte in the UTF8-encoding. */
957 char first() const { return data[0]; }
958 /** Create a (non-interned) java.lang.String from this UTF8Const. */
959 jstring toString() { return _Jv_NewStringUTF(data); }
960 /** Given an UTF8 string, how many bytes needed for a UTF8Const,
961 including struct header, and final NUL. I.e. what to pas to malloc. */
962 static int space_needed (const char *, int len)
963 { return sizeof (_Jv_Utf8Const) + len + 1; }
964 /** Given an allocated _Jv_Utf8Const, copy / fill it in. */
965 void init (const char *s, int len);
966 friend jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const*, const _Jv_Utf8Const *);
967 friend jboolean _Jv_equal (_Jv_Utf8Const*, jstring, jint);
968 friend jboolean _Jv_equaln (_Jv_Utf8Const*, jstring, jint);
969 friend jboolean _Jv_equalUtf8Classnames (const _Jv_Utf8Const*,
970 const _Jv_Utf8Const*);
971 friend jboolean _Jv_isPrimitiveOrDerived (const _Jv_Utf8Const*);
972 friend _Jv_Utf8Const *_Jv_makeUtf8Const (const char*, int);
973 friend _Jv_Utf8Const *_Jv_makeUtf8Const (jstring);
974 friend jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const*);
978 #endif /* __JAVAPRIMS_H__ */