diff options
author | dfr <dfr@FreeBSD.org> | 1998-07-12 16:15:06 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1998-07-12 16:15:06 +0000 |
commit | c53bd8654e0ddb7c13a9a74f850b423c39713612 (patch) | |
tree | 6a8ae1e814135b706510422a04eac5b874aa0974 /sys | |
parent | 483a019b6e150bdd829837086b1636c3ea201104 (diff) | |
download | FreeBSD-src-c53bd8654e0ddb7c13a9a74f850b423c39713612.zip FreeBSD-src-c53bd8654e0ddb7c13a9a74f850b423c39713612.tar.gz |
Implement promcncheckc.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/alpha/prom.c | 18 | ||||
-rw-r--r-- | sys/alpha/alpha/promcons.c | 6 | ||||
-rw-r--r-- | sys/alpha/include/prom.h | 2 |
3 files changed, 12 insertions, 14 deletions
diff --git a/sys/alpha/alpha/prom.c b/sys/alpha/alpha/prom.c index f5529e5..7e3f8a0 100644 --- a/sys/alpha/alpha/prom.c +++ b/sys/alpha/alpha/prom.c @@ -50,7 +50,7 @@ #include <machine/cons.h> /* XXX this is to fake out the console routines, while booting. */ -struct consdev promcons = { NULL, NULL, promcngetc, NULL, promcnputc, +struct consdev promcons = { NULL, NULL, promcngetc, promcncheckc, promcnputc, NULL, makedev(97,0), CN_NORMAL }; struct rpb *hwrpb; @@ -231,14 +231,13 @@ promcngetc(dev) } /* - * promcnlookc: + * promcncheckc * - * See if prom has a real char and pass it back. + * If a char is ready, return it, otherwise return -1. */ int -promcnlookc(dev, cp) +promcncheckc(dev) dev_t dev; - char *cp; { prom_return_t ret; int s; @@ -246,11 +245,10 @@ promcnlookc(dev, cp) s = enter_prom(); ret.bits = prom_getc(alpha_console); leave_prom(s); - if (ret.u.status == 0 || ret.u.status == 1) { - *cp = ret.u.retval; - return 1; - } else - return 0; + if (ret.u.status == 0 || ret.u.status == 1) + return (ret.u.retval); + else + return (-1); } int diff --git a/sys/alpha/alpha/promcons.c b/sys/alpha/alpha/promcons.c index 7c6da40..9759a26 100644 --- a/sys/alpha/alpha/promcons.c +++ b/sys/alpha/alpha/promcons.c @@ -1,4 +1,4 @@ -/* $Id$ */ +/* $Id: promcons.c,v 1.2 1998/07/05 11:59:44 dfr Exp $ */ /* $NetBSD: promcons.c,v 1.13 1998/03/21 22:52:59 mycroft Exp $ */ /* @@ -245,9 +245,9 @@ promtimeout(v) void *v; { struct tty *tp = v; - u_char c; + int c; - while (promcnlookc(tp->t_dev, &c)) { + while ((c = promcncheckc(tp->t_dev)) != -1) { if (tp->t_state & TS_ISOPEN) (*linesw[tp->t_line].l_rint)(c, tp); } diff --git a/sys/alpha/include/prom.h b/sys/alpha/include/prom.h index 84f5f9c..d3bee60 100644 --- a/sys/alpha/include/prom.h +++ b/sys/alpha/include/prom.h @@ -95,7 +95,7 @@ int prom_getenv __P((int, char *, int)); #ifdef KERNEL void promcnputc __P((dev_t, int)); int promcngetc __P((dev_t)); -int promcnlookc __P((dev_t, char *)); +int promcncheckc __P((dev_t)); u_int64_t prom_dispatch __P((u_int64_t, u_int64_t, u_int64_t, u_int64_t, u_int64_t)); |