listusb: display USB vendor and devices names based on usb.ids
* download usb.ids, processed like pci.ids to generate a header. * best would be to load and parse the file at runtime with shared code.
This commit is contained in:
@@ -1,23 +1,25 @@
|
||||
/*
|
||||
* Copyright 2008, Haiku, Inc. All Rights Reserved.
|
||||
* Copyright 2008-2012, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Jérôme Duval
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "usbdevs.h"
|
||||
#include "usbdevs_data.h"
|
||||
#include "usbhdr.h"
|
||||
|
||||
|
||||
void
|
||||
usb_get_vendor_info(uint16 vendorID, const char **vendorName)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; usb_knowndevs[i].vendor != 0; i++) {
|
||||
if (usb_knowndevs[i].vendor == vendorID) {
|
||||
*vendorName = usb_knowndevs[i].vendorname;
|
||||
for (i = 0; i < (int)USB_VENTABLE_LEN; i++) {
|
||||
if (UsbVenTable[i].VenId == vendorID) {
|
||||
*vendorName = UsbVenTable[i].VenName && UsbVenTable[i].VenName[0]
|
||||
? UsbVenTable[i].VenName : NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -26,18 +28,16 @@ usb_get_vendor_info(uint16 vendorID, const char **vendorName)
|
||||
|
||||
|
||||
void
|
||||
usb_get_vendor_device_info(uint16 vendorID, uint16 deviceID, const char **vendorName, const char **deviceName)
|
||||
usb_get_device_info(uint16 vendorID, uint16 deviceID, const char **deviceName)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; usb_knowndevs[i].vendor != 0; i++) {
|
||||
if (usb_knowndevs[i].vendor == vendorID
|
||||
&& usb_knowndevs[i].product == deviceID
|
||||
&& usb_knowndevs[i].flags != USB_KNOWNDEV_NOPROD) {
|
||||
*deviceName = usb_knowndevs[i].productname;
|
||||
*vendorName = usb_knowndevs[i].vendorname;
|
||||
// search for the device
|
||||
for (i = 0; i < (int)USB_DEVTABLE_LEN; i++) {
|
||||
if (UsbDevTable[i].VenId == vendorID && UsbDevTable[i].DevId == deviceID ) {
|
||||
*deviceName = UsbDevTable[i].ChipDesc && UsbDevTable[i].ChipDesc[0]
|
||||
? UsbDevTable[i].ChipDesc : NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
*vendorName = NULL;
|
||||
*deviceName = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user