revert between 56095 -> 55830 in arch
[AROS.git] / rom / exec / intservers.c
blobb7e05117bb7302a3e067584266135a038fa1632d
1 /*
2 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #define DEBUG 0
7 #include <aros/debug.h>
9 #include <aros/asmcall.h>
10 #include <exec/execbase.h>
11 #include <exec/lists.h>
13 #define AROS_NO_ATOMIC_OPERATIONS
14 #include <exec_platform.h>
16 #include "intservers.h"
19 * Our default IntVectors.
20 * This interrupt handler will send an interrupt to a series of queued
21 * interrupt servers. Servers should return D0 != 0 (Z clear) if they
22 * believe the interrupt was for them, and no further interrupts will
23 * be called. This will only check the value in D0 for non-m68k systems,
24 * however it SHOULD check the Z-flag on 68k systems.
26 * Hmm, in that case I would have to separate it from this file in order
27 * to replace it... TODO: this can be done after merging exec_init.c from
28 * i386 and PPC native.
30 AROS_INTH3(IntServer, struct List *, intList, intMask, custom)
32 AROS_INTFUNC_INIT
34 struct Interrupt * irq;
35 BOOL ret = FALSE;
37 ForeachNode(intList, irq) {
38 if (AROS_INTC3(irq->is_Code, irq->is_Data, intMask, custom)) {
39 #ifndef __mc68000
40 ret = TRUE;
41 break;
42 #endif
46 return ret;
48 AROS_INTFUNC_EXIT