[Spice-devel] [PATCH spice-gtk v2 07/33] fixup! usb-redir: extend USB backend to support emulated devices
Frediano Ziglio
fziglio at redhat.com
Fri Aug 9 14:26:25 UTC 2019
---
src/usb-backend.c | 79 +++++++++++++++++++++--------------------------
1 file changed, 36 insertions(+), 43 deletions(-)
diff --git a/src/usb-backend.c b/src/usb-backend.c
index bed431c3..9aee6c7d 100644
--- a/src/usb-backend.c
+++ b/src/usb-backend.c
@@ -579,8 +579,7 @@ static int check_edev_device_filter(SpiceUsbBackendDevice *dev,
if (!edev) {
return 1;
}
- if (!device_ops(edev)->get_descriptor(
- edev, LIBUSB_DT_CONFIG, 0, (void **)&cfg, &size)) {
+ if (!device_ops(edev)->get_descriptor(edev, LIBUSB_DT_CONFIG, 0, (void **)&cfg, &size)) {
return 1;
}
while ((offset + 1) < size) {
@@ -598,25 +597,21 @@ static int check_edev_device_filter(SpiceUsbBackendDevice *dev,
offset += len;
}
- return usbredirfilter_check(
- rules, count,
- dev->device_info.class,
- dev->device_info.subclass,
- dev->device_info.protocol,
- cls, subcls, proto, ifnum,
- dev->device_info.vid,
- dev->device_info.pid,
- dev->device_info.bcdUSB, 0);
+ return usbredirfilter_check(rules, count,
+ dev->device_info.class,
+ dev->device_info.subclass,
+ dev->device_info.protocol,
+ cls, subcls, proto, ifnum,
+ dev->device_info.vid,
+ dev->device_info.pid,
+ dev->device_info.bcdUSB, 0);
}
-int spice_usb_backend_device_check_filter(
- SpiceUsbBackendDevice *dev,
- const struct usbredirfilter_rule *rules,
- int count)
+int spice_usb_backend_device_check_filter(SpiceUsbBackendDevice *dev,
+ const struct usbredirfilter_rule *rules, int count)
{
if (dev->libusb_device) {
- return usbredirhost_check_device_filter(
- rules, count, dev->libusb_device, 0);
+ return usbredirhost_check_device_filter(rules, count, dev->libusb_device, 0);
} else {
return check_edev_device_filter(dev, rules, count);
}
@@ -824,9 +819,8 @@ static void usbredir_control_packet(void *priv,
} else if (reqtype == (LIBUSB_REQUEST_TYPE_STANDARD | LIBUSB_RECIPIENT_DEVICE) &&
h->request == LIBUSB_REQUEST_GET_DESCRIPTOR) {
uint16_t size;
- done = device_ops(edev)->get_descriptor(
- edev, h->value >> 8, h->value & 0xff,
- &out_buffer, &size);
+ done = device_ops(edev)->get_descriptor(edev, h->value >> 8, h->value & 0xff,
+ &out_buffer, &size);
response.length = size;
if (done) {
response.status = 0;
@@ -835,8 +829,7 @@ static void usbredir_control_packet(void *priv,
}
if (!done) {
- device_ops(edev)->control_request(
- edev, data, data_len, &response, &out_buffer);
+ device_ops(edev)->control_request(edev, data, data_len, &response, &out_buffer);
done = TRUE;
}
@@ -848,10 +841,9 @@ static void usbredir_control_packet(void *priv,
SPICE_DEBUG("%s responding with payload of %02X, status %X",
__FUNCTION__, response.length, response.status);
- usbredirparser_send_control_packet(
- ch->parser, id, &response,
- response.length ? out_buffer : NULL,
- response.length);
+ usbredirparser_send_control_packet(ch->parser, id, &response,
+ response.length ? out_buffer : NULL,
+ response.length);
usbredir_write_flush_callback(ch);
usbredirparser_free_packet_data(ch->parser, data);
@@ -1040,8 +1032,7 @@ static void usbredir_hello(void *priv,
if (!edev) {
return;
}
- if (!device_ops(edev)->get_descriptor(
- edev, LIBUSB_DT_CONFIG, 0, (void **)&cfg, &size)) {
+ if (!device_ops(edev)->get_descriptor(edev, LIBUSB_DT_CONFIG, 0, (void **)&cfg, &size)) {
return;
}
while ((offset + 1) < size) {
@@ -1303,27 +1294,29 @@ SpiceUsbBackendChannel *spice_usb_backend_channel_new(SpiceUsbBackend *be,
ch->user_data = SPICE_USBREDIR_CHANNEL(user_data);
if (be->libusb_context) {
ch->backend = be;
- ch->usbredirhost = usbredirhost_open_full(
- be->libusb_context,
- NULL,
- usbredir_log,
- usbredir_read_callback,
- usbredir_write_callback,
- usbredir_write_flush_callback,
- usbredir_alloc_lock,
- usbredir_lock_lock,
- usbredir_unlock_lock,
- usbredir_free_lock,
- ch, PACKAGE_STRING,
- spice_util_get_debug() ? usbredirparser_debug : usbredirparser_warning,
- usbredirhost_fl_write_cb_owns_buffer);
+ ch->usbredirhost =
+ usbredirhost_open_full(be->libusb_context,
+ NULL,
+ usbredir_log,
+ usbredir_read_callback,
+ usbredir_write_callback,
+ usbredir_write_flush_callback,
+ usbredir_alloc_lock,
+ usbredir_lock_lock,
+ usbredir_unlock_lock,
+ usbredir_free_lock,
+ ch, PACKAGE_STRING,
+ spice_util_get_debug() ? usbredirparser_debug :
+ usbredirparser_warning,
+ usbredirhost_fl_write_cb_owns_buffer);
g_warn_if_fail(ch->usbredirhost != NULL);
}
if (ch->usbredirhost) {
ch->hidden_parser = create_parser(ch);
ch->hidden_host = ch->usbredirhost;
- usbredirhost_set_buffered_output_size_cb(ch->usbredirhost, usbredir_buffered_output_size_callback);
+ usbredirhost_set_buffered_output_size_cb(ch->usbredirhost,
+ usbredir_buffered_output_size_callback);
}
if (!ch->hidden_parser) {
--
2.20.1
More information about the Spice-devel
mailing list