listusb: generate class code table from usb.ids, and use it
Change-Id: I43b79c5abc74306aba9a69991aeb5e110b2d790b Reviewed-on: https://review.haiku-os.org/c/haiku/+/5737 Reviewed-by: Fredrik Holmqvist <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
e6ce95c5ab
commit
edeaa9c0c7
@@ -12,6 +12,30 @@
|
||||
#include "usbhdr.h"
|
||||
|
||||
|
||||
static void
|
||||
usb_get_class_info(uint8 usb_class_base_id, uint8 usb_class_sub_id, uint8 usb_class_proto_id,
|
||||
char *classInfo, size_t size)
|
||||
{
|
||||
USB_CLASSCODETABLE *foundItem = NULL;
|
||||
int i;
|
||||
for (i = 0; i < (int)USB_CLASSCODETABLE_LEN; i++) {
|
||||
if ((usb_class_base_id == UsbClassCodeTable[i].BaseClass)
|
||||
&& (usb_class_sub_id == UsbClassCodeTable[i].SubClass)) {
|
||||
foundItem = &UsbClassCodeTable[i];
|
||||
if (usb_class_proto_id == UsbClassCodeTable[i].Protocol)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (foundItem) {
|
||||
snprintf(classInfo, size, "%s (%s%s%s)", foundItem->BaseDesc, foundItem->SubDesc,
|
||||
(foundItem->ProtocolDesc && strcmp("", foundItem->ProtocolDesc)) ? ", " : "",
|
||||
foundItem->ProtocolDesc);
|
||||
} else
|
||||
snprintf(classInfo, size, "%s (%u:%u:%u)", "(Unknown)",
|
||||
usb_class_base_id, usb_class_sub_id, usb_class_proto_id);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
usb_get_vendor_info(uint16 vendorID, const char **vendorName)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user