diff options
author | Simon J. Gerraty <sjg@FreeBSD.org> | 2014-11-19 01:07:58 +0000 |
---|---|---|
committer | Simon J. Gerraty <sjg@FreeBSD.org> | 2014-11-19 01:07:58 +0000 |
commit | 9268022b74279434ed6300244e3f977e56a8ceb5 (patch) | |
tree | 377ac0ac449528621eb192cd245adadb5fd53668 /usr.sbin/usbconfig | |
parent | 29c34e9d2781cf25403647fb5af7d7ddb23be7e1 (diff) | |
parent | 8c3d6a4ab2a4a95d864d9a32d0157d7de90498a4 (diff) | |
download | src-9268022b74279434ed6300244e3f977e56a8ceb5.tar.gz src-9268022b74279434ed6300244e3f977e56a8ceb5.zip |
Merge from head@274682
Notes
Notes:
svn path=/projects/bmake/; revision=274683
Diffstat (limited to 'usr.sbin/usbconfig')
-rw-r--r-- | usr.sbin/usbconfig/dump.c | 83 |
1 files changed, 79 insertions, 4 deletions
diff --git a/usr.sbin/usbconfig/dump.c b/usr.sbin/usbconfig/dump.c index 52dd132095dc..df5cde0c546b 100644 --- a/usr.sbin/usbconfig/dump.c +++ b/usr.sbin/usbconfig/dump.c @@ -110,7 +110,6 @@ dump_field(struct libusb20_device *pdev, const char *plevel, printf(" <OUT>\n"); return; } - if (strcmp(field, "bmAttributes") == 0) { switch (value & 0x03) { case 0: @@ -142,7 +141,6 @@ dump_field(struct libusb20_device *pdev, const char *plevel, return; } } - if ((field[0] == 'i') && (field[1] != 'd')) { /* Indirect String Descriptor */ if (value == 0) { @@ -157,7 +155,84 @@ dump_field(struct libusb20_device *pdev, const char *plevel, printf(" <%s>\n", temp_string); return; } + if (strlen(plevel) == 2 || strlen(plevel) == 6) { + + /* Device and Interface Descriptor class codes */ + + if (strcmp(field, "bInterfaceClass") == 0 || + strcmp(field, "bDeviceClass") == 0) { + switch (value) { + case 0x00: + printf(" <Probed by interface class>\n"); + break; + case 0x01: + printf(" <Audio device>\n"); + break; + case 0x02: + printf(" <Communication device>\n"); + break; + case 0x03: + printf(" <HID device>\n"); + break; + case 0x05: + printf(" <Physical device>\n"); + break; + case 0x06: + printf(" <Still imaging>\n"); + break; + case 0x07: + printf(" <Printer device>\n"); + break; + case 0x08: + printf(" <Mass storage>\n"); + break; + case 0x09: + printf(" <HUB>\n"); + break; + case 0x0A: + printf(" <CDC-data>\n"); + break; + case 0x0B: + printf(" <Smart card>\n"); + break; + case 0x0D: + printf(" <Content security>\n"); + break; + case 0x0E: + printf(" <Video device>\n"); + break; + case 0x0F: + printf(" <Personal healthcare>\n"); + break; + case 0x10: + printf(" <Audio and video device>\n"); + break; + case 0x11: + printf(" <Billboard device>\n"); + break; + case 0xDC: + printf(" <Diagnostic device>\n"); + break; + case 0xE0: + printf(" <Wireless controller>\n"); + break; + case 0xEF: + printf(" <Miscellaneous device>\n"); + break; + case 0xFE: + printf(" <Application specific>\n"); + break; + case 0xFF: + printf(" <Vendor specific>\n"); + break; + default: + printf(" <Unknown>\n"); + break; + } + return; + } + } /* No additional information */ printf("\n"); } @@ -390,8 +465,8 @@ dump_string_by_index(struct libusb20_device *pdev, uint8_t str_index) printf("STRING_0x%02x = ", str_index); len = (uint8_t)pbuf[0]; for (n = 0; n != len; n++) { - printf("0x%02x%s", (uint8_t)pbuf[n], - (n != (len-1)) ? ", " : ""); + printf("0x%02x%s", (uint8_t)pbuf[n], + (n != (len - 1)) ? ", " : ""); } printf("\n"); } |