home *** CD-ROM | disk | FTP | other *** search
- /*
- (C) 1995-96 AROS - The Amiga Replacement OS
- $Id: setintvector.c,v 1.3 1997/01/07 12:32:32 digulla Exp $
-
- Desc:
- Lang:
- */
- #include <exec/execbase.h>
- #include <exec/interrupts.h>
- #include <proto/exec.h>
- #include <aros/libcall.h>
-
- /*****************************************************************************
-
- NAME */
-
- AROS_LH2(struct Interrupt *, SetIntVector,
-
- /* SYNOPSIS */
- AROS_LHA(ULONG, intNumber, D0),
- AROS_LHA(struct Interrupt *, interrupt, A1),
-
- /* LOCATION */
- struct ExecBase *, SysBase, 27, Exec)
-
- /* FUNCTION
-
- INPUTS
-
- RESULT
-
- NOTES
-
- EXAMPLE
-
- BUGS
-
- SEE ALSO
-
- INTERNALS
-
- HISTORY
-
- ******************************************************************************/
- {
- AROS_LIBFUNC_INIT
- struct Interrupt *oldint;
-
- Disable ();
-
- oldint = (struct Interrupt *)SysBase->IntVects[intNumber].iv_Node;
- SysBase->IntVects[intNumber].iv_Node = (struct Node *)interrupt;
-
- if (interrupt)
- {
- SysBase->IntVects[intNumber].iv_Data = interrupt->is_Data;
- SysBase->IntVects[intNumber].iv_Code = interrupt->is_Code;
- }
- else
- {
- SysBase->IntVects[intNumber].iv_Data = (APTR)~0;
- SysBase->IntVects[intNumber].iv_Code = (void *)~0;
- }
-
- Enable ();
-
- return oldint;
-
- AROS_LIBFUNC_EXIT
- } /* SetIntVector */
-