summaryrefslogtreecommitdiffstats
path: root/libusbhost
diff options
context:
space:
mode:
Diffstat (limited to 'libusbhost')
-rw-r--r--libusbhost/usbhost.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libusbhost/usbhost.c b/libusbhost/usbhost.c
index 1084236ed..a6b086710 100644
--- a/libusbhost/usbhost.c
+++ b/libusbhost/usbhost.c
@@ -41,6 +41,7 @@
#include "usbhost/usbhost.h"
#define USB_FS_DIR "/dev/bus/usb"
+#define USB_FS_ID_SCANNER "/dev/bus/usb/%d/%d"
#if 0
#define D printf
@@ -243,6 +244,13 @@ const char* usb_device_get_name(struct usb_device *device)
return device->dev_name;
}
+int usb_device_get_unique_id(struct usb_device *device)
+{
+ int bus = 0, dev = 0;
+ sscanf(device->dev_name, USB_FS_ID_SCANNER, &bus, &dev);
+ return bus * 1000 + dev;
+}
+
uint16_t usb_device_get_vendor_id(struct usb_device *device)
{
struct usb_device_descriptor* desc = (struct usb_device_descriptor*)device->desc;