2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
5 Desc: Remove an interrupt handler.
8 #include <aros/config.h>
9 #include <exec/execbase.h>
10 #include <exec/interrupts.h>
12 #if (AROS_FLAVOUR & AROS_FLAVOUR_NATIVE)
13 #include <hardware/custom.h>
14 #include <hardware/intbits.h>
17 #include <proto/exec.h>
18 #include <aros/libcall.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 #if (AROS_FLAVOUR & AROS_FLAVOUR_NATIVE)
54 struct Custom
*custom
= (struct Custom
*)(void **)0xdff000;
57 list
= (struct List
*)SysBase
->IntVects
[intNumber
].iv_Data
;
61 Remove((struct Node
*)interrupt
);
63 #if (AROS_FLAVOUR & AROS_FLAVOUR_NATIVE)
64 if(list
->lh_TailPred
== (struct Node
*)list
)
66 /* disable interrupts if there are no more nodes on the list */
67 custom
->intena
= (UWORD
)((1<<intNumber
));