root/include/asm-alpha/irq.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   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 #include <linux/config.h>
  12 
  13 #if defined(CONFIG_ALPHA_CABRIOLET) || defined(CONFIG_ALPHA_EB66P) || defined(CONFIG_ALPHA_EB164)
  14 # define NR_IRQS        33
  15 #elif defined(CONFIG_ALPHA_EB66) || defined(CONFIG_ALPHA_EB64P)
  16 # define NR_IRQS        32
  17 #else
  18 # define NR_IRQS        16
  19 #endif
  20 
  21 
  22 extern void disable_irq(unsigned int);
  23 extern void enable_irq(unsigned int);
  24 
  25 #define __STR(x) #x
  26 #define STR(x) __STR(x)
  27  
  28 #define SAVE_ALL "xx"
  29 
  30 /*
  31  * SAVE_MOST/RESTORE_MOST is used for the faster version of IRQ handlers,
  32  * installed by using the SA_INTERRUPT flag. These kinds of IRQ's don't
  33  * call the routines that do signal handling etc on return, and can have
  34  * more relaxed register-saving etc. They are also atomic, and are thus
  35  * suited for small, fast interrupts like the serial lines or the harddisk
  36  * drivers, which don't actually need signal handling etc.
  37  *
  38  * Also note that we actually save only those registers that are used in
  39  * C subroutines, so if you do something weird, you're on your own. 
  40  */
  41 #define SAVE_MOST "yy"
  42 
  43 #define RESTORE_MOST "zz"
  44 
  45 #define ACK_FIRST(mask) "aa"
  46 
  47 #define ACK_SECOND(mask) "dummy"
  48 
  49 #define UNBLK_FIRST(mask) "dummy"
  50 
  51 #define UNBLK_SECOND(mask) "dummy"
  52 
  53 #define IRQ_NAME2(nr) nr##_interrupt(void)
  54 #define IRQ_NAME(nr) IRQ_NAME2(IRQ##nr)
  55 #define FAST_IRQ_NAME(nr) IRQ_NAME2(fast_IRQ##nr)
  56 #define BAD_IRQ_NAME(nr) IRQ_NAME2(bad_IRQ##nr)
  57         
  58 #define BUILD_IRQ(chip,nr,mask) \
  59 asmlinkage void IRQ_NAME(nr); \
  60 asmlinkage void FAST_IRQ_NAME(nr); \
  61 asmlinkage void BAD_IRQ_NAME(nr); \
  62 asm code comes here
  63 
  64 #endif

/* [previous][next][first][last][top][bottom][index][help] */