aboutsummaryrefslogtreecommitdiff
path: root/util-linux
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2024-01-05 11:17:37 +0000
committerRon Yorston <rmy@pobox.com>2024-01-05 11:17:37 +0000
commit49edb26faaddb81e6333e7891715ce13301aed09 (patch)
tree8f982e294e2d0ac916f28ad8ef9344611cd93f25 /util-linux
parentf72312908b11605f527d002b4e8ce729bbe237a5 (diff)
parent5dc9ece3b9e87af0dcb01449821ac827391ac116 (diff)
downloadbusybox-w32-49edb26faaddb81e6333e7891715ce13301aed09.tar.gz
busybox-w32-49edb26faaddb81e6333e7891715ce13301aed09.tar.bz2
busybox-w32-49edb26faaddb81e6333e7891715ce13301aed09.zip
Merge branch 'busybox' into merge
Diffstat (limited to 'util-linux')
-rw-r--r--util-linux/lsusb.c28
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
27static 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
27static int FAST_FUNC fileAction(struct recursive_state *state UNUSED_PARAM, 45static 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 }