aboutsummaryrefslogtreecommitdiff
path: root/sys/pc98
diff options
context:
space:
mode:
authorNick Hibma <n_hibma@FreeBSD.org>2002-06-18 21:30:37 +0000
committerNick Hibma <n_hibma@FreeBSD.org>2002-06-18 21:30:37 +0000
commitd8dbc77c56c7f0e8a5b5adcffd074071b02bb205 (patch)
treee59c17b9c6f153be7cb57be48355a858e1eee1e9 /sys/pc98
parent54f43a77ca857599dc8ebfdf52846a7ac2cc0768 (diff)
Notes
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/cbus/sio.c41
-rw-r--r--sys/pc98/pc98/sio.c41
2 files changed, 52 insertions, 30 deletions
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index 7ff381681f7fe..85b073ce3f8a2 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -430,9 +430,9 @@ int comconsole = -1;
static volatile speed_t comdefaultrate = CONSPEED;
static u_long comdefaultrclk = DEFAULT_RCLK;
SYSCTL_ULONG(_machdep, OID_AUTO, conrclk, CTLFLAG_RW, &comdefaultrclk, 0, "");
-#ifdef __alpha__
-static volatile speed_t gdbdefaultrate = CONSPEED;
-#endif
+static speed_t gdbdefaultrate = GDBSPEED;
+SYSCTL_UINT(_machdep, OID_AUTO, gdbspeed, CTLFLAG_RW,
+ &gdbdefaultrate, GDBSPEED, "");
static u_int com_events; /* input chars + weighted output completions */
static Port_t siocniobase;
#ifndef __alpha__
@@ -4359,13 +4359,17 @@ siocncheckc(dev)
Port_t iobase;
int s;
struct siocnstate sp;
+ speed_t speed;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
if (inb(iobase + com_lsr) & LSR_RXRDY)
c = inb(iobase + com_data);
else
@@ -4384,13 +4388,17 @@ siocngetc(dev)
Port_t iobase;
int s;
struct siocnstate sp;
+ speed_t speed;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
while (!(inb(iobase + com_lsr) & LSR_RXRDY))
;
c = inb(iobase + com_data);
@@ -4409,17 +4417,20 @@ siocnputc(dev, c)
struct siocnstate sp;
Port_t iobase;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
need_unlock = 0;
if (sio_inited == 2 && !mtx_owned(&sio_lock)) {
mtx_lock_spin(&sio_lock);
need_unlock = 1;
}
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);
diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c
index 7ff381681f7fe..85b073ce3f8a2 100644
--- a/sys/pc98/pc98/sio.c
+++ b/sys/pc98/pc98/sio.c
@@ -430,9 +430,9 @@ int comconsole = -1;
static volatile speed_t comdefaultrate = CONSPEED;
static u_long comdefaultrclk = DEFAULT_RCLK;
SYSCTL_ULONG(_machdep, OID_AUTO, conrclk, CTLFLAG_RW, &comdefaultrclk, 0, "");
-#ifdef __alpha__
-static volatile speed_t gdbdefaultrate = CONSPEED;
-#endif
+static speed_t gdbdefaultrate = GDBSPEED;
+SYSCTL_UINT(_machdep, OID_AUTO, gdbspeed, CTLFLAG_RW,
+ &gdbdefaultrate, GDBSPEED, "");
static u_int com_events; /* input chars + weighted output completions */
static Port_t siocniobase;
#ifndef __alpha__
@@ -4359,13 +4359,17 @@ siocncheckc(dev)
Port_t iobase;
int s;
struct siocnstate sp;
+ speed_t speed;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
if (inb(iobase + com_lsr) & LSR_RXRDY)
c = inb(iobase + com_data);
else
@@ -4384,13 +4388,17 @@ siocngetc(dev)
Port_t iobase;
int s;
struct siocnstate sp;
+ speed_t speed;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
while (!(inb(iobase + com_lsr) & LSR_RXRDY))
;
c = inb(iobase + com_data);
@@ -4409,17 +4417,20 @@ siocnputc(dev, c)
struct siocnstate sp;
Port_t iobase;
- if (minor(dev) == siogdbunit)
- iobase = siogdbiobase;
- else
+ if (minor(dev) == siocnunit) {
iobase = siocniobase;
+ speed = comdefaultrate;
+ } else {
+ iobase = siogdbiobase;
+ speed = gdbdefaultrate;
+ }
s = spltty();
need_unlock = 0;
if (sio_inited == 2 && !mtx_owned(&sio_lock)) {
mtx_lock_spin(&sio_lock);
need_unlock = 1;
}
- siocnopen(&sp, iobase, comdefaultrate);
+ siocnopen(&sp, iobase, speed);
siocntxwait(iobase);
outb(iobase + com_data, c);
siocnclose(&sp, iobase);