Move dispatch_table

This commit is contained in:
Andras Slemmer 2017-01-31 17:41:42 +00:00 committed by exfalso
parent f5bc0b783a
commit 09e4fe60d0
5 changed files with 2 additions and 2589 deletions

View File

@ -4,6 +4,7 @@
#include <string.h>
#include <map>
#include <dlfcn.h>
#include <sys/time.h>
#include <avian/arch.h>
#include <avian/append.h>
@ -15,9 +16,6 @@
#define PATH_MAX 256
extern std::map<std::string, void*> dispatch_table;
extern void init_sgx_dispatch_table();
using namespace vm;
using namespace avian::util;
@ -28,8 +26,6 @@ extern "C" __attribute__((weak)) const uint8_t* embedded_file_app_jar(size_t* si
extern "C" const uint8_t* javahomeJar(size_t* size);
extern "C" const void *find_in_dispatch_table(const char *name);
namespace {
void abort_with(const char *msg) {
printf("%s\n", msg);
@ -297,7 +293,7 @@ namespace {
return (void *) &embedded_file_app_jar;
} if (!strcmp(function, "javahomeJar")) {
return (void *) &javahomeJar;
} else if ((ptr = find_in_dispatch_table(function))) {
} else if ((ptr = dlsym(NULL, function))) {
return (void *) ptr;
} else {
// If you seem to be hitting a JNI call you're sure should exist, try uncommenting this.

File diff suppressed because it is too large Load Diff

View File

@ -1,53 +0,0 @@
// Inside the enclave we don't have the rtld to do symbol lookups for us. So, we must manually compute
// the name->address mappings at compile time and then let the SGX ELF loader apply the relocs itself.
//
// Because there are quite a few symbols we might want to look up, the final file is generated using a script.
// This is just a template.
//
#ifndef AVIAN_SGX_DISPATCH_TABLE_H
#define AVIAN_SGX_DISPATCH_TABLE_H
#include <string>
#include <map>
#include <avian/common.h>
using namespace std;
extern "C" {
// EXTERNS HERE
}
namespace {
struct entry {
const char *name;
const void *addr;
} entries[] = {
// ENTRIES HERE
{ NULL, NULL }
};
static int symbol_table_size = -1;
static int comparator(const void *e1, const void *e2) {
const struct entry *entry1 = static_cast<const struct entry*>(e1);
const struct entry *entry2 = static_cast<const struct entry*>(e2);
return strcmp(entry1->name, entry2->name);
}
}
extern "C" const void *find_in_dispatch_table(const char *name) {
if (symbol_table_size == -1) {
symbol_table_size = 0;
while (entries[symbol_table_size].name) symbol_table_size++;
}
struct entry key = {name, NULL};
struct entry *result = (struct entry *) bsearch(&key, entries, symbol_table_size, sizeof(struct entry), comparator);
if (result) {
return result->addr;
} else {
return NULL;
}
}
#endif //AVIAN_SGX_DISPATCH_TABLE_H

View File

@ -1,820 +0,0 @@
# This file lists all the JNI symbols that can be looked up. It was generated by gen_dispatch_table.py
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_available
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_close
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_getContentLength
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_open
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_read__JI
Avian_avian_avianvmresource_Handler_00024ResourceInputStream_read__JI_3BII
Avian_avian_Classes_acquireClassLock
Avian_avian_Classes_defineVMClass
Avian_avian_Classes_initialize
Avian_avian_Classes_makeString
Avian_avian_Classes_primitiveClass
Avian_avian_Classes_releaseClassLock
Avian_avian_Classes_resolveVMClass
Avian_avian_Classes_toVMClass
Avian_avian_Classes_toVMMethod
Avian_avian_Continuations_00024Continuation_handleException
Avian_avian_Continuations_00024Continuation_handleResult
Avian_avian_Continuations_callWithCurrentContinuation
Avian_avian_Continuations_dynamicWind2
Avian_avian_Machine_dumpHeap
Avian_avian_Machine_tryNative
Avian_avian_Singleton_getInt
Avian_avian_Singleton_getLong
Avian_avian_Singleton_getObject
Avian_avian_SystemClassLoader_00024ResourceEnumeration_nextResourceURLPrefix
Avian_avian_SystemClassLoader_appLoader
Avian_avian_SystemClassLoader_findLoadedVMClass
Avian_avian_SystemClassLoader_findVMClass
Avian_avian_SystemClassLoader_getClass
Avian_avian_SystemClassLoader_getPackageSource
Avian_avian_SystemClassLoader_resourceURLPrefix
Avian_avian_SystemClassLoader_vmClass
Avian_java_lang_Class_getEnclosingClass
Avian_java_lang_Class_getEnclosingConstructor
Avian_java_lang_Class_getEnclosingMethod
Avian_java_lang_Object_clone
Avian_java_lang_Object_getVMClass
Avian_java_lang_Object_hashCode
Avian_java_lang_Object_notify
Avian_java_lang_Object_notifyAll
Avian_java_lang_Object_toString
Avian_java_lang_Object_wait
Avian_java_lang_Runtime_exit
Avian_java_lang_Runtime_freeMemory
Avian_java_lang_Runtime_totalMemory
Avian_java_nio_FixedArrayByteBuffer_allocateFixed
Avian_sun_misc_Unsafe_allocateMemory
Avian_sun_misc_Unsafe_arrayBaseOffset
Avian_sun_misc_Unsafe_arrayIndexScale
Avian_sun_misc_Unsafe_compareAndSwapInt
Avian_sun_misc_Unsafe_compareAndSwapLong
Avian_sun_misc_Unsafe_compareAndSwapObject
Avian_sun_misc_Unsafe_copyMemory
Avian_sun_misc_Unsafe_freeMemory
Avian_sun_misc_Unsafe_getAddress__J
Avian_sun_misc_Unsafe_getBooleanVolatile
Avian_sun_misc_Unsafe_getByte__J
Avian_sun_misc_Unsafe_getByteVolatile
Avian_sun_misc_Unsafe_getChar__J
Avian_sun_misc_Unsafe_getCharVolatile
Avian_sun_misc_Unsafe_getDouble__J
Avian_sun_misc_Unsafe_getDoubleVolatile
Avian_sun_misc_Unsafe_getFloat__J
Avian_sun_misc_Unsafe_getFloatVolatile
Avian_sun_misc_Unsafe_getInt__J
Avian_sun_misc_Unsafe_getIntVolatile
Avian_sun_misc_Unsafe_getLong__J
Avian_sun_misc_Unsafe_getLongVolatile
Avian_sun_misc_Unsafe_getObject
Avian_sun_misc_Unsafe_getObjectVolatile
Avian_sun_misc_Unsafe_getShort__J
Avian_sun_misc_Unsafe_getShortVolatile
Avian_sun_misc_Unsafe_park
Avian_sun_misc_Unsafe_putAddress__JJ
Avian_sun_misc_Unsafe_putBooleanVolatile
Avian_sun_misc_Unsafe_putByte__JB
Avian_sun_misc_Unsafe_putByteVolatile
Avian_sun_misc_Unsafe_putChar__JC
Avian_sun_misc_Unsafe_putCharVolatile
Avian_sun_misc_Unsafe_putDouble__JD
Avian_sun_misc_Unsafe_putDoubleVolatile
Avian_sun_misc_Unsafe_putFloat__JF
Avian_sun_misc_Unsafe_putFloatVolatile
Avian_sun_misc_Unsafe_putInt__JI
Avian_sun_misc_Unsafe_putIntVolatile
Avian_sun_misc_Unsafe_putLong__JJ
Avian_sun_misc_Unsafe_putLongVolatile
Avian_sun_misc_Unsafe_putObject
Avian_sun_misc_Unsafe_putObjectVolatile
Avian_sun_misc_Unsafe_putOrderedInt
Avian_sun_misc_Unsafe_putOrderedLong
Avian_sun_misc_Unsafe_putOrderedObject
Avian_sun_misc_Unsafe_putShort__JS
Avian_sun_misc_Unsafe_putShortVolatile
Avian_sun_misc_Unsafe_setMemory
Avian_sun_misc_Unsafe_throwException
Avian_sun_misc_Unsafe_unpark
Avian_java_lang_Class_getSuperclass
Avian_sun_misc_Perf_createLong
Avian_sun_misc_Perf_registerNatives
Avian_sun_misc_Unsafe_addressSize
Avian_sun_misc_Unsafe_allocateInstance
Avian_sun_misc_Unsafe_defineClass__Ljava_lang_String_2_3BIILjava_lang_ClassLoader_2Ljava_security_ProtectionDomain_2
Avian_sun_misc_Unsafe_ensureClassInitialized
Avian_sun_misc_Unsafe_getBoolean__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getByte__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getChar__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getDouble__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getFloat__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getInt__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getLong__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_getShort__Ljava_lang_Object_2J
Avian_sun_misc_Unsafe_monitorEnter
Avian_sun_misc_Unsafe_monitorExit
Avian_sun_misc_Unsafe_objectFieldOffset
Avian_sun_misc_Unsafe_pageSize
Avian_sun_misc_Unsafe_putBoolean__Ljava_lang_Object_2JZ
Avian_sun_misc_Unsafe_putByte__Ljava_lang_Object_2JB
Avian_sun_misc_Unsafe_putChar__Ljava_lang_Object_2JC
Avian_sun_misc_Unsafe_putDouble__Ljava_lang_Object_2JD
Avian_sun_misc_Unsafe_putFloat__Ljava_lang_Object_2JF
Avian_sun_misc_Unsafe_putInt__Ljava_lang_Object_2JI
Avian_sun_misc_Unsafe_putLong__Ljava_lang_Object_2JJ
Avian_sun_misc_Unsafe_putShort__Ljava_lang_Object_2JS
Avian_sun_misc_Unsafe_registerNatives
Avian_sun_misc_Unsafe_staticFieldBase
Avian_sun_misc_Unsafe_staticFieldOffset
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_CompileClass
JVM_CompileClasses
JVM_CompilerCommand
JVM_Connect
JVM_ConstantPoolGetClassAt
JVM_ConstantPoolGetClassAtIfLoaded
JVM_ConstantPoolGetDoubleAt
JVM_ConstantPoolGetFieldAt
JVM_ConstantPoolGetFieldAtIfLoaded
JVM_ConstantPoolGetFloatAt
JVM_ConstantPoolGetIntAt
JVM_ConstantPoolGetLongAt
JVM_ConstantPoolGetMemberRefInfoAt
JVM_ConstantPoolGetMethodAt
JVM_ConstantPoolGetMethodAtIfLoaded
JVM_ConstantPoolGetSize
JVM_ConstantPoolGetStringAt
JVM_ConstantPoolGetUTF8At
JVM_CountStackFrames
JVM_CurrentClassLoader
JVM_CurrentLoadedClass
JVM_CurrentThread
JVM_CurrentTimeMillis
JVM_CX8Field
JVM_DefineClass
JVM_DefineClassWithSource
JVM_DefineClassWithSourceCond
JVM_DesiredAssertionStatus
JVM_DisableCompiler
JVM_DoPrivileged
JVM_DumpAllStacks
JVM_DumpThreads
JVM_EnableCompiler
JVM_Exit
JVM_FillInStackTrace
JVM_FindClassFromBootLoader
JVM_FindClassFromCaller
JVM_FindClassFromClass
JVM_FindClassFromClassLoader
JVM_FindLibraryEntry
JVM_FindLoadedClass
JVM_FindPrimitiveClass
JVM_FindSignal
JVM_FreeMemory
JVM_GC
JVM_GetAllThreads
JVM_GetArrayElement
JVM_GetArrayLength
JVM_GetCallerClass
JVM_GetClassAccessFlags
JVM_GetClassAnnotations
JVM_GetClassConstantPool
JVM_GetClassContext
JVM_GetClassCPEntriesCount
JVM_GetClassCPTypes
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_GetCPClassNameUTF
JVM_GetCPFieldClassNameUTF
JVM_GetCPFieldModifiers
JVM_GetCPFieldNameUTF
JVM_GetCPFieldSignatureUTF
JVM_GetCPMethodClassNameUTF
JVM_GetCPMethodModifiers
JVM_GetCPMethodNameUTF
JVM_GetCPMethodSignatureUTF
JVM_GetDeclaredClasses
JVM_GetDeclaringClass
JVM_GetEnclosingMethodInfo
JVM_GetFieldIxModifiers
JVM_GetFieldTypeAnnotations
JVM_GetHostByAddr
JVM_GetHostByName
JVM_GetHostName
JVM_GetInheritedAccessControlContext
JVM_GetInterfaceVersion
JVM_GetLastErrorString
JVM_GetManagement
JVM_GetMethodIxArgsSize
JVM_GetMethodIxByteCode
JVM_GetMethodIxByteCodeLength
JVM_GetMethodIxExceptionIndexes
JVM_GetMethodIxExceptionsCount
JVM_GetMethodIxExceptionTableEntry
JVM_GetMethodIxExceptionTableLength
JVM_GetMethodIxLocalsCount
JVM_GetMethodIxMaxStack
JVM_GetMethodIxModifiers
JVM_GetMethodIxNameUTF
JVM_GetMethodIxSignatureUTF
JVM_GetMethodParameters
JVM_GetMethodTypeAnnotations
JVM_GetPrimitiveArrayElement
JVM_GetProtectionDomain
JVM_GetProtoByName
JVM_GetResourceLookupCacheURLs
JVM_GetSockName
JVM_GetSockOpt
JVM_GetStackAccessControlContext
JVM_GetStackTraceDepth
JVM_GetStackTraceElement
JVM_GetSystemPackage
JVM_GetSystemPackages
JVM_GetThreadStateNames
JVM_GetThreadStateValues
JVM_GetVersionInfo
JVM_Halt
JVM_HoldsLock
JVM_IHashCode
JVM_InitAgentProperties
JVM_InitializeCompiler
JVM_InitializeSocketLibrary
JVM_InitProperties
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_MaxMemory
JVM_MaxObjectInspectionAge
JVM_MonitorNotify
JVM_MonitorNotifyAll
JVM_MonitorWait
JVM_NanoTime
JVM_NativePath
JVM_NewArray
JVM_NewInstanceFromConstructor
JVM_NewMultiArray
JVM_OnExit
JVM_Open
JVM_PrintStackTrace
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_SupportsCX8
JVM_SuspendThread
JVM_Sync
JVM_Timeout
JVM_TotalMemory
JVM_TraceInstructions
JVM_TraceMethodCalls
JVM_UnloadLibrary
JVM_Write
JVM_Yield
JVM_GetResourceLookupCache
JVM_GetTemporaryDirectory
JVM_KnownToNotExist
Java_java_io_FileInputStream_available
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_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_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_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_00024NativeLibrary_find
Java_java_lang_ClassLoader_00024NativeLibrary_load
Java_java_lang_ClassLoader_00024NativeLibrary_unload
Java_java_lang_ClassLoader_defineClass0
Java_java_lang_ClassLoader_defineClass1
Java_java_lang_ClassLoader_defineClass2
Java_java_lang_ClassLoader_findBootstrapClass
Java_java_lang_ClassLoader_findBuiltinLib
Java_java_lang_ClassLoader_findLoadedClass0
Java_java_lang_ClassLoader_registerNatives
Java_java_lang_ClassLoader_resolveClass0
Java_java_lang_Compiler_registerNatives
Java_java_lang_Double_doubleToRawLongBits
Java_java_lang_Double_longBitsToDouble
Java_java_lang_Float_floatToRawIntBits
Java_java_lang_Float_intBitsToFloat
Java_java_lang_Object_getClass
Java_java_lang_Object_registerNatives
Java_java_lang_Package_getSystemPackage0
Java_java_lang_Package_getSystemPackages0
Java_java_lang_Runtime_availableProcessors
Java_java_lang_Runtime_freeMemory
Java_java_lang_Runtime_gc
Java_java_lang_Runtime_maxMemory
Java_java_lang_Runtime_runFinalization0
Java_java_lang_Runtime_totalMemory
Java_java_lang_Runtime_traceInstructions
Java_java_lang_Runtime_traceMethodCalls
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_Shutdown_runAllFinalizers
Java_java_lang_StrictMath_acos
Java_java_lang_StrictMath_asin
Java_java_lang_StrictMath_atan
Java_java_lang_StrictMath_atan2
Java_java_lang_StrictMath_cbrt
Java_java_lang_StrictMath_cos
Java_java_lang_StrictMath_cosh
Java_java_lang_StrictMath_exp
Java_java_lang_StrictMath_expm1
Java_java_lang_StrictMath_hypot
Java_java_lang_StrictMath_IEEEremainder
Java_java_lang_StrictMath_log
Java_java_lang_StrictMath_log10
Java_java_lang_StrictMath_log1p
Java_java_lang_StrictMath_pow
Java_java_lang_StrictMath_sin
Java_java_lang_StrictMath_sinh
Java_java_lang_StrictMath_sqrt
Java_java_lang_StrictMath_tan
Java_java_lang_StrictMath_tanh
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_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_Proxy_defineClass0
Java_java_net_DatagramPacket_init
Java_java_net_Inet4Address_init
Java_java_net_Inet6Address_init
Java_java_net_InetAddress_init
Java_java_nio_Bits_copyFromIntArray
Java_java_nio_Bits_copyFromLongArray
Java_java_nio_Bits_copyFromShortArray
Java_java_nio_Bits_copyToIntArray
Java_java_nio_Bits_copyToLongArray
Java_java_nio_Bits_copyToShortArray
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_getInheritedAccessControlContext
Java_java_security_AccessController_getStackAccessControlContext
Java_java_util_TimeZone_getSystemGMTOffsetID
Java_java_util_TimeZone_getSystemTimeZoneID
Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8
Java_java_util_zip_Adler32_update
Java_java_util_zip_Adler32_updateByteBuffer
Java_java_util_zip_Adler32_updateBytes
Java_java_util_zip_CRC32_update
Java_java_util_zip_CRC32_updateByteBuffer
Java_java_util_zip_CRC32_updateBytes
Java_java_util_zip_Deflater_deflateBytes
Java_java_util_zip_Deflater_end
Java_java_util_zip_Deflater_getAdler
Java_java_util_zip_Deflater_init
Java_java_util_zip_Deflater_initIDs
Java_java_util_zip_Deflater_reset
Java_java_util_zip_Deflater_setDictionary
Java_java_util_zip_Inflater_end
Java_java_util_zip_Inflater_getAdler
Java_java_util_zip_Inflater_inflateBytes
Java_java_util_zip_Inflater_init
Java_java_util_zip_Inflater_initIDs
Java_java_util_zip_Inflater_reset
Java_java_util_zip_Inflater_setDictionary
Java_java_util_jar_JarFile_getMetaInfEntryNames
Java_java_util_zip_ZipFile_close
Java_java_util_zip_ZipFile_freeEntry
Java_java_util_zip_ZipFile_getCommentBytes
Java_java_util_zip_ZipFile_getEntry
Java_java_util_zip_ZipFile_getEntryBytes
Java_java_util_zip_ZipFile_getEntryCrc
Java_java_util_zip_ZipFile_getEntryCSize
Java_java_util_zip_ZipFile_getEntryFlag
Java_java_util_zip_ZipFile_getEntryMethod
Java_java_util_zip_ZipFile_getEntrySize
Java_java_util_zip_ZipFile_getEntryTime
Java_java_util_zip_ZipFile_getNextEntry
Java_java_util_zip_ZipFile_getTotal
Java_java_util_zip_ZipFile_getZipMessage
Java_java_util_zip_ZipFile_initIDs
Java_java_util_zip_ZipFile_open
Java_java_util_zip_ZipFile_read
Java_java_util_zip_ZipFile_startsWithLOC
Java_sun_management_VMManagementImpl_getAvailableProcessors
Java_sun_management_VMManagementImpl_getClassInitializationTime
Java_sun_management_VMManagementImpl_getClassLoadingTime
Java_sun_management_VMManagementImpl_getClassVerificationTime
Java_sun_management_VMManagementImpl_getDaemonThreadCount
Java_sun_management_VMManagementImpl_getInitializedClassCount
Java_sun_management_VMManagementImpl_getLiveThreadCount
Java_sun_management_VMManagementImpl_getLoadedClassSize
Java_sun_management_VMManagementImpl_getMethodDataSize
Java_sun_management_VMManagementImpl_getPeakThreadCount
Java_sun_management_VMManagementImpl_getProcessId
Java_sun_management_VMManagementImpl_getSafepointCount
Java_sun_management_VMManagementImpl_getSafepointSyncTime
Java_sun_management_VMManagementImpl_getStartupTime
Java_sun_management_VMManagementImpl_getTotalApplicationNonStoppedTime
Java_sun_management_VMManagementImpl_getTotalClassCount
Java_sun_management_VMManagementImpl_getTotalCompileTime
Java_sun_management_VMManagementImpl_getTotalSafepointTime
Java_sun_management_VMManagementImpl_getTotalThreadCount
Java_sun_management_VMManagementImpl_getUnloadedClassCount
Java_sun_management_VMManagementImpl_getUnloadedClassSize
Java_sun_management_VMManagementImpl_getUptime0
Java_sun_management_VMManagementImpl_getVerboseClass
Java_sun_management_VMManagementImpl_getVerboseGC
Java_sun_management_VMManagementImpl_getVersion0
Java_sun_management_VMManagementImpl_getVmArguments0
Java_sun_management_VMManagementImpl_initOptionalSupportFields
Java_sun_management_VMManagementImpl_isThreadAllocatedMemoryEnabled
Java_sun_management_VMManagementImpl_isThreadContentionMonitoringEnabled
Java_sun_management_VMManagementImpl_isThreadCpuTimeEnabled
Java_sun_misc_GC_maxObjectInspectionAge
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_misc_URLClassPath_getLookupCacheForClassLoader
Java_sun_misc_URLClassPath_getLookupCacheURLs
Java_sun_misc_URLClassPath_knownToNotExist0
Java_sun_misc_VM_getThreadStateValues
Java_sun_misc_VM_initialize
Java_sun_misc_VM_latestUserDefinedLoader
Java_sun_misc_VMSupport_getVMTemporaryDirectory
Java_sun_misc_VMSupport_initAgentProperties
Java_sun_misc_Version_getJdkSpecialVersion
Java_sun_misc_Version_getJdkVersionInfo
Java_sun_misc_Version_getJvmSpecialVersion
Java_sun_misc_Version_getJvmVersionInfo
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_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_java_io_Console_echo
Java_java_io_Console_encoding
Java_java_io_Console_istty
Java_java_io_FileDescriptor_initIDs
Java_java_io_FileDescriptor_sync
Java_java_io_FileInputStream_close0
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_RandomAccessFile_close0
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_setPermission
Java_java_io_UnixFileSystem_setReadOnly
Java_java_lang_ProcessEnvironment_environ
Java_java_lang_UNIXProcess_destroyProcess
Java_java_lang_UNIXProcess_forkAndExec
Java_java_lang_UNIXProcess_init
Java_java_lang_UNIXProcess_waitForProcessExit
Java_sun_net_ExtendedOptionsImpl_flowSupported
Java_sun_net_ExtendedOptionsImpl_getFlowOption
Java_sun_net_ExtendedOptionsImpl_init
Java_sun_net_ExtendedOptionsImpl_setFlowOption
Java_java_net_Inet4AddressImpl_getHostByAddr
Java_java_net_Inet4AddressImpl_getLocalHostName
Java_java_net_Inet4AddressImpl_isReachable0
Java_java_net_Inet4AddressImpl_lookupAllHostAddr
Java_java_net_Inet6AddressImpl_getHostByAddr
Java_java_net_Inet6AddressImpl_getLocalHostName
Java_java_net_Inet6AddressImpl_isReachable0
Java_java_net_Inet6AddressImpl_lookupAllHostAddr
Java_java_net_InetAddressImplFactory_isIPv6Supported
Java_java_net_NetworkInterface_getAll
Java_java_net_NetworkInterface_getByIndex0
Java_java_net_NetworkInterface_getByInetAddress0
Java_java_net_NetworkInterface_getByName0
Java_java_net_NetworkInterface_getMacAddr0
Java_java_net_NetworkInterface_getMTU0
Java_java_net_NetworkInterface_init
Java_java_net_NetworkInterface_isLoopback0
Java_java_net_NetworkInterface_isP2P0
Java_java_net_NetworkInterface_isUp0
Java_java_net_NetworkInterface_supportsMulticast0
Java_java_net_PlainDatagramSocketImpl_bind0
Java_java_net_PlainDatagramSocketImpl_connect0
Java_java_net_PlainDatagramSocketImpl_dataAvailable
Java_java_net_PlainDatagramSocketImpl_datagramSocketClose
Java_java_net_PlainDatagramSocketImpl_datagramSocketCreate
Java_java_net_PlainDatagramSocketImpl_disconnect0
Java_java_net_PlainDatagramSocketImpl_getTimeToLive
Java_java_net_PlainDatagramSocketImpl_getTTL
Java_java_net_PlainDatagramSocketImpl_init
Java_java_net_PlainDatagramSocketImpl_join
Java_java_net_PlainDatagramSocketImpl_leave
Java_java_net_PlainDatagramSocketImpl_peek
Java_java_net_PlainDatagramSocketImpl_peekData
Java_java_net_PlainDatagramSocketImpl_receive0
Java_java_net_PlainDatagramSocketImpl_send
Java_java_net_PlainDatagramSocketImpl_setTimeToLive
Java_java_net_PlainDatagramSocketImpl_setTTL
Java_java_net_PlainDatagramSocketImpl_socketGetOption
Java_java_net_PlainDatagramSocketImpl_socketSetOption0
Java_java_net_PlainSocketImpl_initProto
Java_java_net_PlainSocketImpl_socketAccept
Java_java_net_PlainSocketImpl_socketAvailable
Java_java_net_PlainSocketImpl_socketBind
Java_java_net_PlainSocketImpl_socketClose0
Java_java_net_PlainSocketImpl_socketConnect
Java_java_net_PlainSocketImpl_socketCreate
Java_java_net_PlainSocketImpl_socketGetOption
Java_java_net_PlainSocketImpl_socketListen
Java_java_net_PlainSocketImpl_socketSendUrgentData
Java_java_net_PlainSocketImpl_socketSetOption0
Java_java_net_PlainSocketImpl_socketShutdown
Java_java_net_SocketInputStream_init
Java_java_net_SocketInputStream_socketRead0
Java_java_net_SocketOutputStream_init
Java_java_net_SocketOutputStream_socketWrite0
Java_java_nio_MappedByteBuffer_force0
Java_java_nio_MappedByteBuffer_isLoaded0
Java_java_nio_MappedByteBuffer_load0
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_net_dns_ResolverConfigurationImpl_fallbackDomain0
Java_sun_net_dns_ResolverConfigurationImpl_localDomain0
Java_sun_net_spi_DefaultProxySelector_getSystemProxy
Java_sun_net_spi_DefaultProxySelector_init
Java_sun_nio_ch_DatagramChannelImpl_disconnect0
Java_sun_nio_ch_DatagramChannelImpl_initIDs
Java_sun_nio_ch_DatagramChannelImpl_receive0
Java_sun_nio_ch_DatagramChannelImpl_send0
Java_sun_nio_ch_DatagramDispatcher_read0
Java_sun_nio_ch_DatagramDispatcher_readv0
Java_sun_nio_ch_DatagramDispatcher_write0
Java_sun_nio_ch_DatagramDispatcher_writev0
Java_sun_nio_ch_EPollArrayWrapper_epollCreate
Java_sun_nio_ch_EPollArrayWrapper_epollCtl
Java_sun_nio_ch_EPollArrayWrapper_epollWait
Java_sun_nio_ch_EPollArrayWrapper_init
Java_sun_nio_ch_EPollArrayWrapper_interrupt
Java_sun_nio_ch_EPollArrayWrapper_offsetofData
Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent
Java_sun_nio_ch_FileChannelImpl_close0
Java_sun_nio_ch_FileChannelImpl_initIDs
Java_sun_nio_ch_FileChannelImpl_map0
Java_sun_nio_ch_FileChannelImpl_position0
Java_sun_nio_ch_FileChannelImpl_transferTo0
Java_sun_nio_ch_FileChannelImpl_unmap0
Java_sun_nio_ch_FileDispatcherImpl_close0
Java_sun_nio_ch_FileDispatcherImpl_closeIntFD
Java_sun_nio_ch_FileDispatcherImpl_force0
Java_sun_nio_ch_FileDispatcherImpl_init
Java_sun_nio_ch_FileDispatcherImpl_lock0
Java_sun_nio_ch_FileDispatcherImpl_pread0
Java_sun_nio_ch_FileDispatcherImpl_preClose0
Java_sun_nio_ch_FileDispatcherImpl_pwrite0
Java_sun_nio_ch_FileDispatcherImpl_read0
Java_sun_nio_ch_FileDispatcherImpl_readv0
Java_sun_nio_ch_FileDispatcherImpl_release0
Java_sun_nio_ch_FileDispatcherImpl_size0
Java_sun_nio_ch_FileDispatcherImpl_truncate0
Java_sun_nio_ch_FileDispatcherImpl_write0
Java_sun_nio_ch_FileDispatcherImpl_writev0
Java_sun_nio_ch_FileKey_init
Java_sun_nio_ch_FileKey_initIDs
Java_sun_nio_ch_IOUtil_configureBlocking
Java_sun_nio_ch_IOUtil_drain
Java_sun_nio_ch_IOUtil_fdLimit
Java_sun_nio_ch_IOUtil_fdVal
Java_sun_nio_ch_IOUtil_initIDs
Java_sun_nio_ch_IOUtil_iovMax
Java_sun_nio_ch_IOUtil_makePipe
Java_sun_nio_ch_IOUtil_randomBytes
Java_sun_nio_ch_IOUtil_setfdVal
Java_sun_nio_ch_InheritedChannel_close0
Java_sun_nio_ch_InheritedChannel_dup
Java_sun_nio_ch_InheritedChannel_dup2
Java_sun_nio_ch_InheritedChannel_open0
Java_sun_nio_ch_InheritedChannel_peerAddress0
Java_sun_nio_ch_InheritedChannel_peerPort0
Java_sun_nio_ch_InheritedChannel_soType0
Java_sun_nio_ch_NativeThread_current
Java_sun_nio_ch_NativeThread_init
Java_sun_nio_ch_NativeThread_signal
Java_sun_nio_ch_Net_bind0
Java_sun_nio_ch_Net_blockOrUnblock4
Java_sun_nio_ch_Net_blockOrUnblock6
Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0
Java_sun_nio_ch_Net_canJoin6WithIPv4Group0
Java_sun_nio_ch_Net_connect0
Java_sun_nio_ch_Net_getInterface4
Java_sun_nio_ch_Net_getInterface6
Java_sun_nio_ch_Net_getIntOption0
Java_sun_nio_ch_Net_initIDs
Java_sun_nio_ch_Net_isExclusiveBindAvailable
Java_sun_nio_ch_Net_isIPv6Available0
Java_sun_nio_ch_Net_joinOrDrop4
Java_sun_nio_ch_Net_joinOrDrop6
Java_sun_nio_ch_Net_listen
Java_sun_nio_ch_Net_localInetAddress
Java_sun_nio_ch_Net_localPort
Java_sun_nio_ch_Net_poll
Java_sun_nio_ch_Net_pollconnValue
Java_sun_nio_ch_Net_pollerrValue
Java_sun_nio_ch_Net_pollhupValue
Java_sun_nio_ch_Net_pollinValue
Java_sun_nio_ch_Net_pollnvalValue
Java_sun_nio_ch_Net_polloutValue
Java_sun_nio_ch_Net_setInterface4
Java_sun_nio_ch_Net_setInterface6
Java_sun_nio_ch_Net_setIntOption0
Java_sun_nio_ch_Net_shutdown
Java_sun_nio_ch_Net_socket0
Java_sun_nio_ch_PollArrayWrapper_interrupt
Java_sun_nio_ch_PollArrayWrapper_poll0
Java_sun_nio_ch_ServerSocketChannelImpl_accept0
Java_sun_nio_ch_ServerSocketChannelImpl_initIDs
Java_sun_nio_ch_SocketChannelImpl_checkConnect
Java_sun_nio_ch_SocketChannelImpl_sendOutOfBandData
Java_sun_nio_fs_UnixNativeDispatcher_access0
Java_sun_nio_fs_UnixNativeDispatcher_chmod0
Java_sun_nio_fs_UnixNativeDispatcher_chown0
Java_sun_nio_fs_UnixNativeDispatcher_close
Java_sun_nio_fs_UnixNativeDispatcher_closedir
Java_sun_nio_fs_UnixNativeDispatcher_dup
Java_sun_nio_fs_UnixNativeDispatcher_fchmod
Java_sun_nio_fs_UnixNativeDispatcher_fchown
Java_sun_nio_fs_UnixNativeDispatcher_fclose
Java_sun_nio_fs_UnixNativeDispatcher_fdopendir
Java_sun_nio_fs_UnixNativeDispatcher_fopen0
Java_sun_nio_fs_UnixNativeDispatcher_fpathconf
Java_sun_nio_fs_UnixNativeDispatcher_fstat
Java_sun_nio_fs_UnixNativeDispatcher_fstatat0
Java_sun_nio_fs_UnixNativeDispatcher_futimes
Java_sun_nio_fs_UnixNativeDispatcher_getcwd
Java_sun_nio_fs_UnixNativeDispatcher_getgrgid
Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0
Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0
Java_sun_nio_fs_UnixNativeDispatcher_getpwuid
Java_sun_nio_fs_UnixNativeDispatcher_init
Java_sun_nio_fs_UnixNativeDispatcher_lchown0
Java_sun_nio_fs_UnixNativeDispatcher_link0
Java_sun_nio_fs_UnixNativeDispatcher_lstat0
Java_sun_nio_fs_UnixNativeDispatcher_mkdir0
Java_sun_nio_fs_UnixNativeDispatcher_mknod0
Java_sun_nio_fs_UnixNativeDispatcher_open0
Java_sun_nio_fs_UnixNativeDispatcher_openat0
Java_sun_nio_fs_UnixNativeDispatcher_opendir0
Java_sun_nio_fs_UnixNativeDispatcher_pathconf0
Java_sun_nio_fs_UnixNativeDispatcher_read
Java_sun_nio_fs_UnixNativeDispatcher_readdir
Java_sun_nio_fs_UnixNativeDispatcher_readlink0
Java_sun_nio_fs_UnixNativeDispatcher_realpath0
Java_sun_nio_fs_UnixNativeDispatcher_rename0
Java_sun_nio_fs_UnixNativeDispatcher_renameat0
Java_sun_nio_fs_UnixNativeDispatcher_rmdir0
Java_sun_nio_fs_UnixNativeDispatcher_stat0
Java_sun_nio_fs_UnixNativeDispatcher_statvfs0
Java_sun_nio_fs_UnixNativeDispatcher_strerror
Java_sun_nio_fs_UnixNativeDispatcher_symlink0
Java_sun_nio_fs_UnixNativeDispatcher_unlink0
Java_sun_nio_fs_UnixNativeDispatcher_unlinkat0
Java_sun_nio_fs_UnixNativeDispatcher_utimes0
Java_sun_nio_fs_UnixNativeDispatcher_write

View File

@ -1,21 +0,0 @@
#!/usr/bin/env python
# Generate a static symbol table suitable for an environment with no runtime dynamic linker.
# The table must be sorted as we scan it using a binary search.
import os
cmd = "nm --defined-only ../../../build/linux-x86_64-debug-openjdk-src/libavian.a | awk '{print $3}' | egrep '^(Avian|Java|JVM)_.*'"
fname = "dispatch_table.txt"
os.system("echo '# This file lists all the JNI symbols that can be looked up. It was generated by gen_dispatch_table.py' >%s; %s >> %s" % (fname, cmd, fname))
entries = [l.strip() for l in open(fname, "r").readlines() if not l.startswith("#")]
entries.sort()
template_lines = file("dispatch_table.cpp.template").readlines()
externs_index = template_lines.index("// EXTERNS HERE\n")
externs = ["void %s();\n" % entry for entry in entries]
template_lines[externs_index:externs_index + 1] = externs
dispatch_entries = ["{ \"%s\", vm::voidPointer(%s) },\n" % (e, e) for e in entries]
dispatch_entries_index = template_lines.index("// ENTRIES HERE\n")
template_lines[dispatch_entries_index:dispatch_entries_index + 1] = dispatch_entries
file("dispatch_table.cpp", "w").writelines(template_lines)