From 74fbff447daa6bd9a49e9add952d30183d5fb4fa Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Thu, 20 Oct 1994 00:45:36 +0000 Subject: [PATCH] A missing bit from Peter Dufaults patches, as best I could guess... --- sys/dev/sio/sio.c | 23 ++++++++++++++++++++++- sys/i386/isa/sio.c | 23 ++++++++++++++++++++++- sys/isa/sio.c | 23 ++++++++++++++++++++++- 3 files changed, 66 insertions(+), 3 deletions(-) diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 1f359c211b21..54133abc5254 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.55 1994/10/15 18:05:25 ache Exp $ + * $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $ */ #include "sio.h" @@ -263,6 +263,7 @@ int sioselect __P((dev_t dev, int rw, struct proc *p)); /* Console device entry points. */ int siocngetc __P((dev_t dev)); +int siocncheckc __P((dev_t dev)); struct consdev; void siocninit __P((struct consdev *cp)); void siocnprobe __P((struct consdev *cp)); @@ -2000,6 +2001,26 @@ siocninit(cp) comconsole = DEV_TO_UNIT(cp->cn_dev); } +int +siocncheckc(dev) + dev_t dev; +{ + int c=0; + Port_t iobase; + int s; + struct siocnstate sp; + + iobase = siocniobase; + s = spltty(); + siocnopen(&sp); + if (inb(iobase + com_lsr) & LSR_RXRDY) + c = inb(iobase + com_data); + siocnclose(&sp); + splx(s); + return (c); +} + + int siocngetc(dev) dev_t dev; diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c index 1f359c211b21..54133abc5254 100644 --- a/sys/i386/isa/sio.c +++ b/sys/i386/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.55 1994/10/15 18:05:25 ache Exp $ + * $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $ */ #include "sio.h" @@ -263,6 +263,7 @@ int sioselect __P((dev_t dev, int rw, struct proc *p)); /* Console device entry points. */ int siocngetc __P((dev_t dev)); +int siocncheckc __P((dev_t dev)); struct consdev; void siocninit __P((struct consdev *cp)); void siocnprobe __P((struct consdev *cp)); @@ -2000,6 +2001,26 @@ siocninit(cp) comconsole = DEV_TO_UNIT(cp->cn_dev); } +int +siocncheckc(dev) + dev_t dev; +{ + int c=0; + Port_t iobase; + int s; + struct siocnstate sp; + + iobase = siocniobase; + s = spltty(); + siocnopen(&sp); + if (inb(iobase + com_lsr) & LSR_RXRDY) + c = inb(iobase + com_data); + siocnclose(&sp); + splx(s); + return (c); +} + + int siocngetc(dev) dev_t dev; diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 1f359c211b21..54133abc5254 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.55 1994/10/15 18:05:25 ache Exp $ + * $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $ */ #include "sio.h" @@ -263,6 +263,7 @@ int sioselect __P((dev_t dev, int rw, struct proc *p)); /* Console device entry points. */ int siocngetc __P((dev_t dev)); +int siocncheckc __P((dev_t dev)); struct consdev; void siocninit __P((struct consdev *cp)); void siocnprobe __P((struct consdev *cp)); @@ -2000,6 +2001,26 @@ siocninit(cp) comconsole = DEV_TO_UNIT(cp->cn_dev); } +int +siocncheckc(dev) + dev_t dev; +{ + int c=0; + Port_t iobase; + int s; + struct siocnstate sp; + + iobase = siocniobase; + s = spltty(); + siocnopen(&sp); + if (inb(iobase + com_lsr) & LSR_RXRDY) + c = inb(iobase + com_data); + siocnclose(&sp); + splx(s); + return (c); +} + + int siocngetc(dev) dev_t dev;