binutils 2.32 courtesy of NicJA.
[AROS.git] / rom / kernel / remexceptionhandler.c
blobb39a945d2986dd55a1c098580ae809fd0738922f
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 */
8 #include <aros/kernel.h>
9 #include <aros/libcall.h>
10 #include <proto/exec.h>
12 #include <kernel_base.h>
13 #include <kernel_cpu.h>
14 #include <kernel_debug.h>
15 #include <kernel_interrupts.h>
16 #include <kernel_objects.h>
18 /* We use own implementation of bug(), so we don't need aros/debug.h */
19 #define D(x)
21 /*****************************************************************************
23 NAME */
24 #include <proto/kernel.h>
26 AROS_LH1(void, KrnRemExceptionHandler,
28 /* SYNOPSIS */
29 AROS_LHA(void *, handle, A0),
31 /* LOCATION */
32 struct KernelBase *, KernelBase, 15, Kernel)
34 /* FUNCTION
35 Remove previously installed CPU exception handler
37 INPUTS
38 handle - an opaque handler returned by KrnAddExceptionHandler()
39 function
41 RESULT
42 None
44 NOTES
46 EXAMPLE
48 BUGS
50 SEE ALSO
52 INTERNALS
54 ******************************************************************************/
56 AROS_LIBFUNC_INIT
58 struct IntrNode *h = handle;
60 if (h && (h->in_type == it_exception))
62 (void)goSuper();
64 Disable();
65 REMOVE(h);
66 Enable();
68 krnFreeIntrNode(h);
70 goUser();
73 AROS_LIBFUNC_EXIT