1 #ifndef_ALPHA_IRQ_H 2 #define_ALPHA_IRQ_H 3
4 /* 5 * linux/include/alpha/irq.h 6 * 7 * (C) 1994 Linus Torvalds 8 */ 9
10 #include <linux/linkage.h>
11
12 externvoiddisable_irq(unsignedint);
13 externvoidenable_irq(unsignedint);
14
15 #define__STR(x) #x 16 #defineSTR(x) __STR(x)
17
18 #defineSAVE_ALL "xx"
19
20 /* 21 * SAVE_MOST/RESTORE_MOST is used for the faster version of IRQ handlers, 22 * installed by using the SA_INTERRUPT flag. These kinds of IRQ's don't 23 * call the routines that do signal handling etc on return, and can have 24 * more relaxed register-saving etc. They are also atomic, and are thus 25 * suited for small, fast interrupts like the serial lines or the harddisk 26 * drivers, which don't actually need signal handling etc. 27 * 28 * Also note that we actually save only those registers that are used in 29 * C subroutines, so if you do something weird, you're on your own. 30 */ 31 #defineSAVE_MOST "yy"
32
33 #defineRESTORE_MOST "zz"
34
35 #define ACK_FIRST(mask) "aa"
36
37 #define ACK_SECOND(mask) "dummy"
38
39 #define UNBLK_FIRST(mask) "dummy"
40
41 #define UNBLK_SECOND(mask) "dummy"
42
43 #defineIRQ_NAME2(nr) nr##_interrupt(void)
44 #defineIRQ_NAME(nr) IRQ_NAME2(IRQ##nr)
45 #defineFAST_IRQ_NAME(nr) IRQ_NAME2(fast_IRQ##nr)
46 #defineBAD_IRQ_NAME(nr) IRQ_NAME2(bad_IRQ##nr)
47
48 #defineBUILD_IRQ(chip,nr,mask) \
49 asmlinkagevoidIRQ_NAME(nr); \
50 asmlinkagevoidFAST_IRQ_NAME(nr); \
51 asmlinkagevoidBAD_IRQ_NAME(nr); \
52 asmcodecomeshere 53
54 #endif