summaryrefslogtreecommitdiff
path: root/sys/dev/rc/rc.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2000-10-25 05:19:40 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2000-10-25 05:19:40 +0000
commit8088699f795d34421f429d5539e8e68cbaf3115c (patch)
tree9894f99096605a24f42fc4e18482dead42b189a5 /sys/dev/rc/rc.c
parent650789cb1b390b2ef141e62d03f950d8bec38bd5 (diff)
Notes
Diffstat (limited to 'sys/dev/rc/rc.c')
-rw-r--r--sys/dev/rc/rc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/rc/rc.c b/sys/dev/rc/rc.c
index 22c82c2ad477..fc35bd5d3e72 100644
--- a/sys/dev/rc/rc.c
+++ b/sys/dev/rc/rc.c
@@ -172,6 +172,8 @@ static int rc_rcsrt[16] = {
TTY_BI|TTY_PE|TTY_FE|TTY_OE
};
+static struct intrhand *rc_ih;
+
/* Static prototypes */
static ointhand2_t rcintr;
static void rc_hwreset __P((int, int, unsigned int));
@@ -268,7 +270,8 @@ rcattach(dvp)
rcb->rcb_probed = RC_ATTACHED;
if (!rc_started) {
cdevsw_add(&rc_cdevsw);
- register_swi(SWI_TTY, rcpoll);
+ rc_ih = sinthand_add("tty:rc", &tty_ithd, rcpoll, NULL,
+ SWI_TTY, 0);
rc_wakeup((void *)NULL);
rc_started = 1;
}
@@ -362,7 +365,7 @@ rcintr(unit)
optr++;
rc_scheduled_event++;
if (val != 0 && val == rc->rc_hotchar)
- setsofttty();
+ sched_swi(rc_ih, SWI_NOSWITCH);
}
} else {
/* Store also status data */
@@ -393,7 +396,7 @@ rcintr(unit)
&& (rc->rc_tp->t_iflag & INPCK))))
val = 0;
else if (val != 0 && val == rc->rc_hotchar)
- setsofttty();
+ sched_swi(rc_ih, SWI_NOSWITCH);
optr[0] = val;
optr[INPUT_FLAGS_SHIFT] = iack;
optr++;
@@ -440,7 +443,7 @@ rcintr(unit)
if ((iack & MCR_CDchg) && !(rc->rc_flags & RC_MODCHG)) {
rc_scheduled_event += LOTS_OF_EVENTS;
rc->rc_flags |= RC_MODCHG;
- setsofttty();
+ sched_swi(rc_ih, SWI_NOSWITCH);
}
goto more_intrs;
}
@@ -481,7 +484,7 @@ rcintr(unit)
if (!(rc->rc_flags & RC_DOXXFER)) {
rc_scheduled_event += LOTS_OF_EVENTS;
rc->rc_flags |= RC_DOXXFER;
- setsofttty();
+ sched_swi(rc_ih, SWI_NOSWITCH);
}
}
}