2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
5 Desc: Add interrupt client to chain of interrupt servers
11 #include <aros/debug.h>
12 #include <aros/libcall.h>
13 #include <exec/execbase.h>
14 #include <exec/interrupts.h>
15 #include <hardware/intbits.h>
16 #include <proto/exec.h>
20 /*****************************************************************************
24 AROS_LH2(void, AddIntServer
,
27 AROS_LHA(ULONG
, intNumber
, D0
),
28 AROS_LHA(struct Interrupt
*, interrupt
, A1
),
31 struct ExecBase
*, SysBase
, 28, Exec
)
40 This function also enables the corresponding chipset interrupt if
41 run on a native Amiga.
51 ******************************************************************************/
55 D(bug("[AddIntServer] Vector %d, list 0x%p, SysBase 0x%p\n", intNumber
, SysBase
->IntVects
[intNumber
].iv_Data
, SysBase
));
57 if (SysBase
->IntVects
[intNumber
].iv_Data
== 0)
61 for (i
= 0; i
< 16; i
++)
63 bug("[AddIntServer] Vector %d, code 0x%p, data 0x%p\n", i
, SysBase
->IntVects
[i
].iv_Code
, SysBase
->IntVects
[i
].iv_Data
);
70 Enqueue((struct List
*)SysBase
->IntVects
[intNumber
].iv_Data
, &interrupt
->is_Node
);
71 CUSTOM_ENABLE(intNumber
);