summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/include
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2005-08-14 10:58:37 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2005-08-14 10:58:37 +0000
commitaa90e1774f220cac512a167a80241a994474f8e9 (patch)
treeb0b1d0116d130ebc9fdfdad4d8fd5003440348f1 /sys/arch/sparc/include
parent7e00142ff0e7ff8241ff33647552b669d0dbbe08 (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.h5
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 *);