diff options
| author | Mark Murray <markm@FreeBSD.org> | 1999-06-17 21:07:59 +0000 |
|---|---|---|
| committer | Mark Murray <markm@FreeBSD.org> | 1999-06-17 21:07:59 +0000 |
| commit | 9c0592b82132a52e3d98e5daa30d8a7bf4f17b08 (patch) | |
| tree | 19022ff5b7c115a9cb88ff70057a31a76b73d4d2 /usr.sbin/pccard | |
| parent | 69794500366688775a54db30cc9f5bab6f052af7 (diff) | |
Notes
Diffstat (limited to 'usr.sbin/pccard')
| -rw-r--r-- | usr.sbin/pccard/pccardd/file.c | 11 | ||||
| -rw-r--r-- | usr.sbin/pccard/pccardd/pccardd.c | 22 |
2 files changed, 28 insertions, 5 deletions
diff --git a/usr.sbin/pccard/pccardd/file.c b/usr.sbin/pccard/pccardd/file.c index e638a4ea1118..344aa343a609 100644 --- a/usr.sbin/pccard/pccardd/file.c +++ b/usr.sbin/pccard/pccardd/file.c @@ -26,7 +26,7 @@ #ifndef lint static const char rcsid[] = - "$Id: file.c,v 1.15 1998/04/25 17:52:15 hosokawa Exp $"; + "$Id: file.c,v 1.16 1998/04/25 18:10:10 hosokawa Exp $"; #endif /* not lint */ #include <stdio.h> @@ -112,10 +112,16 @@ static void parsefile(void) { int i; + int irq_init = 0; struct allocblk *bp; pushc = 0; lineno = 1; + for (i = 0; i < 16 ; i++) + if (pool_irq[i]) { + irq_init = 1; + break; + } for (;;) switch (keyword(next_tok())) { case KWD_EOF: @@ -138,7 +144,8 @@ parsefile(void) case KWD_IRQ: /* reserved irqs */ while ((i = irq_tok(0)) > 0) - pool_irq[i] = 1; + if (!irq_init) + pool_irq[i] = 1; pusht = 1; break; case KWD_MEMORY: diff --git a/usr.sbin/pccard/pccardd/pccardd.c b/usr.sbin/pccard/pccardd/pccardd.c index 3525fac9822a..10013747c331 100644 --- a/usr.sbin/pccard/pccardd/pccardd.c +++ b/usr.sbin/pccard/pccardd/pccardd.c @@ -26,7 +26,7 @@ #ifndef lint static const char rcsid[] = - "$Id: pccardd.c,v 1.1 1998/02/27 08:19:25 hosokawa Exp $"; + "$Id: pccardd.c,v 1.2 1998/03/09 05:18:58 hosokawa Exp $"; #endif /* not lint */ #include <stdio.h> @@ -48,8 +48,10 @@ main(int argc, char *argv[]) struct slot *slots, *sp; int count, dodebug = 0; int doverbose = 0; + int delay = 0; + int i; - while ((count = getopt(argc, argv, ":dvf:")) != -1) { + while ((count = getopt(argc, argv, ":dvf:i:z")) != -1) { switch (count) { case 'd': setbuf(stdout, 0); @@ -62,6 +64,17 @@ main(int argc, char *argv[]) case 'f': config_file = optarg; break; + case 'i': + /* supress specified irq */ + if (sscanf(optarg, "%d", &i) != 1) { + fprintf(stderr, "%s: -i number\n", argv[0]); + exit(1); + } + pool_irq[i] = 1; + break; + case 'z': + delay = 1; + break; case ':': die("no config file argument"); break; @@ -81,12 +94,15 @@ main(int argc, char *argv[]) if (doverbose) dump_config_file(); log_setup(); - if (!dodebug) + if (!dodebug && !delay) if (daemon(0, 0)) die("fork failed"); slots = readslots(); if (slots == 0) die("no PC-CARD slots"); + if (delay) + if (daemon(0, 0)) + die("fork failed"); logmsg("pccardd started", NULL); for (;;) { fd_set mask; |
