summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-07-30 07:23:26 +0200
committercinap_lenrek <cinap_lenrek@localhost>2011-07-30 07:23:26 +0200
commitf9846213d1877bac1931d6b8a17dfc51bb44bdd4 (patch)
tree7878efa07269764e4ff1d6d468a5ca2cc5efb5a7
parent9d49fcdb377f698366ba0bd7f45efd85a607652b (diff)
downloadplan9front-f9846213d1877bac1931d6b8a17dfc51bb44bdd4.tar.xz
nusb: change usbevent format, put nusbrc in bootfs
-rw-r--r--sys/src/9/boot/bootrc5
-rw-r--r--sys/src/9/boot/nusbrc18
-rw-r--r--sys/src/9/port/bootfs.proto5
-rw-r--r--sys/src/cmd/nusb/usbd/usbd.c10
4 files changed, 29 insertions, 9 deletions
diff --git a/sys/src/9/boot/bootrc b/sys/src/9/boot/bootrc
index 026c91c36..9d102c566 100644
--- a/sys/src/9/boot/bootrc
+++ b/sys/src/9/boot/bootrc
@@ -152,10 +152,7 @@ if(test -e '#b' && test -x /bin/aux/kbdfs){
aux/kbdfs -s cons $a
}
-if(test -e '#u' && test -x /bin/usb/usbd){
- bind -a '#u' /dev
- usb/usbd
-}
+nusbrc
# bind in an ip interface
for(i in I l^(0 1 2 3))
diff --git a/sys/src/9/boot/nusbrc b/sys/src/9/boot/nusbrc
new file mode 100644
index 000000000..0b6978677
--- /dev/null
+++ b/sys/src/9/boot/nusbrc
@@ -0,0 +1,18 @@
+#!/bin/rc
+
+if(! bind -a '#u' /dev)
+ exit
+if(! nusb/usbd)
+ exit
+
+fn dev {
+ switch($4){
+ case *03
+ nusb/kb $1
+ case *08
+ nusb/disk $1
+ }
+}
+rc </dev/usbevent &
+
+bind -a '#σ/usb' /dev
diff --git a/sys/src/9/port/bootfs.proto b/sys/src/9/port/bootfs.proto
index 274103264..5728e90ab 100644
--- a/sys/src/9/port/bootfs.proto
+++ b/sys/src/9/port/bootfs.proto
@@ -30,8 +30,10 @@ $cputype
srv
test
unmount
- usb
+ nusb
usbd
+ disk
+ kb
xd
rc
lib
@@ -41,5 +43,6 @@ rc
bin
fstype
diskparts
+ nusbrc 555 sys sys ../boot/nusbrc
bootrc 555 sys sys ../boot/bootrc
tmp
diff --git a/sys/src/cmd/nusb/usbd/usbd.c b/sys/src/cmd/nusb/usbd/usbd.c
index 97059e11d..84e121957 100644
--- a/sys/src/cmd/nusb/usbd/usbd.c
+++ b/sys/src/cmd/nusb/usbd/usbd.c
@@ -208,8 +208,7 @@ formatdev(Dev *d)
Usbdev *u;
u = d->usb;
- return smprint("in id %d vid 0x%.4x did 0x%.4x csp 0x%.8lx\n",
- d->id, u->vid, u->did, u->csp);
+ return smprint("dev %d %.4x %.4x %.8lx\n", d->id, u->vid, u->did, u->csp);
}
static void
@@ -333,8 +332,10 @@ main(int argc, char **argv)
{
int fd, i, nd;
Dir *d;
-
- argc--; argv++;
+
+ ARGBEGIN {
+ } ARGEND;
+
initevent();
rfork(RFNOTEG);
switch(rfork(RFPROC|RFMEM)){
@@ -358,4 +359,5 @@ main(int argc, char **argv)
rendezvous(work, strdup(argv[i]));
rendezvous(work, nil);
postsharesrv(&usbdsrv, nil, "usb", "usbd", "b");
+ exits(nil);
}