summaryrefslogtreecommitdiff
path: root/sys/src/cmd/nusb/serial/serial.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-07-05 06:01:03 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-07-05 06:01:03 +0200
commit502247bf92f380a642b8e17048466c18bb9efd24 (patch)
tree6def2bea9f0977c82481a0dcab6adaf4b7de10dc /sys/src/cmd/nusb/serial/serial.c
parent336e605a1191efe1293333bac3b4f76d07b9f89b (diff)
nusb/serial: more cleanup
Diffstat (limited to 'sys/src/cmd/nusb/serial/serial.c')
-rw-r--r--sys/src/cmd/nusb/serial/serial.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/sys/src/cmd/nusb/serial/serial.c b/sys/src/cmd/nusb/serial/serial.c
index c543dde40..1fd804bd3 100644
--- a/sys/src/cmd/nusb/serial/serial.c
+++ b/sys/src/cmd/nusb/serial/serial.c
@@ -12,11 +12,7 @@
#include "usb.h"
#include "serial.h"
-
-
int serialdebug;
-static int sdebug;
-
Serialport **ports;
int nports;
@@ -308,6 +304,17 @@ serdumpst(Serialport *p, char *buf, int bufsz)
return s;
}
+Cinfo*
+matchid(Cinfo *tab, int vid, int did)
+{
+ while(tab->vid != 0){
+ if(tab->vid == vid && (tab->did == did || did == 0))
+ return tab;
+ tab++;
+ }
+ return nil;
+}
+
static int
serinit(Serialport *p)
{
@@ -755,10 +762,10 @@ static Srv serialfs = {
.end = dend,
};
-int ftmatch(Serial *ser, char *info);
-int plmatch(Serial *ser, char *info);
-int slmatch(Serial *ser, char *info);
-int uconsmatch(Serial *ser, char *info);
+extern int ftprobe(Serial *ser);
+extern int plprobe(Serial *ser);
+extern int slprobe(Serial *ser);
+extern int uconsprobe(Serial *ser);
void
threadmain(int argc, char* argv[])
@@ -790,14 +797,11 @@ threadmain(int argc, char* argv[])
ser->jtag = -1;
ser->nifcs = 1;
- snprint(buf, sizeof buf, "vid %#06x did %#06x",
- dev->usb->vid, dev->usb->did);
-
/* probe all the drivers */
- if(plmatch(ser, buf)
- && uconsmatch(ser, buf)
- && ftmatch(ser, buf)
- && slmatch(ser, buf))
+ if(plprobe(ser)
+ && uconsprobe(ser)
+ && ftprobe(ser)
+ && slprobe(ser))
sysfatal("no serial devices found");
for(i = 0; i < ser->nifcs; i++){
@@ -818,9 +822,8 @@ threadmain(int argc, char* argv[])
for(i = 0; i < ser->nifcs; i++){
p = &ser->p[i];
dprint(2, "serial: valid interface, calling serinit\n");
- if(serinit(p) < 0){
+ if(serinit(p) < 0)
sysfatal("wserinit: %r");
- }
dsprint(2, "serial: adding interface %d, %p\n", p->interfc, p);
if(ser->nifcs == 1)
@@ -835,10 +838,7 @@ threadmain(int argc, char* argv[])
}
qunlock(ser);
- if(nports == 0)
- threadexits("no ports");
-
snprint(buf, sizeof buf, "%d.serial", dev->id);
threadpostsharesrv(&serialfs, nil, "usb", buf);
- threadexits(0);
+ threadexits(nil);
}