diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2005-08-14 10:58:37 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2005-08-14 10:58:37 +0000 |
commit | aa90e1774f220cac512a167a80241a994474f8e9 (patch) | |
tree | b0b1d0116d130ebc9fdfdad4d8fd5003440348f1 /sys/arch/sparc/include | |
parent | 7e00142ff0e7ff8241ff33647552b669d0dbbe08 (diff) |
Add more flexibility to the fast trap handlers mechanism:
- add the ability to deregister a fast trap handler.
- when registering a fast trap, provide an optional callback which will be
invoked if we try to register a regular trap handler later; the callback
will be responsible to replace the fast trap handler with a regular trap
handler (and is allowed to fail).
Alter audioamd(4) to take advantage of this, so that it can share its
interrupt with stp(4) on SPARCclassic machines.
Problem found the hard way and fix tested by Jason George; discussed and
ok deraadt@
Diffstat (limited to 'sys/arch/sparc/include')
-rw-r--r-- | sys/arch/sparc/include/cpu.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/arch/sparc/include/cpu.h b/sys/arch/sparc/include/cpu.h index 37ae52d7a88..6fa40683229 100644 --- a/sys/arch/sparc/include/cpu.h +++ b/sys/arch/sparc/include/cpu.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cpu.h,v 1.24 2005/03/23 17:14:45 miod Exp $ */ +/* $OpenBSD: cpu.h,v 1.25 2005/08/14 10:58:36 miod Exp $ */ /* $NetBSD: cpu.h,v 1.24 1997/03/15 22:25:15 pk Exp $ */ /* @@ -173,7 +173,8 @@ void vmeintr_establish(int vec, int level, struct intrhand *, int, const char *) * interrupt vectors (vectors that are not shared and are handled in the * trap window). Such functions must be written in assembly. */ -void intr_fasttrap(int level, void (*vec)(void)); +int intr_fasttrap(int, void (*)(void), int (*)(void *), void *); +void intr_fastuntrap(int); /* auxreg.c */ void led_blink(void *); |