diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-12-27 20:35:12 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2019-12-27 20:35:12 +0000 |
commit | 34b0ca243f6272d998475afd019d3a9e175cd817 (patch) | |
tree | ec0a06b0ea9d1a4623486baeeea3db145ef414ff /lib/libusb/libusb20.c | |
parent | 7082625d976f0ad1b4207a12afe3c72e2acd9145 (diff) | |
download | src-34b0ca243f6272d998475afd019d3a9e175cd817.tar.gz src-34b0ca243f6272d998475afd019d3a9e175cd817.zip |
Implement new libusb v2.0 API function, libusb20_dev_get_stats().
This function is useful when debugging USB device issues.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Notes
Notes:
svn path=/head/; revision=356136
Diffstat (limited to 'lib/libusb/libusb20.c')
-rw-r--r-- | lib/libusb/libusb20.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/libusb/libusb20.c b/lib/libusb/libusb20.c index 255e7d5ed516..6c2bf721bea9 100644 --- a/lib/libusb/libusb20.c +++ b/lib/libusb/libusb20.c @@ -78,6 +78,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_set_power_mode (void *)dummy_int #define dummy_get_power_mode (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1049,6 +1050,31 @@ libusb20_dev_get_speed(struct libusb20_device *pdev) return (pdev->usb_speed); } +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); +} + /* if this function returns an error, the device is gone */ int libusb20_dev_process(struct libusb20_device *pdev) |