diff --git a/ikvm-native/jni.c b/ikvm-native/jni.c index dec858e131f66..e638db1d76f34 100644 --- a/ikvm-native/jni.c +++ b/ikvm-native/jni.c @@ -486,11 +486,15 @@ static void* JNIEnv_vtable[] = 0 // jlong JNICALL GetDirectBufferCapacity(jobject buf); }; -JNIEXPORT void** JNICALL ikvm_GetJNIEnvVTable() +void** ikvm_GetJNIEnvVTable(void); + +JNIEXPORT void** JNICALL ikvm_GetJNIEnvVTable(void) { return JNIEnv_vtable; } +void* JNICALL ikvm_MarshalDelegate(void* p); + JNIEXPORT void* JNICALL ikvm_MarshalDelegate(void* p) { return p; @@ -498,6 +502,8 @@ JNIEXPORT void* JNICALL ikvm_MarshalDelegate(void* p) typedef jint (JNICALL *PJNI_ONLOAD)(JavaVM* vm, void* reserved); +jint JNICALL ikvm_CallOnLoad(PJNI_ONLOAD method, JavaVM* vm, void* reserved); + JNIEXPORT jint JNICALL ikvm_CallOnLoad(PJNI_ONLOAD method, JavaVM* vm, void* reserved) { return method(vm, reserved); diff --git a/ikvm-native/os.c b/ikvm-native/os.c index 9f2115f712ba6..43531ae0ea5b5 100644 --- a/ikvm-native/os.c +++ b/ikvm-native/os.c @@ -61,16 +61,22 @@ #include #include "jni.h" + void* JNICALL ikvm_LoadLibrary(char* psz); + JNIEXPORT void* JNICALL ikvm_LoadLibrary(char* psz) { return g_module_open(psz, 0); } + void JNICALL ikvm_FreeLibrary(GModule* handle); + JNIEXPORT void JNICALL ikvm_FreeLibrary(GModule* handle) { g_module_close(handle); } + void* JNICALL ikvm_GetProcAddress(GModule* handle, char* name, jint argc); + JNIEXPORT void* JNICALL ikvm_GetProcAddress(GModule* handle, char* name, jint argc) { void *symbol; @@ -83,16 +89,22 @@ return NULL; } + void* JNICALL ikvm_mmap(int fd, jboolean writeable, jboolean copy_on_write, jlong position, jint size); + JNIEXPORT void* JNICALL ikvm_mmap(int fd, jboolean writeable, jboolean copy_on_write, jlong position, jint size) { return mmap(0, size, writeable ? PROT_WRITE | PROT_READ : PROT_READ, copy_on_write ? MAP_PRIVATE : MAP_SHARED, fd, position); } + int JNICALL ikvm_munmap(void* address, jint size); + JNIEXPORT int JNICALL ikvm_munmap(void* address, jint size) { return munmap(address, size); } + int JNICALL ikvm_msync(void* address, jint size); + JNIEXPORT int JNICALL ikvm_msync(void* address, jint size) { #if defined(__native_client__) && defined(USE_NEWLIB)