summaryrefslogtreecommitdiff
path: root/sys/arch/i386
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1999-07-23 13:18:05 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1999-07-23 13:18:05 +0000
commit193275208f104d335682d80b870dd63dacf3c79f (patch)
treefa5c0b9188ef36bc8beb0504200ed2f648dec1b0 /sys/arch/i386
parentf57734e5260a6aa92634a8d4e74c9c4159e0079d (diff)
From NetBSD; let i386 run audio at a high IPL
Diffstat (limited to 'sys/arch/i386')
-rw-r--r--sys/arch/i386/include/intr.h18
-rw-r--r--sys/arch/i386/isa/isa_machdep.c3
2 files changed, 12 insertions, 9 deletions
diff --git a/sys/arch/i386/include/intr.h b/sys/arch/i386/include/intr.h
index 7c602bf9220..897b0e78401 100644
--- a/sys/arch/i386/include/intr.h
+++ b/sys/arch/i386/include/intr.h
@@ -33,13 +33,14 @@
#define _I386_INTR_H_
/* Interrupt priority `levels'; not mutually exclusive. */
-#define IPL_BIO 0 /* block I/O */
-#define IPL_NET 1 /* network */
-#define IPL_TTY 2 /* terminal */
-#define IPL_CLOCK 3 /* clock */
+#define IPL_NONE 0 /* nothing */
+#define IPL_BIO 1 /* block I/O */
+#define IPL_NET 2 /* network */
+#define IPL_TTY 3 /* terminal */
#define IPL_IMP 4 /* memory allocation */
-#define IPL_NONE 5 /* nothing */
-#define IPL_HIGH 6 /* everything */
+#define IPL_AUDIO 5 /* audio */
+#define IPL_CLOCK 6 /* clock */
+#define IPL_HIGH 7 /* everything */
/* Interrupt sharing types. */
#define IST_NONE 0 /* none */
@@ -117,8 +118,8 @@ spllower(ncpl)
#define splbio() splraise(imask[IPL_BIO])
#define splnet() splraise(imask[IPL_NET])
#define spltty() splraise(imask[IPL_TTY])
+#define splaudio() splraise(imask[IPL_AUDIO])
#define splclock() splraise(imask[IPL_CLOCK])
-#define splimp() splraise(imask[IPL_IMP])
#define splstatclock() splhigh()
/*
@@ -134,7 +135,8 @@ spllower(ncpl)
/*
* Miscellaneous
*/
-#define splhigh() splraise(-1)
+#define splimp() splraise(imask[IPL_IMP])
+#define splhigh() splraise(imask[IPL_HIGH])
#define spl0() spllower(0)
/*
diff --git a/sys/arch/i386/isa/isa_machdep.c b/sys/arch/i386/isa/isa_machdep.c
index 79019138dc7..67b908760b8 100644
--- a/sys/arch/i386/isa/isa_machdep.c
+++ b/sys/arch/i386/isa/isa_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isa_machdep.c,v 1.33 1998/12/31 09:17:52 deraadt Exp $ */
+/* $OpenBSD: isa_machdep.c,v 1.34 1999/07/23 13:18:04 niklas Exp $ */
/* $NetBSD: isa_machdep.c,v 1.22 1997/06/12 23:57:32 thorpej Exp $ */
#define ISA_DMA_STATS
@@ -325,6 +325,7 @@ intr_calculatemasks()
* time, so imp > (tty | net | bio).
*/
imask[IPL_IMP] |= imask[IPL_TTY] | imask[IPL_NET] | imask[IPL_BIO];
+ imask[IPL_AUDIO] |= imask[IPL_IMP];
/*
* Enforce a hierarchy that gives slow devices a better chance at not