aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2018-03-13 19:49:06 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2018-03-13 19:49:06 +0000
commitcd1fd29c26d341bf99175e01c0a6c797340bdfe2 (patch)
tree57ec33e79774009eb3a5697f72519d5186ed36cd /usr.sbin
parent2f5a9b7661f483580f6e801ba050dc15f27e2721 (diff)
Notes
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/usbconfig/usbconfig.82
-rw-r--r--usr.sbin/usbconfig/usbconfig.c17
2 files changed, 18 insertions, 1 deletions
diff --git a/usr.sbin/usbconfig/usbconfig.8 b/usr.sbin/usbconfig/usbconfig.8
index 2d0a32aa85af..6c14028d4bf5 100644
--- a/usr.sbin/usbconfig/usbconfig.8
+++ b/usr.sbin/usbconfig/usbconfig.8
@@ -97,6 +97,8 @@ Remove a quirk.
Add quirk for the currently selected USB device.
.It Cm remove_quirk Ar quirk_name
Remove a quirk for the currently selected USB device.
+.It Cm dump_all_desc
+Display the device and configuration descriptors.
.It Cm dump_quirk_names
Display the list of supported quirk names.
.It Cm dump_device_quirks
diff --git a/usr.sbin/usbconfig/usbconfig.c b/usr.sbin/usbconfig/usbconfig.c
index 18cdf9ff3c82..4c5bfb61c3ef 100644
--- a/usr.sbin/usbconfig/usbconfig.c
+++ b/usr.sbin/usbconfig/usbconfig.c
@@ -77,6 +77,7 @@ struct options {
uint8_t got_power_on:1;
uint8_t got_dump_device_quirks:1;
uint8_t got_dump_quirk_names:1;
+ uint8_t got_dump_all_desc:1;
uint8_t got_dump_device_desc:1;
uint8_t got_dump_curr_config:1;
uint8_t got_dump_all_config:1;
@@ -112,6 +113,7 @@ enum {
T_SHOW_IFACE_DRIVER,
T_DUMP_QUIRK_NAMES,
T_DUMP_DEVICE_QUIRKS,
+ T_DUMP_ALL_DESC,
T_DUMP_DEVICE_DESC,
T_DUMP_CURR_CONFIG_DESC,
T_DUMP_ALL_CONFIG_DESC,
@@ -144,6 +146,7 @@ static const struct token token[] = {
{"remove_quirk", T_REMOVE_QUIRK, 1},
{"dump_quirk_names", T_DUMP_QUIRK_NAMES, 0},
{"dump_device_quirks", T_DUMP_DEVICE_QUIRKS, 0},
+ {"dump_all_desc", T_DUMP_ALL_DESC, 0},
{"dump_device_desc", T_DUMP_DEVICE_DESC, 0},
{"dump_curr_config_desc", T_DUMP_CURR_CONFIG_DESC, 0},
{"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0},
@@ -283,6 +286,7 @@ usage(void)
" remove_quirk <quirk>" "\n"
" dump_quirk_names" "\n"
" dump_device_quirks" "\n"
+ " dump_all_desc" "\n"
" dump_device_desc" "\n"
" dump_curr_config_desc" "\n"
" dump_all_config_desc" "\n"
@@ -489,7 +493,8 @@ flush_command(struct libusb20_backend *pbe, struct options *opt)
}
}
dump_any =
- (opt->got_dump_device_desc ||
+ (opt->got_dump_all_desc ||
+ opt->got_dump_device_desc ||
opt->got_dump_curr_config ||
opt->got_dump_all_config ||
opt->got_dump_info);
@@ -508,6 +513,10 @@ flush_command(struct libusb20_backend *pbe, struct options *opt)
} else if (opt->got_dump_curr_config) {
printf("\n");
dump_config(pdev, 0);
+ } else if (opt->got_dump_all_desc) {
+ printf("\n");
+ dump_device_desc(pdev);
+ dump_config(pdev, 1);
}
if (dump_any) {
printf("\n");
@@ -696,6 +705,12 @@ main(int argc, char **argv)
opt->got_get_template = 1;
opt->got_any++;
break;
+ case T_DUMP_ALL_DESC:
+ if (opt->got_dump_all_desc)
+ duplicate_option(argv[n]);
+ opt->got_dump_all_desc = 1;
+ opt->got_any++;
+ break;
case T_DUMP_DEVICE_DESC:
if (opt->got_dump_device_desc)
duplicate_option(argv[n]);