static ssize_t writeUsbData (GioHandle *handle, const void *data, size_t size, int timeout) { UsbChannel *channel = handle->channel; { GioUsbWriteDataMethod *method = handle->properties.writeData; if (method) { return method(channel->device, &channel->definition, data, size, timeout); } } if (channel->definition.outputEndpoint) { return usbWriteData(channel->device, channel->definition.outputEndpoint, data, size, timeout); } { const UsbSerialOperations *serial = usbGetSerialOperations(channel->device); if (serial) { if (serial->writeData) { return serial->writeData(channel->device, data, size); } } } errno = ENOSYS; return -1; }
static ssize_t writeUsbData (GioHandle *handle, const void *data, size_t size, int timeout) { UsbChannel *channel = handle->usb.channel; if (channel->definition.outputEndpoint) { return usbWriteEndpoint(channel->device, channel->definition.outputEndpoint, data, size, timeout); } { const UsbSerialOperations *serial = usbGetSerialOperations(channel->device); if (serial) { if (serial->writeData) { return serial->writeData(channel->device, data, size); } } } errno = ENOSYS; return -1; }