From 912b9df86b9d5946c09fc9e9bd03d38133dbcf9f Mon Sep 17 00:00:00 2001 From: Stanislaw Wadas Date: Tue, 6 Oct 2015 12:15:20 +0200 Subject: [PATCH] fix: add missing function implementation add libhusb_get_port_numbers() implementation Change-Id: I66199bfdf173c3f234c168ce7dc3eb7e77f46a1b Signed-off-by: Stanislaw Wadas --- src/libhusb.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/libhusb.c b/src/libhusb.c index 06443c1..f2119d2 100644 --- a/src/libhusb.c +++ b/src/libhusb.c @@ -271,13 +271,22 @@ uint8_t libhusb_get_address(libhusb_device *dev) int libhusb_get_port_numbers(libhusb_device *dev, uint8_t* port_numbers, int port_numbers_len) { - int port_num = 0; + /* As per the USB 3.0 specs, the current maximum limit for the depth is 7 */ + uint8_t p_numbers[8]; + int ret = 0; + int i; + + if (port_numbers_len <= 0) + return LIBHUSB_ERROR_INVALID_PARAM; assert(dev); - /* TODO implement */ + ret = libusb_get_port_numbers(dev->lusb_dev, p_numbers, port_numbers_len); - return port_num; + for (i = 0; i < ret; i++) + port_numbers[i] = p_numbers[i]; + + return ret; } ssize_t libhusb_get_devices(libhusb_context *context, libhusb_device ***devs) -- 2.34.1