2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
5 Desc: Install an interrupt handler.
8 #include <exec/execbase.h>
9 #include <exec/interrupts.h>
10 #include <proto/exec.h>
11 #include <aros/libcall.h>
13 /*****************************************************************************
17 AROS_LH2(struct Interrupt
*, SetIntVector
,
20 AROS_LHA(ULONG
, intNumber
, D0
),
21 AROS_LHA(struct Interrupt
*, interrupt
, A1
),
24 struct ExecBase
*, SysBase
, 27, Exec
)
42 ******************************************************************************/
45 struct Interrupt
*oldint
;
46 BOOL ishandler
= intNumber
<= 2 || (intNumber
>= 6 && intNumber
<= 12);
50 oldint
= (struct Interrupt
*)SysBase
->IntVects
[intNumber
].iv_Node
;
51 SysBase
->IntVects
[intNumber
].iv_Node
= ishandler
? (struct Node
*)interrupt
: NULL
;
55 SysBase
->IntVects
[intNumber
].iv_Data
= interrupt
->is_Data
;
56 SysBase
->IntVects
[intNumber
].iv_Code
= interrupt
->is_Code
;
60 SysBase
->IntVects
[intNumber
].iv_Data
= (APTR
)~0;
61 SysBase
->IntVects
[intNumber
].iv_Code
= (void *)~0;