summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
Diffstat (limited to 'sys/isa')
-rw-r--r--sys/isa/sio.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/sys/isa/sio.c b/sys/isa/sio.c
index c95a708..3b432dd 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.85 1995/04/02 04:21:09 ache Exp $
+ * $Id: sio.c,v 1.86 1995/04/02 19:28:58 ache Exp $
*/
#include "sio.h"
@@ -162,6 +162,7 @@ typedef u_char bool_t; /* boolean */
/* com device structure */
struct com_s {
+ int unit; /* unit number */
u_char state; /* miscellaneous flag bits */
bool_t active_out; /* nonzero if the callout device is open */
u_char cfcr_image; /* copy of value written to CFCR */
@@ -590,6 +591,7 @@ sioattach(isdp)
* device from sending before we are ready.
*/
bzero(com, sizeof *com);
+ com->unit = unit;
com->cfcr_image = CFCR_8BITS;
com->dtr_wait = 3 * hz;
com->no_irq = isdp->id_irq == 0;
@@ -933,7 +935,7 @@ comhardclose(com)
struct tty *tp;
int unit;
- unit = DEV_TO_UNIT(com->tp->t_dev);
+ unit = com->unit;
iobase = com->iobase;
s = spltty();
com->poll = FALSE;
@@ -1025,7 +1027,7 @@ siodtrwakeup(chan)
com = (struct com_s *)chan;
com->state &= ~CS_DTR_OFF;
- kdc_sio[DEV_TO_UNIT(com->tp->t_dev)].kdc_state = DC_IDLE;
+ kdc_sio[com->unit].kdc_state = DC_IDLE;
wakeup(&com->dtr_wait);
}
@@ -1102,6 +1104,14 @@ siointr1(com)
else
recv_data = inb(com->data_port);
if (line_status & (LSR_PE|LSR_FE|LSR_BI)) {
+#ifdef DDB
+ if ( (line_status & LSR_BI)
+ && (COMCONSOLE || boothowto & RB_SERIAL)
+ && com->unit == comconsole) {
+ Debugger("serial console break");
+ goto cont;
+ }
+#endif
/*
Don't store PE if IGNPAR and BI if IGNBRK,
this hack allows "raw" tty optimization
OpenPOWER on IntegriCloud