Contents of /trunk/usbip/patches/usbip-0.1.7-bind-parseable-output.patch
Parent Directory | Revision Log
Revision 1540 -
(show annotations)
(download)
Mon Sep 19 19:13:22 2011 UTC (13 years ago) by niro
File size: 2283 byte(s)
Mon Sep 19 19:13:22 2011 UTC (13 years ago) by niro
File size: 2283 byte(s)
-fixed patch
1 | diff -Naur usbip-0.1.7/src/cmd/bind-driver.c usbip-0.1.7-magellan/src/cmd/bind-driver.c |
2 | --- usbip-0.1.7/src/cmd/bind-driver.c 2009-01-13 18:10:51.000000000 +0100 |
3 | +++ usbip-0.1.7-magellan/src/cmd/bind-driver.c 2011-09-19 22:50:25.000000000 +0200 |
4 | @@ -16,6 +16,7 @@ |
5 | {"usbip", required_argument, NULL, 'u'}, |
6 | {"other", required_argument, NULL, 'o'}, |
7 | {"list", no_argument, NULL, 'l'}, |
8 | + {"list2", no_argument, NULL, 'L'}, |
9 | {"help", no_argument, NULL, 'h'}, |
10 | #if 0 |
11 | {"allusbip", no_argument, NULL, 'a'}, |
12 | @@ -37,6 +38,7 @@ |
13 | printf(" --usbip busid make a device exportable\n"); |
14 | printf(" --other busid use a device by a local driver\n"); |
15 | printf(" --list print usb devices and their drivers\n"); |
16 | + printf(" --list2 print usb devices and their drivers in parseable mode\n"); |
17 | printf(" --allusbip make all devices exportable\n"); |
18 | |
19 | #if 0 |
20 | @@ -378,6 +380,49 @@ |
21 | return 0; |
22 | } |
23 | |
24 | +static int show_devices2(void) |
25 | +{ |
26 | + DIR *dir; |
27 | + |
28 | + dir = opendir("/sys/bus/usb/devices/"); |
29 | + if (!dir) |
30 | + g_error("opendir: %s", strerror(errno)); |
31 | + |
32 | + for (;;) { |
33 | + struct dirent *dirent; |
34 | + char *busid; |
35 | + |
36 | + dirent = readdir(dir); |
37 | + if (!dirent) |
38 | + break; |
39 | + |
40 | + busid = dirent->d_name; |
41 | + |
42 | + if (is_usb_device(busid)) { |
43 | + char name[100] = {'\0'}; |
44 | + char driver[100] = {'\0'}; |
45 | + int conf, ninf = 0; |
46 | + int i; |
47 | + |
48 | + conf = read_bConfigurationValue(busid); |
49 | + ninf = read_bNumInterfaces(busid); |
50 | + |
51 | + getdevicename(busid, name, sizeof(name)); |
52 | + |
53 | + printf("busid=%s#usbid=%s#", busid, name); |
54 | + |
55 | + for (i = 0; i < ninf; i++) { |
56 | + getdriver(busid, conf, i, driver, sizeof(driver)); |
57 | + printf("%s:%d.%d=%s#", busid, conf, i, driver); |
58 | + } |
59 | + printf("\n"); |
60 | + } |
61 | + } |
62 | + |
63 | + closedir(dir); |
64 | + |
65 | + return 0; |
66 | +} |
67 | |
68 | #if 0 |
69 | static int export_to(char *host, char *busid) { |
70 | @@ -504,6 +549,7 @@ |
71 | cmd_use_by_usbip, |
72 | cmd_use_by_other, |
73 | cmd_list, |
74 | + cmd_list2, |
75 | cmd_allusbip, |
76 | cmd_export_to, |
77 | cmd_unexport, |
78 | @@ -533,6 +579,9 @@ |
79 | case 'l' : |
80 | cmd = cmd_list; |
81 | break; |
82 | + case 'L' : |
83 | + cmd = cmd_list2; |
84 | + break; |
85 | case 'a' : |
86 | cmd = cmd_allusbip; |
87 | break; |
88 | @@ -569,6 +618,9 @@ |
89 | case cmd_list: |
90 | show_devices(); |
91 | break; |
92 | + case cmd_list2: |
93 | + show_devices2(); |
94 | + break; |
95 | #if 0 |
96 | case cmd_allusbip: |
97 | allusbip(); |