diff --git a/lib/libusb/libusb.3 b/lib/libusb/libusb.3 index ffc761b72202..28dff946d5a8 100644 --- a/lib/libusb/libusb.3 +++ b/lib/libusb/libusb.3 @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2012 +.Dd May 7, 2013 .Dt LIBUSB 3 .Os .Sh NAME @@ -102,6 +102,15 @@ counter decremented once. Returns the number of the bus contained by the device .Fa dev . .Pp +.Ft int +.Fn libusb_get_port_path "libusb_context *ctx" "libusb_device *dev" "uint8_t *buf" "uint8_t bufsize" +Stores, in the buffer +.Fa buf +of size +.Fa bufsize , +the list of all port numbers from root for the device +.Fa dev . +.Pp .Ft uint8_t .Fn libusb_get_device_address "libusb_device *dev" Returns the device_address contained by the device diff --git a/lib/libusb/libusb.h b/lib/libusb/libusb.h index 52ad914377bc..220a8daf7c90 100644 --- a/lib/libusb/libusb.h +++ b/lib/libusb/libusb.h @@ -369,6 +369,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); +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); enum libusb_speed libusb_get_device_speed(libusb_device * dev); int libusb_clear_halt(libusb_device_handle *devh, uint8_t endpoint); diff --git a/lib/libusb/libusb10.c b/lib/libusb/libusb10.c index 021229669119..802bc8a878f8 100644 --- a/lib/libusb/libusb10.c +++ b/lib/libusb/libusb10.c @@ -290,6 +290,13 @@ libusb_get_bus_number(libusb_device *dev) return (libusb20_dev_get_bus_number(dev->os_priv)); } +int +libusb_get_port_path(libusb_context *ctx, libusb_device *dev, uint8_t *buf, + uint8_t bufsize) +{ + return (libusb20_dev_get_port_path(dev->os_priv, buf, bufsize)); +} + uint8_t libusb_get_device_address(libusb_device *dev) {