diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2013-05-16 16:20:01 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2013-05-16 16:20:01 +0000 |
commit | 54dc01e5e011f2625fbdfacb41abd6bc873f9e37 (patch) | |
tree | 4d702c401ef996613338c3fc851ca4cf01f1e670 /sys/arch/amd64/include | |
parent | 627151165ba1fcf359d08ea37f72c1b6e866691a (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.h | 3 | ||||
-rw-r--r-- | sys/arch/amd64/include/intrdefs.h | 10 |
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 */ |