[Spice-devel] [PATCH v7 04/10] Add SpiceUsbDeviceManager parameter to device comparison functions

Jonathon Jongsma jjongsma at redhat.com
Wed Feb 17 20:46:00 UTC 2016


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Thu, 2016-02-11 at 18:04 +0200, Dmitry Fleytman wrote:
> From: Christophe Fergeau <cfergeau at redhat.com>
> 
> This additional parameter is currently unused, but this is in
> preparation for the next commits.
> ---
>  src/usb-device-manager.c | 40 ++++++++++++++++++++++------------------
>  1 file changed, 22 insertions(+), 18 deletions(-)
> 
> diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
> index 2859d7e..69ad467 100644
> --- a/src/usb-device-manager.c
> +++ b/src/usb-device-manager.c
> @@ -185,8 +185,9 @@ static guint8 spice_usb_device_get_state(SpiceUsbDevice
> *device);
>  static void  spice_usb_device_set_state(SpiceUsbDevice *device, guint8 s);
>  #endif
>  
> -static gboolean spice_usb_device_equal_libdev(SpiceUsbDevice *device,
> -                                              libusb_device *libdev);
> +static gboolean spice_usb_manager_device_equal_libdev(SpiceUsbDeviceManager
> *manager,
> +                                                      SpiceUsbDevice *device,
> +                                                      libusb_device *libdev);
>  static libusb_device *
>  spice_usb_device_manager_device_to_libdev(SpiceUsbDeviceManager *self,
>                                            SpiceUsbDevice *device);
> @@ -670,7 +671,8 @@ static void
> spice_usb_device_manager_class_init(SpiceUsbDeviceManagerClass *klas
>  
>  #ifdef USE_GUDEV
>  static gboolean spice_usb_device_manager_get_udev_bus_n_address(
> -    GUdevDevice *udev, int *bus, int *address)
> +    SpiceUsbDeviceManager *manager, GUdevDevice *udev,
> +    int *bus, int *address)
>  {
>      const gchar *bus_str, *address_str;
>  
> @@ -823,7 +825,7 @@ static void
> spice_usb_device_manager_auto_connect_cb(GObject      *gobject,
>  
>  #ifndef G_OS_WIN32 /* match functions for Linux -- match by bus.addr */
>  static gboolean
> -spice_usb_device_manager_device_match(SpiceUsbDevice *device,
> +spice_usb_device_manager_device_match(SpiceUsbDeviceManager *self,
> SpiceUsbDevice *device,
>                                        const int bus, const int address)
>  {
>      return (spice_usb_device_get_busnum(device) == bus &&
> @@ -832,7 +834,7 @@ spice_usb_device_manager_device_match(SpiceUsbDevice
> *device,
>  
>  #ifdef USE_GUDEV
>  static gboolean
> -spice_usb_device_manager_libdev_match(libusb_device *libdev,
> +spice_usb_device_manager_libdev_match(SpiceUsbDeviceManager *self,
> libusb_device *libdev,
>                                        const int bus, const int address)
>  {
>      return (libusb_get_bus_number(libdev) == bus &&
> @@ -842,7 +844,7 @@ spice_usb_device_manager_libdev_match(libusb_device
> *libdev,
>  
>  #else /* Win32 -- match functions for Windows -- match by vid:pid */
>  static gboolean
> -spice_usb_device_manager_device_match(SpiceUsbDevice *device,
> +spice_usb_device_manager_device_match(SpiceUsbDeviceManager *self,
> SpiceUsbDevice *device,
>                                        const int vid, const int pid)
>  {
>      return (spice_usb_device_get_vid(device) == vid &&
> @@ -850,7 +852,7 @@ spice_usb_device_manager_device_match(SpiceUsbDevice
> *device,
>  }
>  
>  static gboolean
> -spice_usb_device_manager_libdev_match(libusb_device *libdev,
> +spice_usb_device_manager_libdev_match(SpiceUsbDeviceManager *self,
> libusb_device *libdev,
>                                        const int vid, const int pid)
>  {
>      int vid2, pid2;
> @@ -872,7 +874,7 @@ spice_usb_device_manager_find_device(SpiceUsbDeviceManager
> *self,
>  
>      for (i = 0; i < priv->devices->len; i++) {
>          curr = g_ptr_array_index(priv->devices, i);
> -        if (spice_usb_device_manager_device_match(curr, bus, address)) {
> +        if (spice_usb_device_manager_device_match(self, curr, bus, address))
> {
>              device = curr;
>              break;
>          }
> @@ -975,7 +977,7 @@ static void
> spice_usb_device_manager_add_udev(SpiceUsbDeviceManager  *self,
>      if (!devtype || strcmp(devtype, "usb_device"))
>          return;
>  
> -    if (!spice_usb_device_manager_get_udev_bus_n_address(udev, &bus,
> &address)) {
> +    if (!spice_usb_device_manager_get_udev_bus_n_address(self, udev, &bus,
> &address)) {
>          g_warning("USB device without bus number or device address");
>          return;
>      }
> @@ -996,7 +998,7 @@ static void
> spice_usb_device_manager_add_udev(SpiceUsbDeviceManager  *self,
>          libusb_get_device_list(priv->context, &dev_list);
>  
>      for (i = 0; dev_list && dev_list[i]; i++) {
> -        if (spice_usb_device_manager_libdev_match(dev_list[i], bus, address))
> {
> +        if (spice_usb_device_manager_libdev_match(self, dev_list[i], bus,
> address)) {
>              libdev = dev_list[i];
>              break;
>          }
> @@ -1017,7 +1019,7 @@ static void
> spice_usb_device_manager_remove_udev(SpiceUsbDeviceManager  *self,
>  {
>      int bus, address;
>  
> -    if (!spice_usb_device_manager_get_udev_bus_n_address(udev, &bus,
> &address))
> +    if (!spice_usb_device_manager_get_udev_bus_n_address(self, udev, &bus,
> &address))
>          return;
>  
>      spice_usb_device_manager_remove_dev(self, bus, address);
> @@ -1320,7 +1322,7 @@ static SpiceUsbredirChannel
> *spice_usb_device_manager_get_channel_for_dev(
>      for (i = 0; i < priv->channels->len; i++) {
>          SpiceUsbredirChannel *channel = g_ptr_array_index(priv->channels, i);
>          libusb_device *libdev = spice_usbredir_channel_get_device(channel);
> -        if (spice_usb_device_equal_libdev(device, libdev))
> +        if (spice_usb_manager_device_equal_libdev(manager, device, libdev))
>              return channel;
>      }
>  #endif
> @@ -1892,8 +1894,9 @@ static void spice_usb_device_unref(SpiceUsbDevice
> *device)
>  
>  #ifndef G_OS_WIN32 /* Linux -- directly compare libdev */
>  static gboolean
> -spice_usb_device_equal_libdev(SpiceUsbDevice *device,
> -                              libusb_device  *libdev)
> +spice_usb_manager_device_equal_libdev(SpiceUsbDeviceManager *manager,
> +                                      SpiceUsbDevice *device,
> +                                      libusb_device  *libdev)
>  {
>      SpiceUsbDeviceInfo *info = (SpiceUsbDeviceInfo *)device;
>  
> @@ -1904,8 +1907,9 @@ spice_usb_device_equal_libdev(SpiceUsbDevice *device,
>  }
>  #else /* Windows -- compare vid:pid of device and libdev */
>  static gboolean
> -spice_usb_device_equal_libdev(SpiceUsbDevice *device,
> -                              libusb_device  *libdev)
> +spice_usb_manager_device_equal_libdev(SpiceUsbDeviceManager *manager,
> +                                      SpiceUsbDevice *device,
> +                                      libusb_device  *libdev)
>  {
>      int vid, pid;
>  
> @@ -1914,7 +1918,7 @@ spice_usb_device_equal_libdev(SpiceUsbDevice *device,
>  
>      vid = spice_usb_device_get_vid(device);
>      pid = spice_usb_device_get_pid(device);
> -    return spice_usb_device_manager_libdev_match(libdev, vid, pid);
> +    return spice_usb_device_manager_libdev_match(manager, libdev, vid, pid);
>  }
>  #endif
>  
> @@ -1947,7 +1951,7 @@
> spice_usb_device_manager_device_to_libdev(SpiceUsbDeviceManager *self,
>          return NULL;
>  
>      for (i = 0; (d = devlist[i]) != NULL; i++) {
> -        if (spice_usb_device_equal_libdev(device, d)) {
> +        if (spice_usb_manager_device_equal_libdev(self, device, d)) {
>              libusb_ref_device(d);
>              break;
>          }


More information about the Spice-devel mailing list