#
# Copyright (c) 2002, 2013, 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.
#
# 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
                JNI_CreateJavaVM;
                JNI_GetCreatedJavaVMs;
                JNI_GetDefaultJavaVMInitArgs;

                # JVM
                JVM_Accept;
                JVM_ActiveProcessorCount;
                JVM_AllocateNewArray;
                JVM_AllocateNewObject;
                JVM_ArrayCopy;
                JVM_AssertionStatusDirectives;
                JVM_Available;
                JVM_Bind;
                JVM_ClassDepth;
                JVM_ClassLoaderDepth;
                JVM_Clone;
                JVM_Close;
                JVM_CX8Field;
                JVM_CompileClass;
                JVM_CompileClasses;
                JVM_CompilerCommand;
                JVM_Connect;
                JVM_ConstantPoolGetClassAt;
                JVM_ConstantPoolGetClassAtIfLoaded;
                JVM_ConstantPoolGetDoubleAt;
                JVM_ConstantPoolGetFieldAt;
                JVM_ConstantPoolGetFieldAtIfLoaded;
                JVM_ConstantPoolGetFloatAt;
                JVM_ConstantPoolGetIntAt;
                JVM_ConstantPoolGetLongAt;
                JVM_ConstantPoolGetMethodAt;
                JVM_ConstantPoolGetMethodAtIfLoaded;
                JVM_ConstantPoolGetMemberRefInfoAt;
                JVM_ConstantPoolGetSize;
                JVM_ConstantPoolGetStringAt;
                JVM_ConstantPoolGetUTF8At;
                JVM_CountStackFrames;
                JVM_CurrentClassLoader;
                JVM_CurrentLoadedClass;
                JVM_CurrentThread;
                JVM_CurrentTimeMillis;
                JVM_DefineClass;
                JVM_DefineClassWithSource;
                JVM_DefineClassWithSourceCond;
                JVM_DesiredAssertionStatus;
                JVM_DisableCompiler;
                JVM_DoPrivileged;
                JVM_DTraceGetVersion;
                JVM_DTraceActivate;
                JVM_DTraceIsProbeEnabled;
                JVM_DTraceIsSupported;
                JVM_DTraceDispose;
                JVM_DumpAllStacks;
                JVM_DumpThreads;
                JVM_EnableCompiler;
                JVM_Exit;
                JVM_FillInStackTrace;
                JVM_FindClassFromClass;
                JVM_FindClassFromClassLoader;
                JVM_FindClassFromBootLoader;
                JVM_FindLibraryEntry;
                JVM_FindLoadedClass;
                JVM_FindPrimitiveClass;
                JVM_FindSignal;
                JVM_FreeMemory;
                JVM_GC;
                JVM_GetAllThreads;
                JVM_GetArrayElement;
                JVM_GetArrayLength;
                JVM_GetCPClassNameUTF;
                JVM_GetCPFieldClassNameUTF;
                JVM_GetCPFieldModifiers;
                JVM_GetCPFieldNameUTF;
                JVM_GetCPFieldSignatureUTF;
                JVM_GetCPMethodClassNameUTF;
                JVM_GetCPMethodModifiers;
                JVM_GetCPMethodNameUTF;
                JVM_GetCPMethodSignatureUTF;
                JVM_GetCallerClass;
                JVM_GetClassAccessFlags;
                JVM_GetClassAnnotations;
                JVM_GetClassCPEntriesCount;
                JVM_GetClassCPTypes;
                JVM_GetClassConstantPool;
                JVM_GetClassContext;
                JVM_GetClassDeclaredConstructors;
                JVM_GetClassDeclaredFields;
                JVM_GetClassDeclaredMethods;
                JVM_GetClassFieldsCount;
                JVM_GetClassInterfaces;
                JVM_GetClassLoader;
                JVM_GetClassMethodsCount;
                JVM_GetClassModifiers;
                JVM_GetClassName;
                JVM_GetClassNameUTF;
                JVM_GetClassSignature;
                JVM_GetClassSigners;
                JVM_GetClassTypeAnnotations;
                JVM_GetComponentType;
                JVM_GetDeclaredClasses;
                JVM_GetDeclaringClass;
                JVM_GetEnclosingMethodInfo;
                JVM_GetFieldAnnotations;
                JVM_GetFieldIxModifiers;
                JVM_GetFieldTypeAnnotations;
                JVM_GetHostName;
                JVM_GetInheritedAccessControlContext;
                JVM_GetInterfaceVersion;
                JVM_GetLastErrorString;
                JVM_GetManagement;
                JVM_GetMethodAnnotations;
                JVM_GetMethodDefaultAnnotationValue;
                JVM_GetMethodIxArgsSize;
                JVM_GetMethodIxByteCode;
                JVM_GetMethodIxByteCodeLength;
                JVM_GetMethodIxExceptionIndexes;
                JVM_GetMethodIxExceptionTableEntry;
                JVM_GetMethodIxExceptionTableLength;
                JVM_GetMethodIxExceptionsCount;
                JVM_GetMethodIxLocalsCount;
                JVM_GetMethodIxMaxStack;
                JVM_GetMethodIxModifiers;
                JVM_GetMethodIxNameUTF;
                JVM_GetMethodIxSignatureUTF;
                JVM_GetMethodParameterAnnotations;
                JVM_GetMethodParameters;
                JVM_GetMethodTypeAnnotations;
                JVM_GetPrimitiveArrayElement;
                JVM_GetProtectionDomain;
                JVM_GetSockName;
                JVM_GetSockOpt;
                JVM_GetStackAccessControlContext;
                JVM_GetStackTraceDepth;
                JVM_GetStackTraceElement;
                JVM_GetSystemPackage;
                JVM_GetSystemPackages;
                JVM_GetTemporaryDirectory;
                JVM_GetThreadStateNames;
                JVM_GetThreadStateValues;
                JVM_GetVersionInfo;
                JVM_Halt;
                JVM_HoldsLock;
                JVM_IHashCode;
                JVM_InitAgentProperties;
                JVM_InitProperties;
                JVM_InitializeCompiler;
                JVM_InitializeSocketLibrary;
                JVM_InternString;
                JVM_Interrupt;
                JVM_InvokeMethod;
                JVM_IsArrayClass;
                JVM_IsConstructorIx;
                JVM_IsInterface;
                JVM_IsInterrupted;
                JVM_IsNaN;
                JVM_IsPrimitiveClass;
                JVM_IsSameClassPackage;
                JVM_IsSilentCompiler;
                JVM_IsSupportedJNIVersion;
                JVM_IsThreadAlive;
                JVM_IsVMGeneratedMethodIx;
                JVM_LatestUserDefinedLoader;
                JVM_Listen;
                JVM_LoadClass0;
                JVM_LoadLibrary;
                JVM_Lseek;
                JVM_MaxObjectInspectionAge;
                JVM_MaxMemory;
                JVM_MonitorNotify;
                JVM_MonitorNotifyAll;
                JVM_MonitorWait;
                JVM_NanoTime;
                JVM_NativePath;
                JVM_NewArray;
                JVM_NewInstanceFromConstructor;
                JVM_NewMultiArray;
                JVM_OnExit;
                JVM_Open;
                JVM_RaiseSignal;
                JVM_RawMonitorCreate;
                JVM_RawMonitorDestroy;
                JVM_RawMonitorEnter;
                JVM_RawMonitorExit;
                JVM_Read;
                JVM_Recv;
                JVM_RecvFrom;
                JVM_RegisterSignal;
                JVM_ReleaseUTF;
                JVM_ResolveClass;
                JVM_ResumeThread;
                JVM_Send;
                JVM_SendTo;
                JVM_SetArrayElement;
                JVM_SetClassSigners;
                JVM_SetLength;
                JVM_SetNativeThreadName;
                JVM_SetPrimitiveArrayElement;
                JVM_SetProtectionDomain;
                JVM_SetSockOpt;
                JVM_SetThreadPriority;
                JVM_Sleep;
                JVM_Socket;
                JVM_SocketAvailable;
                JVM_SocketClose;
                JVM_SocketShutdown;
                JVM_StartThread;
                JVM_StopThread;
                JVM_SuspendThread;
                JVM_SupportsCX8;
                JVM_Sync;
                JVM_Timeout;
                JVM_TotalMemory;
                JVM_TraceInstructions;
                JVM_TraceMethodCalls;
                JVM_UnloadLibrary;
                JVM_Write;
                JVM_Yield;
                JVM_handle_linux_signal;

                # debug JVM
                JVM_AccessVMBooleanFlag;
                JVM_AccessVMIntFlag;
                JVM_VMBreakPoint;

                # miscellaneous functions
                jio_fprintf;
                jio_printf;
                jio_snprintf;
                jio_vfprintf;
                jio_vsnprintf;
                fork1;
                numa_warn;
                numa_error;

                # Needed because there is no JVM interface for this.
                sysThreadAvailableStackWithSlack;

                # This is for Forte Analyzer profiling support.
                AsyncGetCallTrace;

		# INSERT VTABLE SYMBOLS HERE

        local:
                *;
};

