Within libusb 0.1 API, bus number is always faked to 0. Device numbers,

however, are possitive and seem to be reverse sorted in the list.

Conform device numbering and bring a result that is consistent with the
libusb 0.1 API.  It is now possible to distinguish a device based on its
(bus, dev) numbers.

There shouldn't be any negative change in behavior after this commit.

Tested with:    scanimage (sane)
		http://freebsd.czest.pl/~wkoszek/qemu/l.c
Reviewed by:    hps@
This commit is contained in:
Wojciech A. Koszek 2010-02-11 08:24:35 +00:00
parent 3d28af0246
commit 9c7e1de8c3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=203773

View File

@ -829,6 +829,7 @@ usb_find_devices(void)
struct libusb20_device *pdev;
struct usb_device *udev;
struct LIBUSB20_DEVICE_DESC_DECODED *ddesc;
int devnum;
int err;
/* cleanup after last device search */
@ -855,6 +856,7 @@ usb_find_devices(void)
}
/* iterate all devices */
devnum = 1;
pdev = NULL;
while ((pdev = libusb20_be_device_foreach(usb_backend, pdev))) {
udev = malloc(sizeof(*udev));
@ -891,6 +893,7 @@ usb_find_devices(void)
/* truncate number of configurations */
udev->descriptor.bNumConfigurations = USB_MAXCONFIG;
}
udev->devnum = devnum++;
/* link together the two structures */
udev->dev = pdev;
pdev->privLuData = udev;