summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-08-01 02:55:39 +0200
committercinap_lenrek <cinap_lenrek@localhost>2011-08-01 02:55:39 +0200
commit6f3039351a35eb4310cfa1fc5dec802e74ad73f8 (patch)
tree8fffdc056a5b071099c1ec3fe06f9b3334dfe757
parentb43de8eb1fb64d545b12b987646a5823d2e42caf (diff)
downloadplan9front-6f3039351a35eb4310cfa1fc5dec802e74ad73f8.tar.xz
nusb: add /rc/bin/nusbrc
-rwxr-xr-xrc/bin/cpurc4
-rw-r--r--rc/bin/nusbrc31
-rwxr-xr-xrc/bin/termrc4
3 files changed, 37 insertions, 2 deletions
diff --git a/rc/bin/cpurc b/rc/bin/cpurc
index 482b13259..61cc32e4a 100755
--- a/rc/bin/cpurc
+++ b/rc/bin/cpurc
@@ -7,7 +7,9 @@ for(i in m i P S t u '$')
bind -a '#'^$i /dev >/dev/null >[2=1]
mount -qb /srv/cons /dev
-mount -qa /srv/usb /dev
+
+# usb listener
+nusbrc
# mount points
mntgen -s slashn && chmod 666 /srv/slashn
diff --git a/rc/bin/nusbrc b/rc/bin/nusbrc
new file mode 100644
index 000000000..624ec527e
--- /dev/null
+++ b/rc/bin/nusbrc
@@ -0,0 +1,31 @@
+#!/bin/rc
+
+if(! test -e '#σ/usb/usbevent')
+ exit
+if(! bind -a '#u' /dev)
+ exit
+
+@{
+ rfork ne
+ fn attach {
+ switch($4){
+ case *01
+ nusb/audio $1
+ case *02
+ # serial and ethernet
+ nusb/serial $1
+ case *03
+ # handled /sys/src/9/boot/nusbrc
+ # nusb/kb $1
+ case *08
+ # handled /sys/src/9/boot/nusbrc
+ # nusb/disk $1
+ }
+ }
+ fn detach {
+ # handled /sys/src/9/boot/nusbrc
+ }
+ rc < '#σ/usb/usbevent' &
+}
+
+bind -a '#σ/usb' /dev
diff --git a/rc/bin/termrc b/rc/bin/termrc
index 42d38508e..96430b033 100755
--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -10,7 +10,9 @@ for(i in S f k t m i v L P u U A '$' Σ κ)
rm -f /env/i
mount -qb /srv/cons /dev
-mount -qa /srv/usb /dev
+
+# usb listener
+nusbrc
# set up any partitions
diskparts