Merge "usb: remove duplication in descriptor reading code."
This commit is contained in:
@@ -16,20 +16,19 @@
|
||||
|
||||
#define LOG_TAG "UsbDeviceConnectionJNI"
|
||||
|
||||
#include "utils/Log.h"
|
||||
|
||||
#include "jni.h"
|
||||
#include <fcntl.h>
|
||||
#include <nativehelper/JNIPlatformHelp.h>
|
||||
#include "core_jni_helpers.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <usbhost/usbhost.h>
|
||||
#include <usbhost/usbhost_jni.h>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include "core_jni_helpers.h"
|
||||
#include "jni.h"
|
||||
#include "utils/Log.h"
|
||||
|
||||
using namespace android;
|
||||
using namespace std::chrono;
|
||||
@@ -91,22 +90,8 @@ android_hardware_UsbDeviceConnection_get_fd(JNIEnv *env, jobject thiz)
|
||||
static jbyteArray
|
||||
android_hardware_UsbDeviceConnection_get_desc(JNIEnv *env, jobject thiz)
|
||||
{
|
||||
char buffer[16384];
|
||||
int fd = android_hardware_UsbDeviceConnection_get_fd(env, thiz);
|
||||
if (fd < 0) return NULL;
|
||||
lseek(fd, 0, SEEK_SET);
|
||||
int length = read(fd, buffer, sizeof(buffer));
|
||||
if (length < 0) return NULL;
|
||||
|
||||
jbyteArray ret = env->NewByteArray(length);
|
||||
if (ret) {
|
||||
jbyte* bytes = (jbyte*)env->GetPrimitiveArrayCritical(ret, 0);
|
||||
if (bytes) {
|
||||
memcpy(bytes, buffer, length);
|
||||
env->ReleasePrimitiveArrayCritical(ret, bytes, 0);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
return usb_jni_read_descriptors(env, fd);
|
||||
}
|
||||
|
||||
static jboolean
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
@@ -15,16 +15,14 @@
|
||||
*/
|
||||
|
||||
#define LOG_TAG "UsbHostManagerJNI"
|
||||
#include "utils/Log.h"
|
||||
|
||||
#include <nativehelper/JNIHelp.h>
|
||||
#include <stdlib.h>
|
||||
#include <usbhost/usbhost.h>
|
||||
#include <usbhost/usbhost_jni.h>
|
||||
|
||||
#include "jni.h"
|
||||
#include <nativehelper/JNIHelp.h>
|
||||
#include "utils/Log.h"
|
||||
|
||||
#include <usbhost/usbhost.h>
|
||||
|
||||
#define MAX_DESCRIPTORS_LENGTH 4096
|
||||
static const int USB_CONTROL_TRANSFER_TIMEOUT_MS = 200;
|
||||
|
||||
// com.android.server.usb.descriptors
|
||||
@@ -41,26 +39,9 @@ jbyteArray JNICALL Java_com_android_server_usb_descriptors_UsbDescriptorParser_g
|
||||
}
|
||||
|
||||
int fd = usb_device_get_fd(device);
|
||||
if (fd < 0) {
|
||||
usb_device_close(device);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// from android_hardware_UsbDeviceConnection_get_desc()
|
||||
jbyte buffer[MAX_DESCRIPTORS_LENGTH];
|
||||
lseek(fd, 0, SEEK_SET);
|
||||
int numBytes = read(fd, buffer, sizeof(buffer));
|
||||
jbyteArray ret = NULL;
|
||||
jbyteArray descriptors = usb_jni_read_descriptors(env, fd);
|
||||
usb_device_close(device);
|
||||
|
||||
if (numBytes > 0) {
|
||||
ret = env->NewByteArray(numBytes);
|
||||
env->SetByteArrayRegion(ret, 0, numBytes, buffer);
|
||||
} else {
|
||||
ALOGE("error reading descriptors\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
return descriptors;
|
||||
}
|
||||
|
||||
jstring JNICALL Java_com_android_server_usb_descriptors_UsbDescriptorParser_getDescriptorString_1native(
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#include "MtpDescriptors.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "android_runtime/Log.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
@@ -31,8 +30,6 @@
|
||||
|
||||
#include <usbhost/usbhost.h>
|
||||
|
||||
#define MAX_DESCRIPTORS_LENGTH 4096
|
||||
|
||||
namespace android
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user