diff options
author | ache <ache@FreeBSD.org> | 1995-03-29 21:26:37 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1995-03-29 21:26:37 +0000 |
commit | 5c4a48ab30403715d1e99d87f566d021cca9b5a7 (patch) | |
tree | 4a3a9a880c9c8a82d2d034a73326668c9a5beb4e /sys/i386/isa/cx.c | |
parent | f1c731a93f079b205c0f2e37d5af88d3e6d3bcc2 (diff) | |
download | FreeBSD-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.c | 21 |
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; |