diff options
-rw-r--r-- | util-linux/lsusb.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/util-linux/lsusb.c b/util-linux/lsusb.c index 262c70a1b..0a9e505f4 100644 --- a/util-linux/lsusb.c +++ b/util-linux/lsusb.c | |||
@@ -24,6 +24,24 @@ | |||
24 | 24 | ||
25 | #include "libbb.h" | 25 | #include "libbb.h" |
26 | 26 | ||
27 | static char * FAST_FUNC add_sysfs_prop(const char *dir, const char *suffix, | ||
28 | char *buf, size_t size) | ||
29 | { | ||
30 | char *filename; | ||
31 | ssize_t len; | ||
32 | |||
33 | filename = concat_path_file(dir, suffix); | ||
34 | len = open_read_close(filename, buf, size - 1); | ||
35 | free(filename); | ||
36 | |||
37 | if (len < 0) | ||
38 | len = 0; | ||
39 | |||
40 | buf[len] = '\0'; | ||
41 | |||
42 | return trim(buf); | ||
43 | } | ||
44 | |||
27 | static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM, | 45 | static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM, |
28 | const char *fileName, | 46 | const char *fileName, |
29 | struct stat *statbuf UNUSED_PARAM) | 47 | struct stat *statbuf UNUSED_PARAM) |
@@ -61,7 +79,15 @@ static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM, | |||
61 | config_close(parser); | 79 | config_close(parser); |
62 | 80 | ||
63 | if (busnum) { | 81 | if (busnum) { |
64 | printf("Bus %s Device %s: ID %04x:%04x\n", busnum, devnum, product_vid, product_did); | 82 | char name[256], *p; |
83 | |||
84 | p = add_sysfs_prop(fileName, "/manufacturer", name, sizeof(name) - 1); | ||
85 | if (p != name) | ||
86 | p = stpcpy(p, " "); | ||
87 | add_sysfs_prop(fileName, "/product", p, name + sizeof(name) - p); | ||
88 | |||
89 | printf("Bus %s Device %s: ID %04x:%04x %s\n", busnum, devnum, | ||
90 | product_vid, product_did, name); | ||
65 | free(busnum); | 91 | free(busnum); |
66 | free(devnum); | 92 | free(devnum); |
67 | } | 93 | } |