summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/include
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2013-05-16 16:20:01 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2013-05-16 16:20:01 +0000
commit54dc01e5e011f2625fbdfacb41abd6bc873f9e37 (patch)
tree4d702c401ef996613338c3fc851ca4cf01f1e670 /sys/arch/amd64/include
parent627151165ba1fcf359d08ea37f72c1b6e866691a (diff)
Implement a mechanism to establish interrupt handlers that don't grab the
kernel lock upon entry through a new IPL_MPSAFE flag/level. ok mikeb@, mpi@
Diffstat (limited to 'sys/arch/amd64/include')
-rw-r--r--sys/arch/amd64/include/intr.h3
-rw-r--r--sys/arch/amd64/include/intrdefs.h10
2 files changed, 8 insertions, 5 deletions
diff --git a/sys/arch/amd64/include/intr.h b/sys/arch/amd64/include/intr.h
index a4f6674f12e..e6532369e5c 100644
--- a/sys/arch/amd64/include/intr.h
+++ b/sys/arch/amd64/include/intr.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.h,v 1.24 2013/05/12 14:15:31 ratchov Exp $ */
+/* $OpenBSD: intr.h,v 1.25 2013/05/16 16:20:00 kettenis Exp $ */
/* $NetBSD: intr.h,v 1.2 2003/05/04 22:01:56 fvdl Exp $ */
/*-
@@ -92,6 +92,7 @@ struct intrhand {
int (*ih_fun)(void *);
void *ih_arg;
int ih_level;
+ int ih_flags;
struct intrhand *ih_next;
int ih_pin;
int ih_slot;
diff --git a/sys/arch/amd64/include/intrdefs.h b/sys/arch/amd64/include/intrdefs.h
index 2ac495d5761..0d76886cc95 100644
--- a/sys/arch/amd64/include/intrdefs.h
+++ b/sys/arch/amd64/include/intrdefs.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intrdefs.h,v 1.9 2011/06/16 19:46:40 kettenis Exp $ */
+/* $OpenBSD: intrdefs.h,v 1.10 2013/05/16 16:20:00 kettenis Exp $ */
/* $NetBSD: intrdefs.h,v 1.2 2003/05/04 22:01:56 fvdl Exp $ */
#ifndef _AMD64_INTRDEFS_H
@@ -28,12 +28,14 @@
#define IPL_VM 0xa /* memory allocation */
#define IPL_AUDIO 0xb /* audio */
#define IPL_CLOCK 0xc /* clock */
-#define IPL_SCHED IPL_CLOCK
-#define IPL_STATCLOCK IPL_CLOCK
+#define IPL_SCHED IPL_CLOCK
+#define IPL_STATCLOCK IPL_CLOCK
#define IPL_HIGH 0xd /* everything */
-#define IPL_IPI 0xe /* inter-processor interrupts */
+#define IPL_IPI 0xe /* inter-processor interrupts */
#define NIPL 16
+#define IPL_MPSAFE 0x100
+
/* Interrupt sharing types. */
#define IST_NONE 0 /* none */
#define IST_PULSE 1 /* pulsed */