Updated PCI IDs to latest snapshot.
[tangerine.git] / rom / exec / remintserver.c
blob0051905a7a214264b0e19b09cabd72a9efd3fba3
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Remove an interrupt handler.
6 Lang:
7 */
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>
15 #endif
17 #include <proto/exec.h>
18 #include <aros/libcall.h>
20 /*****************************************************************************
22 NAME */
24 AROS_LH2(void, RemIntServer,
26 /* SYNOPSIS */
27 AROS_LHA(ULONG, intNumber, D0),
28 AROS_LHA(struct Interrupt *, interrupt, A1),
30 /* LOCATION */
31 struct ExecBase *, SysBase, 29, Exec)
33 /* FUNCTION
35 INPUTS
37 RESULT
39 NOTES
41 EXAMPLE
43 BUGS
45 SEE ALSO
47 INTERNALS
49 ******************************************************************************/
51 AROS_LIBFUNC_INIT
52 struct List *list;
53 #if (AROS_FLAVOUR & AROS_FLAVOUR_NATIVE)
54 struct Custom *custom = (struct Custom *)(void **)0xdff000;
55 #endif
57 list = (struct List *)SysBase->IntVects[intNumber].iv_Data;
59 Disable();
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));
69 #endif
71 Enable();
73 AROS_LIBFUNC_EXIT
74 } /* RemIntServer */