#
# Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# Define public interface.

SUNWprivate_1.1 {
	global:
		JNI_OnLoad;
		JNU_ThrowNoSuchMethodException;
		JNU_CallStaticMethodByName;
		JNU_CallMethodByName;
		JNU_CallMethodByNameV;
		JNU_ClassClass;
		JNU_ClassObject;
		JNU_ClassString;
		JNU_ClassThrowable;
		JNU_CopyObjectArray;
		JNU_Equals;
		JNU_GetEnv;
		JNU_GetFieldByName;
		JNU_GetStaticFieldByName;
		JNU_GetStringPlatformChars;
		JNU_IsInstanceOfByName;
		JNU_MonitorWait;
		JNU_NewObjectByName;
		JNU_NewStringPlatform;
		JNU_Notify;
		JNU_NotifyAll;
		JNU_PrintClass;
		JNU_PrintString;
		JNU_ReleaseStringPlatformChars;
		JNU_SetFieldByName;
		JNU_SetStaticFieldByName;
		JNU_ThrowArrayIndexOutOfBoundsException;
		JNU_ThrowByName;
		JNU_ThrowByNameWithLastError;
                JNU_ThrowByNameWithMessageAndLastError;
		JNU_ThrowClassNotFoundException;
		JNU_ThrowIllegalAccessError;
		JNU_ThrowIllegalAccessException;
		JNU_ThrowIllegalArgumentException;
		JNU_ThrowInstantiationException;
		JNU_ThrowInternalError;
		JNU_ThrowIOException;
		JNU_ThrowIOExceptionWithLastError;
		JNU_ThrowNoSuchFieldError;
		JNU_ThrowNoSuchFieldException;
		JNU_ThrowNoSuchMethodError;
		JNU_ThrowNullPointerException;
		JNU_ThrowNumberFormatException;
		JNU_ThrowOutOfMemoryError;
		JNU_ThrowStringIndexOutOfBoundsException;
		JNU_ToString;

		Java_java_io_FileDescriptor_initIDs;
		Java_java_io_FileDescriptor_sync;
		Java_java_io_FileInputStream_available;
		Java_java_io_FileInputStream_close0;
		Java_java_io_FileInputStream_initIDs;
		Java_java_io_FileInputStream_open0;
		Java_java_io_FileInputStream_read0;
		Java_java_io_FileInputStream_readBytes;
		Java_java_io_FileInputStream_skip;
		Java_java_io_FileOutputStream_close0;
		Java_java_io_FileOutputStream_initIDs;
		Java_java_io_FileOutputStream_open0;
		Java_java_io_FileOutputStream_write;
		Java_java_io_FileOutputStream_writeBytes;
		Java_java_io_ObjectInputStream_bytesToDoubles;
		Java_java_io_ObjectInputStream_bytesToFloats;
		Java_java_io_ObjectOutputStream_doublesToBytes;
		Java_java_io_ObjectOutputStream_floatsToBytes;
		Java_java_io_ObjectStreamClass_hasStaticInitializer;
		Java_java_io_ObjectStreamClass_initNative;
		Java_java_io_RandomAccessFile_close0;
		Java_java_io_RandomAccessFile_getFilePointer;
		Java_java_io_RandomAccessFile_initIDs;
		Java_java_io_RandomAccessFile_length;
		Java_java_io_RandomAccessFile_open0;
		Java_java_io_RandomAccessFile_read0;
		Java_java_io_RandomAccessFile_readBytes;
		Java_java_io_RandomAccessFile_seek0;
		Java_java_io_RandomAccessFile_setLength;
		Java_java_io_RandomAccessFile_write0;
		Java_java_io_RandomAccessFile_writeBytes;
		Java_java_io_UnixFileSystem_canonicalize0;
		Java_java_io_UnixFileSystem_checkAccess;
		Java_java_io_UnixFileSystem_createDirectory;
		Java_java_io_UnixFileSystem_createFileExclusively;
		Java_java_io_UnixFileSystem_delete0;
		Java_java_io_UnixFileSystem_getBooleanAttributes0;
		Java_java_io_UnixFileSystem_getLastModifiedTime;
		Java_java_io_UnixFileSystem_getLength;
		Java_java_io_UnixFileSystem_getSpace;
		Java_java_io_UnixFileSystem_initIDs;
		Java_java_io_UnixFileSystem_list;
		Java_java_io_UnixFileSystem_rename0;
		Java_java_io_UnixFileSystem_setLastModifiedTime;
		Java_java_io_UnixFileSystem_setReadOnly;
		Java_java_io_UnixFileSystem_setPermission;
		Java_java_lang_Class_forName0;
		Java_java_lang_Class_getPrimitiveClass;
		Java_java_lang_Class_isAssignableFrom;
		Java_java_lang_Class_isInstance;
		Java_java_lang_Class_registerNatives;
		Java_java_lang_ClassLoader_findBootstrapClass;
		Java_java_lang_ClassLoader_defineClass0;
		Java_java_lang_ClassLoader_defineClass1;
		Java_java_lang_ClassLoader_defineClass2;
		Java_java_lang_ClassLoader_findBuiltinLib;
		Java_java_lang_ClassLoader_findLoadedClass0;
		Java_java_lang_ClassLoader_resolveClass0;
		Java_java_lang_ClassLoader_00024NativeLibrary_find;
		Java_java_lang_ClassLoader_00024NativeLibrary_load;
		Java_java_lang_ClassLoader_00024NativeLibrary_unload;
		Java_java_lang_ClassLoader_registerNatives;
		Java_java_lang_Compiler_registerNatives;
		Java_java_lang_Double_longBitsToDouble;
		Java_java_lang_Double_doubleToRawLongBits;
		Java_java_lang_reflect_Proxy_defineClass0;
		Java_java_lang_Shutdown_runAllFinalizers;
		Java_java_lang_Float_intBitsToFloat;
		Java_java_lang_Float_floatToRawIntBits;
		Java_java_lang_StrictMath_IEEEremainder;
		Java_java_lang_StrictMath_acos;
		Java_java_lang_StrictMath_asin;
		Java_java_lang_StrictMath_atan;
		Java_java_lang_StrictMath_atan2;
		Java_java_lang_StrictMath_cos;
		Java_java_lang_StrictMath_exp;
		Java_java_lang_StrictMath_log;
		Java_java_lang_StrictMath_log10;
		Java_java_lang_StrictMath_pow;
		Java_java_lang_StrictMath_sin;
		Java_java_lang_StrictMath_sqrt;
		Java_java_lang_StrictMath_cbrt;
		Java_java_lang_StrictMath_tan;
		Java_java_lang_StrictMath_cosh;
		Java_java_lang_StrictMath_sinh;
		Java_java_lang_StrictMath_tanh;
		Java_java_lang_StrictMath_hypot;
		Java_java_lang_StrictMath_log1p;
		Java_java_lang_StrictMath_expm1;
		Java_java_lang_Object_getClass;
		Java_java_lang_Object_registerNatives;
		Java_java_lang_Package_getSystemPackage0;
		Java_java_lang_Package_getSystemPackages0;
		Java_java_lang_ProcessEnvironment_environ;
		Java_java_lang_reflect_Array_get;
		Java_java_lang_reflect_Array_getBoolean;
		Java_java_lang_reflect_Array_getByte;
		Java_java_lang_reflect_Array_getChar;
		Java_java_lang_reflect_Array_getDouble;
		Java_java_lang_reflect_Array_getFloat;
		Java_java_lang_reflect_Array_getInt;
		Java_java_lang_reflect_Array_getLength;
		Java_java_lang_reflect_Array_getLong;
		Java_java_lang_reflect_Array_getShort;
		Java_java_lang_reflect_Array_multiNewArray;
		Java_java_lang_reflect_Array_newArray;
		Java_java_lang_reflect_Array_set;
		Java_java_lang_reflect_Array_setBoolean;
		Java_java_lang_reflect_Array_setByte;
		Java_java_lang_reflect_Array_setChar;
		Java_java_lang_reflect_Array_setDouble;
		Java_java_lang_reflect_Array_setFloat;
		Java_java_lang_reflect_Array_setInt;
		Java_java_lang_reflect_Array_setLong;
		Java_java_lang_reflect_Array_setShort;
		Java_java_lang_reflect_Executable_getParameters0;
		Java_java_lang_reflect_Executable_getTypeAnnotationBytes0;
		Java_java_lang_reflect_Field_getTypeAnnotationBytes0;
		Java_java_lang_Runtime_freeMemory;
                Java_java_lang_Runtime_maxMemory;
		Java_java_lang_Runtime_gc;
		Java_java_lang_Runtime_runFinalization0;
		Java_java_lang_Runtime_totalMemory;
		Java_java_lang_Runtime_traceInstructions;
		Java_java_lang_Runtime_traceMethodCalls;
                Java_java_lang_Runtime_availableProcessors;
		Java_java_lang_SecurityManager_classDepth;
		Java_java_lang_SecurityManager_classLoaderDepth0;
		Java_java_lang_SecurityManager_currentClassLoader0;
		Java_java_lang_SecurityManager_currentLoadedClass0;
		Java_java_lang_SecurityManager_getClassContext;
		Java_java_lang_Shutdown_halt0;
		Java_java_lang_String_intern;
		Java_java_lang_System_identityHashCode;
		Java_java_lang_System_initProperties;
		Java_java_lang_System_mapLibraryName;
		Java_java_lang_System_registerNatives;
		Java_java_lang_System_setErr0;
		Java_java_lang_System_setIn0;
		Java_java_lang_System_setOut0;
		Java_java_lang_Thread_registerNatives;
		Java_java_lang_Throwable_fillInStackTrace;
                Java_java_lang_Throwable_getStackTraceDepth;
                Java_java_lang_Throwable_getStackTraceElement;
		Java_java_lang_UNIXProcess_init;
		Java_java_lang_UNIXProcess_waitForProcessExit;
		Java_java_lang_UNIXProcess_forkAndExec;
		Java_java_lang_UNIXProcess_destroyProcess;
                Java_java_nio_Bits_copyFromShortArray;
                Java_java_nio_Bits_copyToShortArray;
                Java_java_nio_Bits_copyFromIntArray;
                Java_java_nio_Bits_copyToIntArray;
                Java_java_nio_Bits_copyFromLongArray;
                Java_java_nio_Bits_copyToLongArray;
		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
		Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
		Java_java_security_AccessController_getStackAccessControlContext;
		Java_java_security_AccessController_getInheritedAccessControlContext;
		Java_java_util_TimeZone_getSystemTimeZoneID;
		Java_java_util_TimeZone_getSystemGMTOffsetID;
		Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
		Java_java_util_prefs_FileSystemPreferences_chmod;
		Java_java_util_prefs_FileSystemPreferences_lockFile0;
		Java_java_util_prefs_FileSystemPreferences_unlockFile0;
		Java_java_util_logging_FileHandler_isSetUID;
		Java_sun_misc_MessageUtils_toStderr;
		Java_sun_misc_MessageUtils_toStdout;
		Java_sun_misc_NativeSignalHandler_handle0;
		Java_sun_misc_Signal_findSignal;
		Java_sun_misc_Signal_handle0;
		Java_sun_misc_Signal_raise0;
              Java_sun_reflect_ConstantPool_getClassAt0;
              Java_sun_reflect_ConstantPool_getClassAtIfLoaded0;
              Java_sun_reflect_ConstantPool_getDoubleAt0;
              Java_sun_reflect_ConstantPool_getFieldAt0;
              Java_sun_reflect_ConstantPool_getFieldAtIfLoaded0;
              Java_sun_reflect_ConstantPool_getFloatAt0;
              Java_sun_reflect_ConstantPool_getIntAt0;
              Java_sun_reflect_ConstantPool_getLongAt0;
              Java_sun_reflect_ConstantPool_getMemberRefInfoAt0;
              Java_sun_reflect_ConstantPool_getMethodAt0;
              Java_sun_reflect_ConstantPool_getMethodAtIfLoaded0;
              Java_sun_reflect_ConstantPool_getSize0;
              Java_sun_reflect_ConstantPool_getStringAt0;
              Java_sun_reflect_ConstantPool_getUTF8At0;
		Java_java_io_Console_istty;
		Java_java_io_Console_encoding;
                Java_java_io_Console_echo;
		Java_sun_misc_GC_maxObjectInspectionAge;
		Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
		Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
		Java_sun_reflect_Reflection_getCallerClass__;
		Java_sun_reflect_Reflection_getCallerClass__I;
		Java_sun_reflect_Reflection_getClassAccessFlags;
		Java_sun_misc_URLClassPath_knownToNotExist0;
                Java_sun_misc_URLClassPath_getLookupCacheURLs;
                Java_sun_misc_URLClassPath_getLookupCacheForClassLoader;
                Java_sun_misc_Version_getJdkVersionInfo;
                Java_sun_misc_Version_getJdkSpecialVersion;
                Java_sun_misc_Version_getJvmVersionInfo;
                Java_sun_misc_Version_getJvmSpecialVersion;
                Java_sun_misc_VM_getThreadStateValues;
		Java_sun_misc_VM_latestUserDefinedLoader;
                Java_sun_misc_VM_initialize;
		Java_sun_misc_VMSupport_initAgentProperties;
		Java_sun_misc_VMSupport_getVMTemporaryDirectory;
		
                # ZipFile.c needs this one
		throwFileNotFoundException;
                # zip_util.c needs this
		getErrorString;

#		Java_sun_misc_VM_getState;			threads.c
#		Java_sun_misc_VM_threadsSuspended;		threads.c
#		Java_sun_misc_VM_unsuspendSomeThreads;		threads.c
#		Java_sun_misc_VM_unsuspendThreads;		threads.c

	# Outcalls from libjvm done using dlsym().

		VerifyClassCodes;
		VerifyClassCodesForMajorVersion;
		NewStringPlatform;
		GetStringPlatformChars;
		Canonicalize;
		JDK_GetVersionInfo0;

	local:
		*;
};
