5 Copyright © 2000, The AROS Development Team. All rights reserved.
8 Desc: Interrupt core, part of kernel.resource
12 #include <exec/types.h>
13 #include <exec/execbase.h>
15 #include <asm/linkage.h>
17 /* Here are some macros used to build interrupt table in core file. */
19 #define IRQ_NAME2(nr) nr##_interrupt(void)
20 #define IRQ_NAME(nr) IRQ_NAME2(IRQ##nr)
22 #define BUILD_IRQ(nr) \
23 /*asmlinkage*/ void IRQ_NAME(nr); \
25 "\n\t"__ALIGN_STR"\n" \
26 SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
27 "/* move.b #0x61,0xdddddebc*/\n\t" \
28 "movem.l %d0-%d7/%a0-%a6,-(%ssp)\n\t"\
29 "move.l %usp,%a0\n\t" \
30 "move.l %a0,-(%ssp)\n\t" \
31 "move.l %ssp,%a0\n\t" \
33 "move.l %a0,-(%ssp)\n\t" \
34 "bsr "SYMBOL_NAME_STR(do_IRQ)"\n\t" \
36 "move.l (%ssp)+,%a0\n\t" \
37 "move.l %a0,%usp\n\t" \
38 "movem.l (%ssp)+,%d0-%d7/%a0-%a6\n\t"\
39 "/*move.b #0x41,0xdddddebc*/\n\t" \
45 struct irqDescriptor irq_desc
[NR_IRQS
];
48 #define PLATFORMDATA(x) ((struct PlatformData *)(x)->PlatformData)
50 BOOL
init_core(struct ExecBase
*);
51 BOOL
irqSet(int, struct irqServer
*, void *, struct ExecBase
*);
53 void disable_irq(unsigned int virq
);
54 void enable_irq(unsigned int virq
);