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