AArch64: Use long for pointers in hardware classes

For storing pointers, long is used in hardware classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Icdeb67f9273fb2d8f6d88ca68d7f7d0950796fc1
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
diff --git a/core/jni/android_hardware_UsbRequest.cpp b/core/jni/android_hardware_UsbRequest.cpp
index 32d5135..01eaec4 100644
--- a/core/jni/android_hardware_UsbRequest.cpp
+++ b/core/jni/android_hardware_UsbRequest.cpp
@@ -32,7 +32,7 @@
 
 struct usb_request* get_request_from_object(JNIEnv* env, jobject java_request)
 {
-    return (struct usb_request*)env->GetIntField(java_request, field_context);
+    return (struct usb_request*)env->GetLongField(java_request, field_context);
 }
 
 // in android_hardware_UsbDeviceConnection.cpp
@@ -61,7 +61,7 @@
 
     struct usb_request* request = usb_request_new(device, &desc);
     if (request)
-        env->SetIntField(thiz, field_context, (int)request);
+        env->SetLongField(thiz, field_context, (jlong)request);
     return (request != NULL);
 }
 
@@ -72,7 +72,7 @@
     struct usb_request* request = get_request_from_object(env, thiz);
     if (request) {
         usb_request_free(request);
-        env->SetIntField(thiz, field_context, 0);
+        env->SetLongField(thiz, field_context, 0);
     }
 }
 
@@ -114,14 +114,14 @@
     }
 }
 
-static int
+static jint
 android_hardware_UsbRequest_dequeue_array(JNIEnv *env, jobject thiz,
         jbyteArray buffer, jint length, jboolean out)
 {
     struct usb_request* request = get_request_from_object(env, thiz);
     if (!request) {
         ALOGE("request is closed in native_dequeue");
-        return -1;
+        return (jint) -1;
     }
 
     if (buffer && length && request->buffer && !out) {
@@ -130,7 +130,7 @@
     }
     free(request->buffer);
     env->DeleteGlobalRef((jobject)request->client_data);
-    return request->actual_length;
+    return (jint) request->actual_length;
 }
 
 static jboolean
@@ -164,17 +164,17 @@
     }
 }
 
-static int
+static jint
 android_hardware_UsbRequest_dequeue_direct(JNIEnv *env, jobject thiz)
 {
     struct usb_request* request = get_request_from_object(env, thiz);
     if (!request) {
         ALOGE("request is closed in native_dequeue");
-        return -1;
+        return (jint) -1;
     }
     // all we need to do is delete our global ref
     env->DeleteGlobalRef((jobject)request->client_data);
-    return request->actual_length;
+    return (jint) request->actual_length;
 }
 
 static jboolean
@@ -207,7 +207,7 @@
         ALOGE("Can't find android/hardware/usb/UsbRequest");
         return -1;
     }
-    field_context = env->GetFieldID(clazz, "mNativeContext", "I");
+    field_context = env->GetFieldID(clazz, "mNativeContext", "J");
     if (field_context == NULL) {
         ALOGE("Can't find UsbRequest.mNativeContext");
         return -1;