add -v option to usb/probe. tired of looking up usb ids by hand. this is wrong for endpoints with many vid / did combos, but better than nothing. Reference: /n/atom/patch/applied/usbprobev Date: Wed Apr 23 22:48:43 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/usb/probe Wed Apr 23 22:47:29 2014 +++ /sys/src/cmd/usb/probe Wed Apr 23 22:47:29 2014 @@ -6,10 +6,61 @@ exit nousb } +fn verbose { + if (! test -f /lib/pci) + echo $0: no /lib/pci >[1=2] + awk ' + + BEGIN{ + file="/lib/usb" + FS="\t" + while(getline 0){ + if(/^[#;]/) continue + if(/^[0-9A-Fa-f]/){ + vid=$1 + vendor[vid] = $2 + } + if(/^ [0-9A-Fa-f]/){ + did=$2 + id[vid "/" did] = $3 + } + } + FS = " " + } + + { + print $0 + vid = "" + did = "" + for(i = 1; i <= NF; i++){ + if($i == "vid"){ + vid = $(i+1) + sub(/^0x/, "", vid) + } + if($i == "did"){ + did = $(i+1) + sub(/^0x/, "", did) + } + } + if(vid in vendor){ + s = vendor[vid] + if(vid "/" did in id) + s = s " " id[vid "/" did] + print "\t" s + } + } +' +} + filter = cat -if (~ $1 -h) +if (~ $1 -h){ filter = (grep -v ' (root)?hub ') - + shift +} +if(~ $1 -v){ + filter = verbose + shift +} awk 'BEGIN { ep = "" } $1 ~ /ep[0-9]+\.0/ && $2 == "enabled" && $NF ~ /busy|idle/ { ep=$1 --- /386/bin/usb/probe Wed Apr 23 22:47:29 2014 +++ /386/bin/usb/probe Wed Apr 23 22:47:29 2014 @@ -6,10 +6,61 @@ exit nousb } +fn verbose { + if (! test -f /lib/pci) + echo $0: no /lib/pci >[1=2] + awk ' + + BEGIN{ + file="/lib/usb" + FS="\t" + while(getline 0){ + if(/^[#;]/) continue + if(/^[0-9A-Fa-f]/){ + vid=$1 + vendor[vid] = $2 + } + if(/^ [0-9A-Fa-f]/){ + did=$2 + id[vid "/" did] = $3 + } + } + FS = " " + } + + { + print $0 + vid = "" + did = "" + for(i = 1; i <= NF; i++){ + if($i == "vid"){ + vid = $(i+1) + sub(/^0x/, "", vid) + } + if($i == "did"){ + did = $(i+1) + sub(/^0x/, "", did) + } + } + if(vid in vendor){ + s = vendor[vid] + if(vid "/" did in id) + s = s " " id[vid "/" did] + print "\t" s + } + } +' +} + filter = cat -if (~ $1 -h) +if (~ $1 -h){ filter = (grep -v ' (root)?hub ') - + shift +} +if(~ $1 -v){ + filter = verbose + shift +} awk 'BEGIN { ep = "" } $1 ~ /ep[0-9]+\.0/ && $2 == "enabled" && $NF ~ /busy|idle/ { ep=$1