[Spice-devel] [PATCH v7 05/20] usb-backend: add guard and doc to check_filter()

Victor Toso victortoso at redhat.com
Mon Sep 16 10:20:48 UTC 2019


From: Victor Toso <me at victortoso.com>

* Add documentation on spice_usb_backend_device_check_filter()
* Add guard on libusb_device
* Adds G_GNUCE_INTERNAL as this is only called internally in
  usb-device-manager.c
* Changed the style a bit, still under 100 char in a single line

This is a preparatory patch for extending usb-backend for emulated
devices.

Signed-off-by: Victor Toso <victortoso at redhat.com>
---
 src/usb-backend.c | 13 ++++++-------
 src/usb-backend.h |  4 +++-
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/usb-backend.c b/src/usb-backend.c
index 3258240..6ed957c 100644
--- a/src/usb-backend.c
+++ b/src/usb-backend.c
@@ -368,7 +368,6 @@ gboolean spice_usb_backend_device_isoch(SpiceUsbBackendDevice *dev)
         return dev->cached_isochronous;
     }
 
-
     rc = libusb_get_active_config_descriptor(libdev, &conf_desc);
     if (rc) {
         const char *desc = libusb_strerror(rc);
@@ -566,13 +565,13 @@ void spice_usb_backend_device_unref(SpiceUsbBackendDevice *dev)
     }
 }
 
-int spice_usb_backend_device_check_filter(
-    SpiceUsbBackendDevice *dev,
-    const struct usbredirfilter_rule *rules,
-    int count)
+G_GNUC_INTERNAL
+int spice_usb_backend_device_check_filter(SpiceUsbBackendDevice *dev,
+                                          const struct usbredirfilter_rule *rules,
+                                          int count)
 {
-    return usbredirhost_check_device_filter(
-        rules, count, dev->libusb_device, 0);
+    g_return_val_if_fail(dev->libusb_device != NULL, -EINVAL);
+    return usbredirhost_check_device_filter(rules, count, dev->libusb_device, 0);
 }
 
 static int usbredir_read_callback(void *user_data, uint8_t *data, int count)
diff --git a/src/usb-backend.h b/src/usb-backend.h
index 46b742e..46713c1 100644
--- a/src/usb-backend.h
+++ b/src/usb-backend.h
@@ -70,7 +70,9 @@ void spice_usb_backend_device_unref(SpiceUsbBackendDevice *dev);
 gconstpointer spice_usb_backend_device_get_libdev(const SpiceUsbBackendDevice *dev);
 const UsbDeviceInformation* spice_usb_backend_device_get_info(const SpiceUsbBackendDevice *dev);
 gboolean spice_usb_backend_device_isoch(SpiceUsbBackendDevice *dev);
-/* returns 0 if the device passes the filter */
+
+/* returns 0 if the device passes the filter otherwise returns the error value from
+ * usbredirhost_check_device_filter() such as -EIO or -ENOMEM */
 int spice_usb_backend_device_check_filter(SpiceUsbBackendDevice *dev,
                                           const struct usbredirfilter_rule *rules, int count);
 
-- 
2.21.0



More information about the Spice-devel mailing list