diff options
author | Siarhei Vishniakou <svv@google.com> | 2017-08-25 21:44:01 -0700 |
---|---|---|
committer | Siarhei Vishniakou <svv@google.com> | 2017-08-26 05:05:19 +0000 |
commit | 388ca7feb019bdacdfc7994149909b5b68ae1b1e (patch) | |
tree | b4b4e41e89d7abdd027b43819d3293648056ba81 /cmds/hid | |
parent | d499ae5a853937fba88196e418f9cfa1b2f583ce (diff) |
DO NOT MERGE Use CREATE instead of CREATE2 for 3.10 kernel
CREATE2 structs were introduced after kernel 3.18,
so cannot compile user code with uapi headers from
newer 3.18+ kernels. If using CREATE structs then
compatibility is preserved.
Bug: 64981084
Test: bit
Change-Id: I97c7725918b09a817a51c13384ac2d55a6cfab25
CtsHardwareTestCases:android.hardware.input.cts.tests.GamepadTestCase
Diffstat (limited to 'cmds/hid')
-rw-r--r-- | cmds/hid/jni/com_android_commands_hid_Device.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/cmds/hid/jni/com_android_commands_hid_Device.cpp b/cmds/hid/jni/com_android_commands_hid_Device.cpp index 107dc863ef66..bf2e45c60a81 100644 --- a/cmds/hid/jni/com_android_commands_hid_Device.cpp +++ b/cmds/hid/jni/com_android_commands_hid_Device.cpp @@ -101,16 +101,15 @@ Device* Device::open(int32_t id, const char* name, int32_t vid, int32_t pid, struct uhid_event ev; memset(&ev, 0, sizeof(ev)); - ev.type = UHID_CREATE2; - strncpy((char*)ev.u.create2.name, name, UHID_MAX_NAME_LENGTH); - memcpy(&ev.u.create2.rd_data, descriptor.get(), - descriptorSize * sizeof(ev.u.create2.rd_data[0])); - ev.u.create2.rd_size = descriptorSize; - ev.u.create2.bus = BUS_BLUETOOTH; - ev.u.create2.vendor = vid; - ev.u.create2.product = pid; - ev.u.create2.version = 0; - ev.u.create2.country = 0; + ev.type = UHID_CREATE; + strncpy((char*)ev.u.create.name, name, UHID_MAX_NAME_LENGTH); + ev.u.create.rd_data = descriptor.get(); + ev.u.create.rd_size = descriptorSize; + ev.u.create.bus = BUS_BLUETOOTH; + ev.u.create.vendor = vid; + ev.u.create.product = pid; + ev.u.create.version = 0; + ev.u.create.country = 0; errno = 0; ssize_t ret = TEMP_FAILURE_RETRY(::write(fd, &ev, sizeof(ev))); @@ -159,9 +158,9 @@ Device::~Device() { void Device::sendReport(uint8_t* report, size_t reportSize) { struct uhid_event ev; memset(&ev, 0, sizeof(ev)); - ev.type = UHID_INPUT2; - ev.u.input2.size = reportSize; - memcpy(&ev.u.input2.data, report, reportSize); + ev.type = UHID_INPUT; + ev.u.input.size = reportSize; + memcpy(&ev.u.input.data, report, reportSize); ssize_t ret = TEMP_FAILURE_RETRY(::write(mFd, &ev, sizeof(ev))); if (ret < 0 || ret != sizeof(ev)) { LOGE("Failed to send hid event: %s", strerror(errno)); |