summaryrefslogtreecommitdiffstats
path: root/lib/libusb
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2011-10-10 16:13:33 +0000
committerhselasky <hselasky@FreeBSD.org>2011-10-10 16:13:33 +0000
commitd4695c896c6faaa2da74b8f02bc43c54800738c5 (patch)
treec38887b856e8770d00fac439fd8b9aeeaa5f79de /lib/libusb
parent09089cc9ae9e4f73f43eda7d6b9dac8a2a1a0707 (diff)
downloadFreeBSD-src-d4695c896c6faaa2da74b8f02bc43c54800738c5.zip
FreeBSD-src-d4695c896c6faaa2da74b8f02bc43c54800738c5.tar.gz
Fix how libusb20_dev_kernel_driver_active() and
libusb_dev_kernel_driver_active() works. In case of libusb20 the manpage was wrong and in case of libusb10 the implementation was wrong. Submitted by: Kai Wang MFC after: 3 days
Diffstat (limited to 'lib/libusb')
-rw-r--r--lib/libusb/libusb.34
-rw-r--r--lib/libusb/libusb10.c7
-rw-r--r--lib/libusb/libusb20.35
3 files changed, 8 insertions, 8 deletions
diff --git a/lib/libusb/libusb.3 b/lib/libusb/libusb.3
index b69922e..7255f2b 100644
--- a/lib/libusb/libusb.3
+++ b/lib/libusb/libusb.3
@@ -223,8 +223,8 @@ code on failure.
.Ft int
.Fn libusb_kernel_driver_active "libusb_device_handle *devh" "int interface"
Determine if a driver is active on a interface.
-Returns 0 if no kernel driver
-is active, 1 if a kernel driver is active, LIBUSB_ERROR_NO_DEVICE
+Returns 0 if no kernel driver is active
+and 1 if a kernel driver is active, LIBUSB_ERROR_NO_DEVICE
if the device has been disconnected and a LIBUSB_ERROR code on failure.
.Pp
.Ft int
diff --git a/lib/libusb/libusb10.c b/lib/libusb/libusb10.c
index e02b90a..0a7c1e6 100644
--- a/lib/libusb/libusb10.c
+++ b/lib/libusb/libusb10.c
@@ -216,7 +216,6 @@ libusb_get_device_list(libusb_context *ctx, libusb_device ***list)
libusb20_be_free(usb_backend);
return (LIBUSB_ERROR_NO_MEM);
}
-
/* get device into libUSB v1.0 list */
libusb20_be_dequeue_device(usb_backend, pdev);
@@ -718,8 +717,10 @@ libusb_kernel_driver_active(struct libusb20_device *pdev, int interface)
if (pdev == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
- return (libusb20_dev_kernel_driver_active(
- pdev, interface));
+ if (libusb20_dev_kernel_driver_active(pdev, interface))
+ return (0); /* no kernel driver is active */
+ else
+ return (1); /* kernel driver is active */
}
int
diff --git a/lib/libusb/libusb20.3 b/lib/libusb/libusb20.3
index b41bec1..bd167b2 100644
--- a/lib/libusb/libusb20.3
+++ b/lib/libusb/libusb20.3
@@ -614,10 +614,9 @@ The file descriptor can be used for polling purposes.
.Pp
.
.Fn libusb20_dev_kernel_driver_active
-returns a non-zero value if a kernel driver is active on
-the given USB interface.
+returns zero if a kernel driver is active on the given USB interface.
.
-Else zero is returned.
+Else a LIBUSB20_ERROR value is returned.
.
.Pp
.
OpenPOWER on IntegriCloud