summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-06-16 22:42:19 +0000
committerpeter <peter@FreeBSD.org>2001-06-16 22:42:19 +0000
commit38ecd59e07aead868125833230bcfd1b264ff134 (patch)
tree8b05dd9fcd4ed2f9f1ec0ddcee158e4ad7471fb5 /sys
parente3c015c7bb30e37b8baa372735c845822263fc52 (diff)
downloadFreeBSD-src-38ecd59e07aead868125833230bcfd1b264ff134.zip
FreeBSD-src-38ecd59e07aead868125833230bcfd1b264ff134.tar.gz
Add INTR_TYPE_AV so that we can get to the PI_AV priority in the ithread
handlers. This is beneficial since it means that pcm's MPSAFE handler can get run before things that will block on Giant in the shared irq case.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_intr.c5
-rw-r--r--sys/sys/bus.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 59ef7ff..bf69fd9 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -76,7 +76,7 @@ ithread_priority(enum intr_type flags)
u_char pri;
flags &= (INTR_TYPE_TTY | INTR_TYPE_BIO | INTR_TYPE_NET |
- INTR_TYPE_CAM | INTR_TYPE_MISC | INTR_TYPE_CLK);
+ INTR_TYPE_CAM | INTR_TYPE_MISC | INTR_TYPE_CLK | INTR_TYPE_AV);
switch (flags) {
case INTR_TYPE_TTY:
pri = PI_TTYLOW;
@@ -94,6 +94,9 @@ ithread_priority(enum intr_type flags)
case INTR_TYPE_CAM:
pri = PI_DISK; /* XXX or PI_CAM? */
break;
+ case INTR_TYPE_AV: /* Audio/video */
+ pri = PI_AV;
+ break;
case INTR_TYPE_CLK:
pri = PI_REALTIME;
break;
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index 0fc0f49..8a22279 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -88,6 +88,7 @@ enum intr_type {
INTR_TYPE_CAM = 8,
INTR_TYPE_MISC = 16,
INTR_TYPE_CLK = 32,
+ INTR_TYPE_AV = 64,
INTR_FAST = 128,
INTR_EXCL = 256, /* exclusive interrupt */
INTR_MPSAFE = 512, /* this interrupt is SMP safe */
OpenPOWER on IntegriCloud