summaryrefslogtreecommitdiffstats
path: root/lib/libusb
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2016-06-16 12:14:19 +0000
committerhselasky <hselasky@FreeBSD.org>2016-06-16 12:14:19 +0000
commit29ad2f5a15ec7df0d3a3038844ee9409fd56b0e5 (patch)
treef93ae8103d06f681cc27a461182b1ff75bf32084 /lib/libusb
parentd0d7e727496e6a6d4706547ce822aefe41834242 (diff)
downloadFreeBSD-src-29ad2f5a15ec7df0d3a3038844ee9409fd56b0e5.zip
FreeBSD-src-29ad2f5a15ec7df0d3a3038844ee9409fd56b0e5.tar.gz
Add support for libusb_get_port_number() to the LibUSB v1.0 API.
Approved by: re (kostikbel) Requested by: swills MFC after: 1 week
Diffstat (limited to 'lib/libusb')
-rw-r--r--lib/libusb/libusb.38
-rw-r--r--lib/libusb/libusb.h1
-rw-r--r--lib/libusb/libusb10.c8
3 files changed, 16 insertions, 1 deletions
diff --git a/lib/libusb/libusb.3 b/lib/libusb/libusb.3
index 03113c0..c91c61d 100644
--- a/lib/libusb/libusb.3
+++ b/lib/libusb/libusb.3
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 16, 2016
+.Dd June 17, 2016
.Dt LIBUSB 3
.Os
.Sh NAME
@@ -106,6 +106,12 @@ counter decremented once.
Returns the number of the bus contained by the device
.Fa dev .
.Pp
+.Ft uint8_t
+.Fn libusb_get_port_number "libusb_device *dev"
+Returns the port number which the device given by
+.Fa dev
+is attached to.
+.Pp
.Ft int
.Fn libusb_get_port_numbers "libusb_device *dev" "uint8_t *buf" "uint8_t bufsize"
Stores, in the buffer
diff --git a/lib/libusb/libusb.h b/lib/libusb/libusb.h
index 4a72499..c3d69f5 100644
--- a/lib/libusb/libusb.h
+++ b/lib/libusb/libusb.h
@@ -406,6 +406,7 @@ void libusb_exit(struct libusb_context *ctx);
ssize_t libusb_get_device_list(libusb_context * ctx, libusb_device *** list);
void libusb_free_device_list(libusb_device ** list, int unref_devices);
uint8_t libusb_get_bus_number(libusb_device * dev);
+uint8_t libusb_get_port_number(libusb_device * dev);
int libusb_get_port_numbers(libusb_device *dev, uint8_t *buf, uint8_t bufsize);
int libusb_get_port_path(libusb_context *ctx, libusb_device *dev, uint8_t *buf, uint8_t bufsize);
uint8_t libusb_get_device_address(libusb_device * dev);
diff --git a/lib/libusb/libusb10.c b/lib/libusb/libusb10.c
index 20376f9..1f64252 100644
--- a/lib/libusb/libusb10.c
+++ b/lib/libusb/libusb10.c
@@ -308,6 +308,14 @@ libusb_get_bus_number(libusb_device *dev)
return (libusb20_dev_get_bus_number(dev->os_priv));
}
+uint8_t
+libusb_get_port_number(libusb_device *dev)
+{
+ if (dev == NULL)
+ return (0); /* should not happen */
+ return (libusb20_dev_get_parent_port(dev->os_priv));
+}
+
int
libusb_get_port_numbers(libusb_device *dev, uint8_t *buf, uint8_t bufsize)
{
OpenPOWER on IntegriCloud