diff options
author | wkoszek <wkoszek@FreeBSD.org> | 2010-02-11 08:24:35 +0000 |
---|---|---|
committer | wkoszek <wkoszek@FreeBSD.org> | 2010-02-11 08:24:35 +0000 |
commit | 1ca3f3128bcb61c6225b71950f265df5e3287379 (patch) | |
tree | 4e6d274c0096b05ee6e7782670f89ee249f99a3a /lib/libusb | |
parent | 9c8581b59c3456026c2dccc53e2c38ec33caa078 (diff) | |
download | FreeBSD-src-1ca3f3128bcb61c6225b71950f265df5e3287379.zip FreeBSD-src-1ca3f3128bcb61c6225b71950f265df5e3287379.tar.gz |
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@
Diffstat (limited to 'lib/libusb')
-rw-r--r-- | lib/libusb/libusb20_compat01.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libusb/libusb20_compat01.c b/lib/libusb/libusb20_compat01.c index 48a7dd5..2fbbae7 100644 --- a/lib/libusb/libusb20_compat01.c +++ b/lib/libusb/libusb20_compat01.c @@ -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; |