libjava/ChangeLog:
[official-gcc.git] / libjava / gcj / javaprims.h
blob313ecc02efc863d080f3d2fd2f03010c8a4e633a
1 // javaprims.h - Main external header file for libgcj. -*- c++ -*-
4 /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
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 AbstractStringBuffer;
146 class Appendable;
147 class ArithmeticException;
148 class ArrayIndexOutOfBoundsException;
149 class ArrayStoreException;
150 class AssertionError;
151 class Boolean;
152 class Byte;
153 class CharSequence;
154 class Character;
155 class Character$Subset;
156 class Character$UnicodeBlock;
157 class Character$UnicodeBlock$NameType;
158 class Class;
159 class Class$1;
160 class ClassCastException;
161 class ClassCircularityError;
162 class ClassFormatError;
163 class ClassLoader;
164 class ClassLoader$AnnotationsKey;
165 class ClassNotFoundException;
166 class CloneNotSupportedException;
167 class Cloneable;
168 class Comparable;
169 class Compiler;
170 class Deprecated;
171 class Double;
172 class EcosProcess;
173 class Enum;
174 class EnumConstantNotPresentException;
175 class Error;
176 class Exception;
177 class ExceptionInInitializerError;
178 class Float;
179 class IllegalAccessError;
180 class IllegalAccessException;
181 class IllegalArgumentException;
182 class IllegalMonitorStateException;
183 class IllegalStateException;
184 class IllegalThreadStateException;
185 class IncompatibleClassChangeError;
186 class IndexOutOfBoundsException;
187 class InheritableThreadLocal;
188 class InstantiationError;
189 class InstantiationException;
190 class Integer;
191 class InternalError;
192 class InterruptedException;
193 class Iterable;
194 class LinkageError;
195 class Long;
196 class Math;
197 class NegativeArraySizeException;
198 class NoClassDefFoundError;
199 class NoSuchFieldError;
200 class NoSuchFieldException;
201 class NoSuchMethodError;
202 class NoSuchMethodException;
203 class NullPointerException;
204 class Number;
205 class NumberFormatException;
206 class Object;
207 class OutOfMemoryError;
208 class Override;
209 class Package;
210 class PosixProcess;
211 class PosixProcess$EOFInputStream;
212 class PosixProcess$ProcessManager;
213 class Process;
214 class ProcessBuilder;
215 class Readable;
216 class Runnable;
217 class Runtime;
218 class RuntimeException;
219 class RuntimePermission;
220 class SecurityException;
221 class SecurityManager;
222 class SecurityManager$1;
223 class Short;
224 class StackOverflowError;
225 class StackTraceElement;
226 class StrictMath;
227 class String;
228 class String$CaseInsensitiveComparator;
229 class StringBuffer;
230 class StringBuilder;
231 class StringIndexOutOfBoundsException;
232 class SuppressWarnings;
233 class System;
234 class System$EnvironmentCollection;
235 class System$EnvironmentMap;
236 class System$EnvironmentSet;
237 class Thread;
238 class Thread$State;
239 class Thread$UncaughtExceptionHandler;
240 class ThreadDeath;
241 class ThreadGroup;
242 class ThreadLocal;
243 class ThreadLocalMap;
244 class ThreadLocalMap$Entry;
245 class Throwable;
246 class Throwable$StaticData;
247 class TypeNotPresentException;
248 class UnknownError;
249 class UnsatisfiedLinkError;
250 class UnsupportedClassVersionError;
251 class UnsupportedOperationException;
252 class VMClassLoader;
253 class VMCompiler;
254 class VMDouble;
255 class VMFloat;
256 class VMProcess;
257 class VMThrowable;
258 class VerifyError;
259 class VirtualMachineError;
260 class Void;
261 class Win32Process;
262 class Win32Process$EOFInputStream;
263 namespace annotation
265 class Annotation;
266 class AnnotationFormatError;
267 class AnnotationTypeMismatchException;
268 class Documented;
269 class ElementType;
270 class IncompleteAnnotationException;
271 class Inherited;
272 class Retention;
273 class RetentionPolicy;
274 class Target;
277 namespace instrument
279 class ClassDefinition;
280 class ClassFileTransformer;
281 class IllegalClassFormatException;
282 class Instrumentation;
283 class UnmodifiableClassException;
286 namespace management
288 class ClassLoadingMXBean;
289 class CompilationMXBean;
290 class GarbageCollectorMXBean;
291 class LockInfo;
292 class ManagementFactory;
293 class ManagementFactory$ManagementInvocationHandler;
294 class ManagementPermission;
295 class MemoryMXBean;
296 class MemoryManagerMXBean;
297 class MemoryNotificationInfo;
298 class MemoryPoolMXBean;
299 class MemoryType;
300 class MemoryUsage;
301 class MonitorInfo;
302 class OperatingSystemMXBean;
303 class RuntimeMXBean;
304 class ThreadInfo;
305 class ThreadMXBean;
306 class VMManagementFactory;
309 namespace ref
311 class PhantomReference;
312 class Reference;
313 class ReferenceQueue;
314 class SoftReference;
315 class WeakReference;
318 namespace reflect
320 class AccessibleObject;
321 class AnnotatedElement;
322 class Array;
323 class Constructor;
324 class Field;
325 class GenericArrayType;
326 class GenericDeclaration;
327 class GenericSignatureFormatError;
328 class InvocationHandler;
329 class InvocationTargetException;
330 class MalformedParameterizedTypeException;
331 class Member;
332 class Method;
333 class Modifier;
334 class ParameterizedType;
335 class Proxy;
336 class Proxy$ClassFactory;
337 class Proxy$ProxyData;
338 class Proxy$ProxySignature;
339 class Proxy$ProxyType;
340 class ReflectPermission;
341 class Type;
342 class TypeVariable;
343 class UndeclaredThrowableException;
344 class VMProxy;
345 class WildcardType;
349 namespace util
351 class AbstractCollection;
352 class AbstractList;
353 class AbstractList$1;
354 class AbstractList$2;
355 class AbstractList$3;
356 class AbstractList$RandomAccessSubList;
357 class AbstractList$SubList;
358 class AbstractMap;
359 class AbstractMap$1;
360 class AbstractMap$2;
361 class AbstractMap$3;
362 class AbstractMap$4;
363 class AbstractMap$SimpleEntry;
364 class AbstractMap$SimpleImmutableEntry;
365 class AbstractQueue;
366 class AbstractSequentialList;
367 class AbstractSet;
368 class ArrayDeque;
369 class ArrayDeque$DeqIterator;
370 class ArrayDeque$DescendingIterator;
371 class ArrayList;
372 class Arrays;
373 class Arrays$ArrayList;
374 class BitSet;
375 class Calendar;
376 class Collection;
377 class Collections;
378 class Collections$1;
379 class Collections$1$SynchronizedMapEntry;
380 class Collections$2;
381 class Collections$3;
382 class Collections$4;
383 class Collections$5;
384 class Collections$6;
385 class Collections$7;
386 class Collections$8;
387 class Collections$9;
388 class Collections$CheckedCollection;
389 class Collections$CheckedIterator;
390 class Collections$CheckedList;
391 class Collections$CheckedListIterator;
392 class Collections$CheckedMap;
393 class Collections$CheckedMap$CheckedEntrySet;
394 class Collections$CheckedRandomAccessList;
395 class Collections$CheckedSet;
396 class Collections$CheckedSortedMap;
397 class Collections$CheckedSortedSet;
398 class Collections$CopiesList;
399 class Collections$EmptyList;
400 class Collections$EmptyMap;
401 class Collections$EmptySet;
402 class Collections$LIFOQueue;
403 class Collections$MapSet;
404 class Collections$ReverseComparator;
405 class Collections$SingletonList;
406 class Collections$SingletonMap;
407 class Collections$SingletonSet;
408 class Collections$SynchronizedCollection;
409 class Collections$SynchronizedIterator;
410 class Collections$SynchronizedList;
411 class Collections$SynchronizedListIterator;
412 class Collections$SynchronizedMap;
413 class Collections$SynchronizedRandomAccessList;
414 class Collections$SynchronizedSet;
415 class Collections$SynchronizedSortedMap;
416 class Collections$SynchronizedSortedSet;
417 class Collections$UnmodifiableCollection;
418 class Collections$UnmodifiableIterator;
419 class Collections$UnmodifiableList;
420 class Collections$UnmodifiableListIterator;
421 class Collections$UnmodifiableMap;
422 class Collections$UnmodifiableMap$UnmodifiableEntrySet;
423 class Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry;
424 class Collections$UnmodifiableRandomAccessList;
425 class Collections$UnmodifiableSet;
426 class Collections$UnmodifiableSortedMap;
427 class Collections$UnmodifiableSortedSet;
428 class Comparator;
429 class ConcurrentModificationException;
430 class Currency;
431 class Date;
432 class Deque;
433 class Dictionary;
434 class DuplicateFormatFlagsException;
435 class EmptyStackException;
436 class EnumMap;
437 class EnumMap$1;
438 class EnumMap$2;
439 class EnumMap$3;
440 class EnumMap$4;
441 class EnumMap$5;
442 class EnumMap$6;
443 class EnumMap$7;
444 class EnumSet;
445 class EnumSet$1;
446 class EnumSet$2;
447 class Enumeration;
448 class EventListener;
449 class EventListenerProxy;
450 class EventObject;
451 class FormatFlagsConversionMismatchException;
452 class Formattable;
453 class FormattableFlags;
454 class Formatter;
455 class Formatter$BigDecimalLayoutForm;
456 class FormatterClosedException;
457 class GregorianCalendar;
458 class HashMap;
459 class HashMap$1;
460 class HashMap$2;
461 class HashMap$3;
462 class HashMap$HashEntry;
463 class HashMap$HashIterator;
464 class HashSet;
465 class Hashtable;
466 class Hashtable$1;
467 class Hashtable$2;
468 class Hashtable$3;
469 class Hashtable$EntryEnumerator;
470 class Hashtable$EntryIterator;
471 class Hashtable$HashEntry;
472 class Hashtable$KeyEnumerator;
473 class Hashtable$KeyIterator;
474 class Hashtable$ValueEnumerator;
475 class Hashtable$ValueIterator;
476 class IdentityHashMap;
477 class IdentityHashMap$1;
478 class IdentityHashMap$2;
479 class IdentityHashMap$3;
480 class IdentityHashMap$IdentityEntry;
481 class IdentityHashMap$IdentityIterator;
482 class IllegalFormatCodePointException;
483 class IllegalFormatConversionException;
484 class IllegalFormatException;
485 class IllegalFormatFlagsException;
486 class IllegalFormatPrecisionException;
487 class IllegalFormatWidthException;
488 class InputMismatchException;
489 class InvalidPropertiesFormatException;
490 class Iterator;
491 class LinkedHashMap;
492 class LinkedHashMap$1;
493 class LinkedHashMap$LinkedHashEntry;
494 class LinkedHashSet;
495 class LinkedList;
496 class LinkedList$1;
497 class LinkedList$Entry;
498 class LinkedList$LinkedListItr;
499 class List;
500 class ListIterator;
501 class ListResourceBundle;
502 class Locale;
503 class Map;
504 class Map$Entry;
505 class MissingFormatArgumentException;
506 class MissingFormatWidthException;
507 class MissingResourceException;
508 class NavigableMap;
509 class NavigableSet;
510 class NoSuchElementException;
511 class Observable;
512 class Observer;
513 class PriorityQueue;
514 class PriorityQueue$1;
515 class Properties;
516 class PropertyPermission;
517 class PropertyPermissionCollection;
518 class PropertyResourceBundle;
519 class Queue;
520 class Random;
521 class RandomAccess;
522 class ResourceBundle;
523 class ResourceBundle$1;
524 class ResourceBundle$BundleKey;
525 class Scanner;
526 class ServiceConfigurationError;
527 class ServiceLoader;
528 class ServiceLoader$1;
529 class Set;
530 class SimpleTimeZone;
531 class SortedMap;
532 class SortedSet;
533 class Stack;
534 class StringTokenizer;
535 class TimeZone;
536 class TimeZone$1;
537 class Timer;
538 class Timer$Scheduler;
539 class Timer$TaskQueue;
540 class TimerTask;
541 class TooManyListenersException;
542 class TreeMap;
543 class TreeMap$1;
544 class TreeMap$2;
545 class TreeMap$3;
546 class TreeMap$4;
547 class TreeMap$5;
548 class TreeMap$6;
549 class TreeMap$7;
550 class TreeMap$DescendingMap;
551 class TreeMap$DescendingSet;
552 class TreeMap$EntrySet;
553 class TreeMap$KeySet;
554 class TreeMap$NavigableEntrySet;
555 class TreeMap$NavigableKeySet;
556 class TreeMap$Node;
557 class TreeMap$SubMap;
558 class TreeMap$SubMap$EntrySet;
559 class TreeMap$SubMap$KeySet;
560 class TreeMap$SubMap$NavigableEntrySet;
561 class TreeMap$SubMap$NavigableKeySet;
562 class TreeMap$TreeIterator;
563 class TreeSet;
564 class UUID;
565 class UnknownFormatConversionException;
566 class UnknownFormatFlagsException;
567 class VMTimeZone;
568 class Vector;
569 class Vector$1;
570 class WeakHashMap;
571 class WeakHashMap$1;
572 class WeakHashMap$2;
573 class WeakHashMap$WeakBucket;
574 class WeakHashMap$WeakBucket$WeakEntry;
575 class WeakHashMap$WeakEntrySet;
576 namespace concurrent
578 class AbstractExecutorService;
579 class ArrayBlockingQueue;
580 class ArrayBlockingQueue$Itr;
581 class BlockingDeque;
582 class BlockingQueue;
583 class BrokenBarrierException;
584 class Callable;
585 class CancellationException;
586 class CompletionService;
587 class ConcurrentHashMap;
588 class ConcurrentHashMap$EntryIterator;
589 class ConcurrentHashMap$EntrySet;
590 class ConcurrentHashMap$HashEntry;
591 class ConcurrentHashMap$HashIterator;
592 class ConcurrentHashMap$KeyIterator;
593 class ConcurrentHashMap$KeySet;
594 class ConcurrentHashMap$Segment;
595 class ConcurrentHashMap$ValueIterator;
596 class ConcurrentHashMap$Values;
597 class ConcurrentHashMap$WriteThroughEntry;
598 class ConcurrentLinkedQueue;
599 class ConcurrentLinkedQueue$Itr;
600 class ConcurrentLinkedQueue$Node;
601 class ConcurrentMap;
602 class ConcurrentNavigableMap;
603 class ConcurrentSkipListMap;
604 class ConcurrentSkipListMap$ComparableUsingComparator;
605 class ConcurrentSkipListMap$EntryIterator;
606 class ConcurrentSkipListMap$EntrySet;
607 class ConcurrentSkipListMap$HeadIndex;
608 class ConcurrentSkipListMap$Index;
609 class ConcurrentSkipListMap$Iter;
610 class ConcurrentSkipListMap$KeyIterator;
611 class ConcurrentSkipListMap$KeySet;
612 class ConcurrentSkipListMap$Node;
613 class ConcurrentSkipListMap$SubMap;
614 class ConcurrentSkipListMap$SubMap$SubMapEntryIterator;
615 class ConcurrentSkipListMap$SubMap$SubMapIter;
616 class ConcurrentSkipListMap$SubMap$SubMapKeyIterator;
617 class ConcurrentSkipListMap$SubMap$SubMapValueIterator;
618 class ConcurrentSkipListMap$ValueIterator;
619 class ConcurrentSkipListMap$Values;
620 class ConcurrentSkipListSet;
621 class CopyOnWriteArrayList;
622 class CopyOnWriteArrayList$1;
623 class CopyOnWriteArrayList$2;
624 class CopyOnWriteArrayList$3;
625 class CopyOnWriteArrayList$RandomAccessSubList;
626 class CopyOnWriteArrayList$SubList;
627 class CopyOnWriteArraySet;
628 class CountDownLatch;
629 class CountDownLatch$Sync;
630 class CyclicBarrier;
631 class CyclicBarrier$Generation;
632 class DelayQueue;
633 class DelayQueue$Itr;
634 class Delayed;
635 class Exchanger;
636 class Exchanger$Node;
637 class Exchanger$Slot;
638 class ExecutionException;
639 class Executor;
640 class ExecutorCompletionService;
641 class ExecutorCompletionService$QueueingFuture;
642 class ExecutorService;
643 class Executors;
644 class Executors$1;
645 class Executors$2;
646 class Executors$3;
647 class Executors$4;
648 class Executors$5;
649 class Executors$6;
650 class Executors$DefaultThreadFactory;
651 class Executors$DelegatedExecutorService;
652 class Executors$DelegatedScheduledExecutorService;
653 class Executors$FinalizableDelegatedExecutorService;
654 class Executors$PrivilegedCallable;
655 class Executors$PrivilegedCallableUsingCurrentClassLoader;
656 class Executors$PrivilegedThreadFactory;
657 class Executors$RunnableAdapter;
658 class Future;
659 class FutureTask;
660 class FutureTask$Sync;
661 class LinkedBlockingDeque;
662 class LinkedBlockingDeque$AbstractItr;
663 class LinkedBlockingDeque$DescendingItr;
664 class LinkedBlockingDeque$Itr;
665 class LinkedBlockingDeque$Node;
666 class LinkedBlockingQueue;
667 class LinkedBlockingQueue$Itr;
668 class LinkedBlockingQueue$Node;
669 class PriorityBlockingQueue;
670 class PriorityBlockingQueue$Itr;
671 class RejectedExecutionException;
672 class RejectedExecutionHandler;
673 class RunnableFuture;
674 class RunnableScheduledFuture;
675 class ScheduledExecutorService;
676 class ScheduledFuture;
677 class ScheduledThreadPoolExecutor;
678 class ScheduledThreadPoolExecutor$1;
679 class ScheduledThreadPoolExecutor$DelayedWorkQueue;
680 class ScheduledThreadPoolExecutor$ScheduledFutureTask;
681 class Semaphore;
682 class Semaphore$FairSync;
683 class Semaphore$NonfairSync;
684 class Semaphore$Sync;
685 class SynchronousQueue;
686 class SynchronousQueue$EmptyIterator;
687 class SynchronousQueue$FifoWaitQueue;
688 class SynchronousQueue$LifoWaitQueue;
689 class SynchronousQueue$TransferQueue;
690 class SynchronousQueue$TransferQueue$QNode;
691 class SynchronousQueue$TransferStack;
692 class SynchronousQueue$TransferStack$SNode;
693 class SynchronousQueue$Transferer;
694 class SynchronousQueue$WaitQueue;
695 class ThreadFactory;
696 class ThreadPoolExecutor;
697 class ThreadPoolExecutor$AbortPolicy;
698 class ThreadPoolExecutor$CallerRunsPolicy;
699 class ThreadPoolExecutor$DiscardOldestPolicy;
700 class ThreadPoolExecutor$DiscardPolicy;
701 class ThreadPoolExecutor$Worker;
702 class TimeUnit;
703 class TimeUnit$1;
704 class TimeUnit$2;
705 class TimeUnit$3;
706 class TimeUnit$4;
707 class TimeUnit$5;
708 class TimeUnit$6;
709 class TimeUnit$7;
710 class TimeoutException;
711 namespace atomic
713 class AtomicBoolean;
714 class AtomicInteger;
715 class AtomicIntegerArray;
716 class AtomicIntegerFieldUpdater;
717 class AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;
718 class AtomicLong;
719 class AtomicLongArray;
720 class AtomicLongFieldUpdater;
721 class AtomicLongFieldUpdater$CASUpdater;
722 class AtomicLongFieldUpdater$LockedUpdater;
723 class AtomicMarkableReference;
724 class AtomicMarkableReference$ReferenceBooleanPair;
725 class AtomicReference;
726 class AtomicReferenceArray;
727 class AtomicReferenceFieldUpdater;
728 class AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;
729 class AtomicStampedReference;
730 class AtomicStampedReference$ReferenceIntegerPair;
733 namespace locks
735 class AbstractOwnableSynchronizer;
736 class AbstractQueuedLongSynchronizer;
737 class AbstractQueuedLongSynchronizer$ConditionObject;
738 class AbstractQueuedLongSynchronizer$Node;
739 class AbstractQueuedSynchronizer;
740 class AbstractQueuedSynchronizer$ConditionObject;
741 class AbstractQueuedSynchronizer$Node;
742 class Condition;
743 class Lock;
744 class LockSupport;
745 class ReadWriteLock;
746 class ReentrantLock;
747 class ReentrantLock$FairSync;
748 class ReentrantLock$NonfairSync;
749 class ReentrantLock$Sync;
750 class ReentrantReadWriteLock;
751 class ReentrantReadWriteLock$FairSync;
752 class ReentrantReadWriteLock$NonfairSync;
753 class ReentrantReadWriteLock$ReadLock;
754 class ReentrantReadWriteLock$Sync;
755 class ReentrantReadWriteLock$Sync$HoldCounter;
756 class ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
757 class ReentrantReadWriteLock$WriteLock;
761 namespace jar
763 class Attributes;
764 class Attributes$Name;
765 class JarEntry;
766 class JarException;
767 class JarFile;
768 class JarFile$EntryInputStream;
769 class JarFile$JarEnumeration;
770 class JarInputStream;
771 class JarOutputStream;
772 class Manifest;
775 namespace logging
777 class ConsoleHandler;
778 class ErrorManager;
779 class FileHandler;
780 class FileHandler$ostr;
781 class Filter;
782 class Formatter;
783 class Handler;
784 class Level;
785 class LogManager;
786 class LogManager$1;
787 class LogRecord;
788 class Logger;
789 class Logger$1;
790 class LoggingMXBean;
791 class LoggingPermission;
792 class MemoryHandler;
793 class SimpleFormatter;
794 class SocketHandler;
795 class StreamHandler;
796 class XMLFormatter;
799 namespace prefs
801 class AbstractPreferences;
802 class AbstractPreferences$1;
803 class AbstractPreferences$2;
804 class BackingStoreException;
805 class InvalidPreferencesFormatException;
806 class NodeChangeEvent;
807 class NodeChangeListener;
808 class PreferenceChangeEvent;
809 class PreferenceChangeListener;
810 class Preferences;
811 class Preferences$1;
812 class PreferencesFactory;
815 namespace regex
817 class MatchResult;
818 class Matcher;
819 class Pattern;
820 class PatternSyntaxException;
823 namespace spi
825 class CurrencyNameProvider;
826 class LocaleNameProvider;
827 class LocaleServiceProvider;
828 class TimeZoneNameProvider;
831 namespace zip
833 class Adler32;
834 class CRC32;
835 class CheckedInputStream;
836 class CheckedOutputStream;
837 class Checksum;
838 class DataFormatException;
839 class Deflater;
840 class DeflaterOutputStream;
841 class GZIPInputStream;
842 class GZIPOutputStream;
843 class Inflater;
844 class InflaterInputStream;
845 class ZipConstants;
846 class ZipEntry;
847 class ZipException;
848 class ZipFile;
849 class ZipFile$1;
850 class ZipFile$PartialInputStream;
851 class ZipFile$ZipEntryEnumeration;
852 class ZipInputStream;
853 class ZipOutputStream;
857 // end of output of the `classes.pl' script.
860 typedef struct java::lang::Object* jobject;
861 typedef class java::lang::Class* jclass;
862 typedef class java::lang::Throwable* jthrowable;
863 typedef class java::lang::String* jstring;
864 struct _Jv_JNIEnv;
866 typedef struct _Jv_Field *jfieldID;
867 typedef struct _Jv_Method *jmethodID;
869 extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
870 extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__));
871 extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__));
872 #ifdef JV_HASH_SYNCHRONIZATION
873 extern "C" jobject _Jv_AllocPtrFreeObject (jclass)
874 __attribute__((__malloc__));
875 #else
876 // Collector still needs to scan sync_info
877 static inline jobject _Jv_AllocPtrFreeObject (jclass klass)
879 return _Jv_AllocObject(klass);
881 #endif
882 extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
883 extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
884 extern "C" jstring _Jv_NewString (const jchar*, jsize)
885 __attribute__((__malloc__));
886 extern jint _Jv_FormatInt (jchar* bufend, jint num);
887 extern "C" jchar* _Jv_GetStringChars (jstring str);
888 extern "C" void _Jv_MonitorEnter (jobject);
889 extern "C" void _Jv_MonitorExit (jobject);
890 extern "C" jstring _Jv_NewStringUTF (const char *bytes)
891 __attribute__((__malloc__));
892 extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
893 __attribute__((__malloc__));
894 extern "C" jsize _Jv_GetStringUTFLength (jstring);
895 extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
896 extern "C" jint _Jv_hashUtf8String (const char*, int);
897 extern bool _Jv_is_proxy (void *pc);
899 struct _Jv_VMOption
901 // a VM initialization option
902 char* optionString;
903 // extra information associated with this option
904 void* extraInfo;
907 struct _Jv_VMInitArgs
909 // for compatibility with JavaVMInitArgs
910 jint version;
912 // number of VM initialization options
913 jint nOptions;
915 // an array of VM initialization options
916 struct _Jv_VMOption* options;
918 // true if the option parser should ignore unrecognized options
919 jboolean ignoreUnrecognized;
922 extern jint _Jv_CreateJavaVM (struct _Jv_VMInitArgs*);
924 void
925 _Jv_ThreadRun (java::lang::Thread* thread);
926 jint
927 _Jv_AttachCurrentThread(java::lang::Thread* thread);
928 extern "C" java::lang::Thread*
929 _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
930 extern "C" java::lang::Thread*
931 _Jv_AttachCurrentThreadAsDaemon(jstring name, java::lang::ThreadGroup* group);
932 extern "C" jint _Jv_DetachCurrentThread (void);
934 extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
935 extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
936 extern "C" void* _Jv_Realloc (void *, jsize);
937 extern "C" void _Jv_Free (void*);
938 extern void (*_Jv_RegisterClassHook) (jclass cl);
939 extern "C" void _Jv_RegisterClassHookDefault (jclass);
941 typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
942 typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
943 typedef unsigned int _Jv_ulong __attribute__((__mode__(__DI__)));
945 // The type to use when treating a pointer as an integer. Similar to
946 // uintptr_t in C99.
947 typedef unsigned int _Jv_uintptr_t __attribute__((__mode__(__pointer__)));
949 class _Jv_Utf8Const
951 _Jv_ushort hash;
952 _Jv_ushort length; /* In bytes, of data portion, without final '\0'. */
953 char data[1]; /* In Utf8 format, with final '\0'. */
954 public:
955 /** Return same value of java.lang.String's hashCode. */
956 jint hash32() { return _Jv_hashUtf8String(data, length); }
957 /** Return a hash code that has at least 16 bits of information. */
958 _Jv_ushort hash16 () { return hash; }
959 /** Return a hash code that has at least 8 bits of information. */
960 _Jv_ushort hash8 () { return hash; }
961 /** Length in bytes of the UTF8-encoding. */
962 _Jv_ushort len () const { return length; }
963 /** Pointer to the first byte in the NUL-terminated UTF8-encoding. */
964 char* chars() { return data; }
965 /** Pointer to the NUL byte that terminated the UTF8-encoding. */
966 char* limit() { return data+length; }
967 /** Return the first byte in the UTF8-encoding. */
968 char first() const { return data[0]; }
969 /** Create a (non-interned) java.lang.String from this UTF8Const. */
970 jstring toString() { return _Jv_NewStringUTF(data); }
971 /** Given an UTF8 string, how many bytes needed for a UTF8Const,
972 including struct header, and final NUL. I.e. what to pas to malloc. */
973 static int space_needed (const char *, int len)
974 { return sizeof (_Jv_Utf8Const) + len + 1; }
975 /** Given an allocated _Jv_Utf8Const, copy / fill it in. */
976 void init (const char *s, int len);
977 friend jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const*, const _Jv_Utf8Const *);
978 friend jboolean _Jv_equal (_Jv_Utf8Const*, jstring, jint);
979 friend jboolean _Jv_equaln (_Jv_Utf8Const*, jstring, jint);
980 friend jboolean _Jv_equalUtf8Classnames (const _Jv_Utf8Const*,
981 const _Jv_Utf8Const*);
982 friend jboolean _Jv_isPrimitiveOrDerived (const _Jv_Utf8Const*);
983 friend _Jv_Utf8Const *_Jv_makeUtf8Const (const char*, int);
984 friend _Jv_Utf8Const *_Jv_makeUtf8Const (jstring);
985 friend jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const*);
989 #endif /* __JAVAPRIMS_H__ */