blob: b139d87e175ba5a35c78c5bd424a9ffc24d1322d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/bin/rc
rfork e
cd '#u/usb'
root=()
for(ep in ep*.0){
< $ep/ctl {
info1=`{read}
info2=`{read}
}
info1_^$ep=$info1
info2_^$ep=$info2
if(~ $info1(18) hub){
hub=$info1(19)
if(~ $hub 0)
root=($root $ep)
if not {
hub=ep^$hub^'.0'
devhub_^$ep=$hub
if(~ $info1(20) port){
port=$info1(21)
portdev_^$hub^_^$port=$ep
}
}
}
}
fn indent {
sed 's/^/ /g'
}
fn printdev {
info2=info2_^$1
info2=$$info2
echo $1^':' $info2
if(~ $info2(1) *hub){
for(port in `{seq 1 16}){
x=portdev_^$1^_^$port
if(~ $#$x 1){
echo ' port'^$port^': '
printdev $$x | indent
}
}
}
}
for(ep in $root) {
printdev $ep
}
|