2 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
5 Desc: Remove an interrupt handler.
9 #include <exec/execbase.h>
10 #include <exec/interrupts.h>
11 #include <hardware/intbits.h>
12 #include <proto/exec.h>
13 #include <aros/libcall.h>
15 #include "exec_intern.h"
16 #include "exec_debug.h"
18 #include "exec_locks.h"
20 /*****************************************************************************
24 AROS_LH2(void, RemIntServer
,
27 AROS_LHA(ULONG
, intNumber
, D0
),
28 AROS_LHA(struct Interrupt
*, interrupt
, A1
),
31 struct ExecBase
*, SysBase
, 29, Exec
)
49 ******************************************************************************/
53 ExecLog(SysBase
, EXECDEBUGF_EXCEPTHANDLER
, "RemIntServer: Int %d, Interrupt %p\n", intNumber
, interrupt
);
55 if (intNumber
>= INTB_KERNEL
) {
56 KrnRemIRQHandler(interrupt
->is_Node
.ln_Succ
);
60 EXEC_LOCK_LIST_WRITE_AND_DISABLE(&SysBase
->IntrList
);
62 Remove((struct Node
*)interrupt
);
63 CUSTOM_DISABLE(intNumber
, SysBase
->IntVects
[intNumber
].iv_Data
);
65 EXEC_UNLOCK_LIST_AND_ENABLE(&SysBase
->IntrList
);