summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1998-07-12 16:15:06 +0000
committerdfr <dfr@FreeBSD.org>1998-07-12 16:15:06 +0000
commitc53bd8654e0ddb7c13a9a74f850b423c39713612 (patch)
tree6a8ae1e814135b706510422a04eac5b874aa0974 /sys
parent483a019b6e150bdd829837086b1636c3ea201104 (diff)
downloadFreeBSD-src-c53bd8654e0ddb7c13a9a74f850b423c39713612.zip
FreeBSD-src-c53bd8654e0ddb7c13a9a74f850b423c39713612.tar.gz
Implement promcncheckc.
Diffstat (limited to 'sys')
-rw-r--r--sys/alpha/alpha/prom.c18
-rw-r--r--sys/alpha/alpha/promcons.c6
-rw-r--r--sys/alpha/include/prom.h2
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));
OpenPOWER on IntegriCloud