Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 759ccebf authored by Elliott Hughes's avatar Elliott Hughes Committed by Automerger Merge Worker
Browse files

Merge "usb: remove duplication in descriptor reading code." am: b612fc8f am: 2a4deb39

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1954916

Change-Id: I20550ead86ec32082704318637c46cbd80a74169
parents 2495949c 2a4deb39
Loading
Loading
Loading
Loading
+9 −24
Original line number Diff line number Diff line
@@ -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
+0 −1
Original line number Diff line number Diff line
@@ -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>
+6 −25
Original line number Diff line number Diff line
@@ -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 <usbhost/usbhost.h>
#include "utils/Log.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(
+0 −1
Original line number Diff line number Diff line
@@ -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>
+0 −3
Original line number Diff line number Diff line
@@ -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
{