irq.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _ALPHA_IRQ_H
  2. #define _ALPHA_IRQ_H
  3. /*
  4.  * linux/include/alpha/irq.h
  5.  *
  6.  * (C) 1994 Linus Torvalds
  7.  */
  8. #include <linux/linkage.h>
  9. #include <linux/config.h>
  10. #if   defined(CONFIG_ALPHA_GENERIC)
  11. /* Here NR_IRQS is not exact, but rather an upper bound.  This is used
  12.    many places throughout the kernel to size static arrays.  That's ok,
  13.    we'll use alpha_mv.nr_irqs when we want the real thing.  */
  14. # define NR_IRQS 2048 /* enuff for WILDFIRE with 8 QBBs */
  15. #elif defined(CONFIG_ALPHA_CABRIOLET) || 
  16.       defined(CONFIG_ALPHA_EB66P)     || 
  17.       defined(CONFIG_ALPHA_EB164)     || 
  18.       defined(CONFIG_ALPHA_PC164)     || 
  19.       defined(CONFIG_ALPHA_LX164)
  20. # define NR_IRQS 35
  21. #elif defined(CONFIG_ALPHA_EB66)      || 
  22.       defined(CONFIG_ALPHA_EB64P)     || 
  23.       defined(CONFIG_ALPHA_MIKASA)
  24. # define NR_IRQS 32
  25. #elif defined(CONFIG_ALPHA_ALCOR)     || 
  26.       defined(CONFIG_ALPHA_XLT)       || 
  27.       defined(CONFIG_ALPHA_MIATA)     || 
  28.       defined(CONFIG_ALPHA_RUFFIAN)   || 
  29.       defined(CONFIG_ALPHA_RX164)     || 
  30.       defined(CONFIG_ALPHA_NORITAKE)
  31. # define NR_IRQS 48
  32. #elif defined(CONFIG_ALPHA_SABLE)     || 
  33.       defined(CONFIG_ALPHA_SX164)
  34. # define NR_IRQS 40
  35. #elif defined(CONFIG_ALPHA_DP264) || 
  36.       defined(CONFIG_ALPHA_SHARK) || 
  37.       defined(CONFIG_ALPHA_EIGER)
  38. # define NR_IRQS 64
  39. #elif defined(CONFIG_ALPHA_TITAN)
  40. #define NR_IRQS 80
  41. #elif defined(CONFIG_ALPHA_RAWHIDE) || 
  42. defined(CONFIG_ALPHA_TAKARA)
  43. # define NR_IRQS 128
  44. #elif defined(CONFIG_ALPHA_WILDFIRE)
  45. # define NR_IRQS 2048 /* enuff for 8 QBBs */
  46. #else /* everyone else */
  47. # define NR_IRQS 16
  48. #endif
  49. static __inline__ int irq_cannonicalize(int irq)
  50. {
  51. /*
  52.  * XXX is this true for all Alpha's?  The old serial driver
  53.  * did it this way for years without any complaints, so....
  54.  */
  55. return ((irq == 2) ? 9 : irq);
  56. }
  57. extern void disable_irq(unsigned int);
  58. extern void disable_irq_nosync(unsigned int);
  59. extern void enable_irq(unsigned int);
  60. struct pt_regs;
  61. extern void (*perf_irq)(unsigned long, struct pt_regs *);
  62. #endif /* _ALPHA_IRQ_H */