Merge "DO NOT MERGE Use CREATE instead of CREATE2 for 3.10 kernel" into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-08-26 11:26:42 +00:00
committed by Android (Google) Code Review

View File

@@ -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));