summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/cx.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1995-03-29 21:26:37 +0000
committerache <ache@FreeBSD.org>1995-03-29 21:26:37 +0000
commit5c4a48ab30403715d1e99d87f566d021cca9b5a7 (patch)
tree4a3a9a880c9c8a82d2d034a73326668c9a5beb4e /sys/i386/isa/cx.c
parentf1c731a93f079b205c0f2e37d5af88d3e6d3bcc2 (diff)
downloadFreeBSD-src-5c4a48ab30403715d1e99d87f566d021cca9b5a7.zip
FreeBSD-src-5c4a48ab30403715d1e99d87f566d021cca9b5a7.tar.gz
Fixes for new TTY_BI & TTY_OE
Diffstat (limited to 'sys/i386/isa/cx.c')
-rw-r--r--sys/i386/isa/cx.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/sys/i386/isa/cx.c b/sys/i386/isa/cx.c
index 2ee5df8..120cef7 100644
--- a/sys/i386/isa/cx.c
+++ b/sys/i386/isa/cx.c
@@ -782,17 +782,22 @@ int cxrinta (cx_chan_t *c)
if (risr & RIS_BUSERR)
printf ("cx%d.%d: receive bus error\n", c->board->num, c->num);
- if (risr & (RIS_OVERRUN | RISA_PARERR | RISA_FRERR)) {
- print (("cx%d.%d: receive error\n", c->board->num, c->num));
+ if (risr & (RIS_OVERRUN | RISA_PARERR | RISA_FRERR | RISA_BREAK)) {
+ int err = 0;
+
+ if (risr & RISA_OVERRUN)
+ err |= TTY_OE;
+ if (risr & RISA_PARERR)
+ err |= TTY_PE;
+ if (risr & RISA_FRERR)
+ err |= TTY_FE;
+ if (risr & RISA_BREAK)
+ err |= TTY_BI;
+ print (("cx%d.%d: receive error %x\n", c->board->num, c->num, err));
if (tp && (tp->t_state & TS_ISOPEN))
- (*linesw[tp->t_line].l_rint) (' ' |
- (risr & RISA_FRERR) ? TTY_FE : TTY_PE, tp);
+ (*linesw[tp->t_line].l_rint) (err, tp);
}
- /* Handle line break condition. */
- if ((risr & RISA_BREAK) && tp && (tp->t_state & TS_ISOPEN))
- (*linesw[tp->t_line].l_rint) (TTY_FE, tp);
-
/* Discard exception characters. */
if ((risr & RISA_SCMASK) && (tp->t_iflag & IXON))
reoir |= REOI_DISCEXC;
OpenPOWER on IntegriCloud