am 27a647bf: Merge "AArch64: Use long for pointers in android/os/MemoryFile"
* commit '27a647bf382f12aea6d0c9584302423e1c44fbb0': AArch64: Use long for pointers in android/os/MemoryFile
This commit is contained in:
@@ -43,19 +43,19 @@ public class MemoryFile
|
||||
|
||||
private static native FileDescriptor native_open(String name, int length) throws IOException;
|
||||
// returns memory address for ashmem region
|
||||
private static native int native_mmap(FileDescriptor fd, int length, int mode)
|
||||
private static native long native_mmap(FileDescriptor fd, int length, int mode)
|
||||
throws IOException;
|
||||
private static native void native_munmap(int addr, int length) throws IOException;
|
||||
private static native void native_munmap(long addr, int length) throws IOException;
|
||||
private static native void native_close(FileDescriptor fd);
|
||||
private static native int native_read(FileDescriptor fd, int address, byte[] buffer,
|
||||
private static native int native_read(FileDescriptor fd, long address, byte[] buffer,
|
||||
int srcOffset, int destOffset, int count, boolean isUnpinned) throws IOException;
|
||||
private static native void native_write(FileDescriptor fd, int address, byte[] buffer,
|
||||
private static native void native_write(FileDescriptor fd, long address, byte[] buffer,
|
||||
int srcOffset, int destOffset, int count, boolean isUnpinned) throws IOException;
|
||||
private static native void native_pin(FileDescriptor fd, boolean pin) throws IOException;
|
||||
private static native int native_get_size(FileDescriptor fd) throws IOException;
|
||||
|
||||
private FileDescriptor mFD; // ashmem file descriptor
|
||||
private int mAddress; // address of ashmem memory
|
||||
private long mAddress; // address of ashmem memory
|
||||
private int mLength; // total length of our ashmem region
|
||||
private boolean mAllowPurging = false; // true if our ashmem region is unpinned
|
||||
|
||||
|
||||
@@ -43,17 +43,17 @@ static jobject android_os_MemoryFile_open(JNIEnv* env, jobject clazz, jstring na
|
||||
return jniCreateFileDescriptor(env, result);
|
||||
}
|
||||
|
||||
static jint android_os_MemoryFile_mmap(JNIEnv* env, jobject clazz, jobject fileDescriptor,
|
||||
static jlong android_os_MemoryFile_mmap(JNIEnv* env, jobject clazz, jobject fileDescriptor,
|
||||
jint length, jint prot)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
|
||||
jint result = (jint)mmap(NULL, length, prot, MAP_SHARED, fd, 0);
|
||||
jlong result = (jlong)mmap(NULL, length, prot, MAP_SHARED, fd, 0);
|
||||
if (!result)
|
||||
jniThrowException(env, "java/io/IOException", "mmap failed");
|
||||
return result;
|
||||
}
|
||||
|
||||
static void android_os_MemoryFile_munmap(JNIEnv* env, jobject clazz, jint addr, jint length)
|
||||
static void android_os_MemoryFile_munmap(JNIEnv* env, jobject clazz, jlong addr, jint length)
|
||||
{
|
||||
int result = munmap((void *)addr, length);
|
||||
if (result < 0)
|
||||
@@ -70,7 +70,7 @@ static void android_os_MemoryFile_close(JNIEnv* env, jobject clazz, jobject file
|
||||
}
|
||||
|
||||
static jint android_os_MemoryFile_read(JNIEnv* env, jobject clazz,
|
||||
jobject fileDescriptor, jint address, jbyteArray buffer, jint srcOffset, jint destOffset,
|
||||
jobject fileDescriptor, jlong address, jbyteArray buffer, jint srcOffset, jint destOffset,
|
||||
jint count, jboolean unpinned)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
|
||||
@@ -89,7 +89,7 @@ static jint android_os_MemoryFile_read(JNIEnv* env, jobject clazz,
|
||||
}
|
||||
|
||||
static jint android_os_MemoryFile_write(JNIEnv* env, jobject clazz,
|
||||
jobject fileDescriptor, jint address, jbyteArray buffer, jint srcOffset, jint destOffset,
|
||||
jobject fileDescriptor, jlong address, jbyteArray buffer, jint srcOffset, jint destOffset,
|
||||
jint count, jboolean unpinned)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
|
||||
@@ -138,11 +138,11 @@ static jint android_os_MemoryFile_get_size(JNIEnv* env, jobject clazz,
|
||||
|
||||
static const JNINativeMethod methods[] = {
|
||||
{"native_open", "(Ljava/lang/String;I)Ljava/io/FileDescriptor;", (void*)android_os_MemoryFile_open},
|
||||
{"native_mmap", "(Ljava/io/FileDescriptor;II)I", (void*)android_os_MemoryFile_mmap},
|
||||
{"native_munmap", "(II)V", (void*)android_os_MemoryFile_munmap},
|
||||
{"native_mmap", "(Ljava/io/FileDescriptor;II)J", (void*)android_os_MemoryFile_mmap},
|
||||
{"native_munmap", "(JI)V", (void*)android_os_MemoryFile_munmap},
|
||||
{"native_close", "(Ljava/io/FileDescriptor;)V", (void*)android_os_MemoryFile_close},
|
||||
{"native_read", "(Ljava/io/FileDescriptor;I[BIIIZ)I", (void*)android_os_MemoryFile_read},
|
||||
{"native_write", "(Ljava/io/FileDescriptor;I[BIIIZ)V", (void*)android_os_MemoryFile_write},
|
||||
{"native_read", "(Ljava/io/FileDescriptor;J[BIIIZ)I", (void*)android_os_MemoryFile_read},
|
||||
{"native_write", "(Ljava/io/FileDescriptor;J[BIIIZ)V", (void*)android_os_MemoryFile_write},
|
||||
{"native_pin", "(Ljava/io/FileDescriptor;Z)V", (void*)android_os_MemoryFile_pin},
|
||||
{"native_get_size", "(Ljava/io/FileDescriptor;)I",
|
||||
(void*)android_os_MemoryFile_get_size}
|
||||
|
||||
Reference in New Issue
Block a user