svn commit: r200339 - stable/8/usr.sbin/usbconfig
Andrew Thompson
thompsa at FreeBSD.org
Wed Dec 9 15:14:53 PST 2009
Author: thompsa
Date: Wed Dec 9 23:14:53 2009
New Revision: 200339
URL: http://svn.freebsd.org/changeset/base/200339
Log:
MFC r198833
Add more verbose output when dumping the configuration descriptor.
Modified:
stable/8/usr.sbin/usbconfig/dump.c
Directory Properties:
stable/8/usr.sbin/usbconfig/ (props changed)
Modified: stable/8/usr.sbin/usbconfig/dump.c
==============================================================================
--- stable/8/usr.sbin/usbconfig/dump.c Wed Dec 9 23:12:52 2009 (r200338)
+++ stable/8/usr.sbin/usbconfig/dump.c Wed Dec 9 23:14:53 2009 (r200339)
@@ -100,21 +100,66 @@ dump_field(struct libusb20_device *pdev,
printf("%s%s = 0x%04x ", plevel, field, value);
- if ((field[0] != 'i') || (field[1] == 'd')) {
- printf("\n");
- return;
- }
- if (value == 0) {
- printf(" <no string>\n");
- return;
+ if (strlen(plevel) == 8) {
+ /* Endpoint Descriptor */
+
+ if (strcmp(field, "bEndpointAddress") == 0) {
+ if (value & 0x80)
+ printf(" <IN>\n");
+ else
+ printf(" <OUT>\n");
+ return;
+ }
+
+ if (strcmp(field, "bmAttributes") == 0) {
+ switch (value & 0x03) {
+ case 0:
+ printf(" <CONTROL>\n");
+ break;
+ case 1:
+ switch (value & 0x0C) {
+ case 0x00:
+ printf(" <ISOCHRONOUS>\n");
+ break;
+ case 0x04:
+ printf(" <ASYNC-ISOCHRONOUS>\n");
+ break;
+ case 0x08:
+ printf(" <ADAPT-ISOCHRONOUS>\n");
+ break;
+ default:
+ printf(" <SYNC-ISOCHRONOUS>\n");
+ break;
+ }
+ break;
+ case 2:
+ printf(" <BULK>\n");
+ break;
+ default:
+ printf(" <INTERRUPT>\n");
+ break;
+ }
+ return;
+ }
}
- if (libusb20_dev_req_string_simple_sync(pdev, value,
- temp_string, sizeof(temp_string))) {
- printf(" <retrieving string failed>\n");
+
+ if ((field[0] == 'i') && (field[1] != 'd')) {
+ /* Indirect String Descriptor */
+ if (value == 0) {
+ printf(" <no string>\n");
+ return;
+ }
+ if (libusb20_dev_req_string_simple_sync(pdev, value,
+ temp_string, sizeof(temp_string))) {
+ printf(" <retrieving string failed>\n");
+ return;
+ }
+ printf(" <%s>\n", temp_string);
return;
}
- printf(" <%s>\n", temp_string);
- return;
+
+ /* No additional information */
+ printf("\n");
}
static void
More information about the svn-src-stable
mailing list