a9c3f8c97a80f79343eef3b28bdb483df04ef774
[AROS.git] / rom / exec / remintserver.c
bloba9c3f8c97a80f79343eef3b28bdb483df04ef774
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Remove an interrupt handler.
6 Lang:
7 */
9 #include <exec/execbase.h>
10 #include <exec/interrupts.h>
11 #include <hardware/intbits.h>
12 #include <proto/exec.h>
13 #include <proto/kernel.h>
14 #include <aros/libcall.h>
16 #include "exec_intern.h"
17 #include "chipset.h"
19 /*****************************************************************************
21 NAME */
23 AROS_LH2(void, RemIntServer,
25 /* SYNOPSIS */
26 AROS_LHA(ULONG, intNumber, D0),
27 AROS_LHA(struct Interrupt *, interrupt, A1),
29 /* LOCATION */
30 struct ExecBase *, SysBase, 29, Exec)
32 /* FUNCTION
34 INPUTS
36 RESULT
38 NOTES
40 EXAMPLE
42 BUGS
44 SEE ALSO
46 INTERNALS
48 ******************************************************************************/
50 AROS_LIBFUNC_INIT
52 if (intNumber >= INTB_KERNEL) {
53 KrnRemIRQHandler(interrupt->is_Node.ln_Succ);
54 return;
57 Disable();
59 Remove((struct Node *)interrupt);
60 CUSTOM_DISABLE(intNumber, SysBase->IntVects[intNumber].iv_Data);
62 Enable();
64 AROS_LIBFUNC_EXIT
65 } /* RemIntServer */