ppc860Intr.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:5k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* ppc860Intr.h - PowerPC 860 interrupt header file */
  2. /* Copyright 1991-1998 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,09nov98,cn   added IVEC_TO_IRQ, IVEC_TO_ILEVEL macros.
  7. 01c,09mar98,map  added IV_RESERVED59, 60 for compatiblity [SPR# 20114]
  8. 01b,10jun97,map  added IV_SCC[34] definitions [SPR# 8450]
  9. 01a,17apr96,tpr  written.
  10. */
  11. #ifndef __INCppc860Intrh
  12. #define __INCppc860Intrh
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /* interrupt number definitions */
  17. #define IV_IRQ0 INUM_TO_IVEC (0) /* IRQ 0 interrupt */
  18. #define IV_LEVEL0 INUM_TO_IVEC (1) /* level 0 interrupt */
  19. #define IV_IRQ1 INUM_TO_IVEC (2) /* IRQ 1 interrupt */
  20. #define IV_LEVEL1 INUM_TO_IVEC (3) /* level 1 interrupt */
  21. #define IV_IRQ2 INUM_TO_IVEC (4) /* IRQ 2 interrupt */
  22. #define IV_LEVEL2 INUM_TO_IVEC (5) /* level 2 interrupt */
  23. #define IV_IRQ3 INUM_TO_IVEC (6) /* IRQ 3 interrupt */
  24. #define IV_LEVEL3 INUM_TO_IVEC (7) /* level 3 interrupt */
  25. #define IV_IRQ4 INUM_TO_IVEC (8) /* IRQ 4 interrupt */
  26. #define IV_LEVEL4 INUM_TO_IVEC (9) /* level 4 interrupt */
  27. #define IV_IRQ5 INUM_TO_IVEC (10) /* IRQ 5 interrupt */
  28. #define IV_LEVEL5 INUM_TO_IVEC (11) /* level 5 interrupt */
  29. #define IV_IRQ6 INUM_TO_IVEC (12) /* IRQ 6 interrupt */
  30. #define IV_LEVEL6 INUM_TO_IVEC (13) /* level 6 interrupt */
  31. #define IV_IRQ7 INUM_TO_IVEC (14) /* IRQ 7 interrupt */
  32. #define IV_LEVEL7 INUM_TO_IVEC (15) /* level 7 interrupt */
  33. #define IV_RESERVE0 INUM_TO_IVEC (16) /* reserved */
  34. #define IV_RESERVE1 INUM_TO_IVEC (17) /* reserved */
  35. #define IV_RESERVE2 INUM_TO_IVEC (18) /* reserved */
  36. #define IV_RESERVE3 INUM_TO_IVEC (19) /* reserved */
  37. #define IV_RESERVE4 INUM_TO_IVEC (20) /* reserved */
  38. #define IV_RESERVE5 INUM_TO_IVEC (21) /* reserved */
  39. #define IV_RESERVE6 INUM_TO_IVEC (22) /* reserved */
  40. #define IV_RESERVE7 INUM_TO_IVEC (23) /* reserved */
  41. #define IV_RESERVE8 INUM_TO_IVEC (24) /* reserved */
  42. #define IV_RESERVE9 INUM_TO_IVEC (25) /* reserved */
  43. #define IV_RESERVE10 INUM_TO_IVEC (26) /* reserved */
  44. #define IV_RESERVE11 INUM_TO_IVEC (27) /* reserved */
  45. #define IV_RESERVE12 INUM_TO_IVEC (28) /* reserved */
  46. #define IV_RESERVE13 INUM_TO_IVEC (29) /* reserved */
  47. #define IV_RESERVE14 INUM_TO_IVEC (30) /* reserved */
  48. #define IV_RESERVE15 INUM_TO_IVEC (31) /* reserved */
  49. #define IV_ERROR INUM_TO_IVEC (32) /* Error */
  50. #define IV_PC4 INUM_TO_IVEC (33) /* Parallel I/O [4] */
  51. #define IV_PC5 INUM_TO_IVEC (34) /* Parallel I/O [5] */
  52. #define IV_SMC2_PIP INUM_TO_IVEC (35) /* SMC 2/PIP */
  53. #define IV_SMC1 INUM_TO_IVEC (36) /* SMC 1 */
  54. #define IV_SPI INUM_TO_IVEC (37) /* SPI */
  55. #define IV_PC6 INUM_TO_IVEC (38) /* Parallel I/O [6] */
  56. #define IV_TIMER4 INUM_TO_IVEC (39) /* Timer 4 */
  57. #define IV_RESERVED40 INUM_TO_IVEC (40) /* reserved */
  58. #define IV_PC7 INUM_TO_IVEC (41) /* Parallel I/O [7] */
  59. #define IV_PC8 INUM_TO_IVEC (42) /* Parallel I/O [8] */
  60. #define IV_PC9 INUM_TO_IVEC (43) /* Parallel I/O [9] */
  61. #define IV_TIMER3 INUM_TO_IVEC (44) /* Timer 3 */
  62. #define IV_RESERVED45 INUM_TO_IVEC (45) /* reserved */
  63. #define IV_PC10 INUM_TO_IVEC (46) /* Parallel I/O [10] */
  64. #define IV_PC11 INUM_TO_IVEC (47) /* Parallel I/O [11] */
  65. #define IV_I2C INUM_TO_IVEC (48) /* I2C */
  66. #define IV_RISC_TIMER_TABLE INUM_TO_IVEC (49) /* Risc Timer Table */
  67. #define IV_TIMER2 INUM_TO_IVEC (50) /* Timer 2 */
  68. #define IV_RESERVED51 INUM_TO_IVEC (51) /* reserved */
  69. #define IV_IDMA2 INUM_TO_IVEC (52) /* IDMA2 */
  70. #define IV_IDMA1 INUM_TO_IVEC (53) /* IDMA1 */
  71. #define IV_SDMA INUM_TO_IVEC (54) /* SDMA bus error */
  72. #define IV_PC12 INUM_TO_IVEC (55) /* Parallel I/O [12] */
  73. #define IV_PC13 INUM_TO_IVEC (56) /* Parallel I/O [13] */
  74. #define IV_TIMER1 INUM_TO_IVEC (57) /* Timer 1 */
  75. #define IV_PC14 INUM_TO_IVEC (58) /* Parallel I/O [14] */
  76. #define IV_SCC4 INUM_TO_IVEC (59) /* SCC4 */
  77. #define IV_RESERVED59 IV_SCC4
  78. #define IV_SCC3 INUM_TO_IVEC (60) /* SCC3 */
  79. #define IV_RESERVED60 IV_SCC3
  80. #define IV_SCC2 INUM_TO_IVEC (61) /* SCC2 */
  81. #define IV_SCC1 INUM_TO_IVEC (62) /* SCC1 */
  82. #define IV_PC15 INUM_TO_IVEC (63) /* Parallel I/O [15] */
  83. #define NUM_VEC_MAX 64
  84. /* macro to get to the IRQ/ILEVEL from the vector number */
  85. #define IVEC_TO_IRQ(x) (int) (x >> 1) /* interrupt request*/
  86. #define IVEC_TO_ILEVEL(x) (int) (x >> 1) /* interrupt level */
  87. /* typedefs */
  88. /* interrupt handler */
  89. #ifndef _ASMLANGUAGE
  90. typedef struct intr_handler
  91.     {
  92.     VOIDFUNCPTR vec;    /* interrupt vector */
  93.     int         arg;    /* interrupt handler argument */
  94.     } INTR_HANDLER;
  95. /* function declarations */
  96. #if defined(__STDC__) || defined(__cplusplus)
  97. IMPORT STATUS ppc860IntrInit (VOIDFUNCPTR *);
  98. #else
  99. IMPORT STATUS ppc860IntrInit ();
  100. #endif /* __STDC__ */
  101. #endif  /* _ASMLANGUAGE */
  102. #ifdef __cplusplus
  103. }
  104. #endif
  105. #endif /* __INCppc860Intrh */