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