+
+ 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)
+ g_assert_not_reached ();
+ return -1;
+#else
+ return msync(address, size, MS_SYNC);
+#endif
+ }