summaryrefslogtreecommitdiffstats
path: root/sys/dev/sio
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1995-10-22 15:38:08 +0000
committerbde <bde@FreeBSD.org>1995-10-22 15:38:08 +0000
commit2b02753359669b49ee92eeb7a287b8155864a203 (patch)
tree4c232c41290a8cd7ee09ceaad43f04b760e44d13 /sys/dev/sio
parent2f9bb19585533ae771443ea1c65fc20318aaff60 (diff)
downloadFreeBSD-src-2b02753359669b49ee92eeb7a287b8155864a203.zip
FreeBSD-src-2b02753359669b49ee92eeb7a287b8155864a203.tar.gz
sio.c:
Fix the tests for being a console by reverting to the ones that were used before the the RB_SERIAL changes. RB_SERIAL only needs to be tested in one place. The initialization of comconsole was wrong before the RB_SERIAL changes for the COMCONSOLE case. This may have been the cause of the unnecessary changes. Start eliminating #includes of <i386/i386/cons.h>. This header is supposed to be included from <machine> although it should be completely machine-independent and included from <sys>. Remove a wrong XXX comment. `comconsole' is used to test for being a console and even the tests for deciding the default termios state are necessary (the semi-reentrant i/o routines don't handle ordinary device i/o). cy.c: Sync with sio.c. The console tests are present but always fail.
Diffstat (limited to 'sys/dev/sio')
-rw-r--r--sys/dev/sio/sio.c47
1 files changed, 15 insertions, 32 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c
index a7b48ea..0f6b33f 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.113 1995/09/24 04:59:16 davidg Exp $
+ * $Id: sio.c,v 1.114 1995/10/21 00:55:25 phk Exp $
*/
#include "sio.h"
@@ -298,14 +298,7 @@ struct isa_driver siodriver = {
sioprobe, sioattach, "sio"
};
-#ifdef COMCONSOLE
-#undef COMCONSOLE
-#define COMCONSOLE 1
-#else
-#define COMCONSOLE 0
-#endif
-
-static int comconsole = CONUNIT;
+static int comconsole = -1;
static speed_t comdefaultrate = TTYDEF_SPEED;
static u_int com_events; /* input chars + weighted output completions */
static int commajor;
@@ -762,7 +755,7 @@ sioattach(isdp)
com->it_in.c_oflag = 0;
com->it_in.c_cflag = TTYDEF_CFLAG;
com->it_in.c_lflag = 0;
- if (unit == comconsole && (COMCONSOLE || boothowto & RB_SERIAL)) {
+ if (unit == comconsole) {
com->it_in.c_iflag = TTYDEF_IFLAG;
com->it_in.c_oflag = TTYDEF_OFLAG;
com->it_in.c_cflag = TTYDEF_CFLAG | CLOCAL;
@@ -855,13 +848,11 @@ determined_type: ;
#endif /* COM_MULTIPORT */
printf("\n");
- kdc_sio[unit].kdc_state =
- (unit == comconsole && (COMCONSOLE || boothowto & RB_SERIAL))
- ? DC_BUSY : DC_IDLE;
+ kdc_sio[unit].kdc_state = (unit == comconsole) ? DC_BUSY : DC_IDLE;
#ifdef KGDB
if (kgdb_dev == makedev(commajor, unit)) {
- if (unit == comconsole && (COMCONSOLE || boothowto & RB_SERIAL))
+ if (unit == comconsole)
kgdb_dev = -1; /* can't debug over console port */
else {
int divisor;
@@ -1161,8 +1152,7 @@ comhardclose(com)
com->active_out = FALSE;
wakeup(&com->active_out);
wakeup(TSA_CARR_ON(tp)); /* restart any wopeners */
- if (!(com->state & CS_DTR_OFF)
- && !(unit == comconsole && (COMCONSOLE || boothowto & RB_SERIAL)))
+ if (!(com->state & CS_DTR_OFF) && unit != comconsole)
kdc_sio[unit].kdc_state = DC_IDLE;
splx(s);
}
@@ -1211,8 +1201,7 @@ siowrite(dev, uio, flag)
* is not the console. In that situation we don't need/want the X
* server taking over the console.
*/
- if (constty && unit == comconsole
- && (COMCONSOLE || boothowto & RB_SERIAL))
+ if (constty != NULL && unit == comconsole)
constty = NULL;
return ((*linesw[tp->t_line].l_write)(tp, uio, flag));
}
@@ -1225,7 +1214,7 @@ siodtrwakeup(chan)
com = (struct com_s *)chan;
com->state &= ~CS_DTR_OFF;
- if (!(com->unit == comconsole && (COMCONSOLE || boothowto & RB_SERIAL)))
+ if (com->unit != comconsole)
kdc_sio[com->unit].kdc_state = DC_IDLE;
wakeup(&com->dtr_wait);
}
@@ -1306,8 +1295,7 @@ siointr1(com)
if (line_status & (LSR_PE|LSR_FE|LSR_BI)) {
#ifdef DDB
#ifdef BREAK_TO_DEBUGGER
- if ( (line_status & LSR_BI)
- && (COMCONSOLE || boothowto & RB_SERIAL)
+ if (line_status & LSR_BI
&& com->unit == comconsole) {
Debugger("serial console break");
goto cont;
@@ -2056,7 +2044,6 @@ siostop(tp, rw)
}
enable_intr();
comstart(tp);
- return;
/* XXX should clear h/w fifos too. */
}
@@ -2279,7 +2266,7 @@ disc_optim(tp, t, com)
/*
* Following are all routines needed for SIO to act as console
*/
-#include <i386/i386/cons.h>
+#include <machine/cons.h>
struct siocnstate {
u_char dlbl;
@@ -2386,21 +2373,17 @@ siocnprobe(cp)
/* initialize required fields */
cp->cn_dev = makedev(commajor, unit);
-
- if (COMCONSOLE || boothowto & RB_SERIAL)
- cp->cn_pri = CN_REMOTE; /* Force a serial port console */
- else
- cp->cn_pri = CN_NORMAL;
+#ifdef COMCONSOLE
+ cp->cn_pri = CN_REMOTE; /* Force a serial port console */
+#else
+ cp->cn_pri = (boothowto & RB_SERIAL) ? CN_REMOTE : CN_NORMAL;
+#endif
}
void
siocninit(cp)
struct consdev *cp;
{
- /*
- * XXX can delete more comconsole stuff now that i/o routines are
- * fairly reentrant.
- */
comconsole = DEV_TO_UNIT(cp->cn_dev);
}
OpenPOWER on IntegriCloud