summaryrefslogtreecommitdiff
path: root/sys/arch/amiga/dev/mfc.c
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1996-03-24 17:26:26 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1996-03-24 17:26:26 +0000
commit77fe2df75e23cea2c9d62e5b25a796c31a221234 (patch)
treec1a0bcd07c4eba877c38dd63875dfffcb5535ac9 /sys/arch/amiga/dev/mfc.c
parent6d636619d1bb24932306f0a341fa7ae66050828f (diff)
Use IPL_ constants instead of numeric values. Get rid of sicallbacks
in favour of the remapped IPL facility. Some argument type fixes as well.
Diffstat (limited to 'sys/arch/amiga/dev/mfc.c')
-rw-r--r--sys/arch/amiga/dev/mfc.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/arch/amiga/dev/mfc.c b/sys/arch/amiga/dev/mfc.c
index f0c7280e93b..f9f4a037e87 100644
--- a/sys/arch/amiga/dev/mfc.c
+++ b/sys/arch/amiga/dev/mfc.c
@@ -47,6 +47,7 @@
#include <sys/kernel.h>
#include <sys/syslog.h>
#include <sys/queue.h>
+#include <machine/psl.h>
#include <machine/cpu.h>
#include <amiga/amiga/device.h>
#include <amiga/amiga/isr.h>
@@ -363,7 +364,7 @@ mfcattach(pdp, dp, auxp)
scc->sc_isr.isr_arg = scc;
scc->sc_isr.isr_ipl = 6;
#if defined(IPL_REMAP_1) || defined(IPL_REMAP_2)
- scc->sc_isr.isr_mapped_ipl = 3;
+ scc->sc_isr.isr_mapped_ipl = IPL_TTY;
#endif
add_isr(&scc->sc_isr);
@@ -994,10 +995,16 @@ mfcintr (scc)
tp->t_state &= ~(TS_BUSY | TS_FLUSH);
scc->imask &= ~0x01;
regs->du_imr = scc->imask;
+#if defined(IPL_REMAP_1) || defined(IPL_REMAP_2)
+ if (tp->t_line)
+ (*linesw[tp->t_line].l_start)(tp);
+ else
+ mfcsstart(tp);
+#else
add_sicallback (tp->t_line ?
(sifunc_t)linesw[tp->t_line].l_start
: (sifunc_t)mfcsstart, tp, NULL);
-
+#endif
}
else
regs->du_tba = *sc->ptr++;
@@ -1009,9 +1016,16 @@ mfcintr (scc)
tp->t_state &= ~(TS_BUSY | TS_FLUSH);
scc->imask &= ~0x10;
regs->du_imr = scc->imask;
+#if defined(IPL_REMAP_1) || defined(IPL_REMAP_2)
+ if (tp->t_line)
+ (*linesw[tp->t_line].l_start)(tp);
+ else
+ mfcsstart(tp);
+#else
add_sicallback (tp->t_line ?
(sifunc_t)linesw[tp->t_line].l_start
: (sifunc_t)mfcsstart, tp, NULL);
+#endif
}
else
regs->du_tbb = *sc->ptr++;