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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*  
  2.  * Miscellaneous definitions used to initialise the interrupt vector table
  3.  * with the machine-specific interrupt routines.
  4.  *
  5.  * This file is subject to the terms and conditions of the GNU General Public
  6.  * License.  See the file "COPYING" in the main directory of this archive
  7.  * for more details.
  8.  *
  9.  * Copyright (C) 1997 by Paul M. Antoine.
  10.  * reworked 1998 by Harald Koerfgen.
  11.  */
  12. #ifndef __ASM_DEC_INTERRUPTS_H 
  13. #define __ASM_DEC_INTERRUPTS_H 
  14. /*
  15.  * DECstation Interrupts
  16.  */
  17. /*
  18.  * This list reflects the priority of the Interrupts.
  19.  * Exception: on kmins we have to handle Memory Error 
  20.  * Interrupts before the TC Interrupts.
  21.  */
  22. #define CLOCK  0
  23. #define SCSI_DMA_INT  1
  24. #define SCSI_INT 2
  25. #define ETHER 3
  26. #define SERIAL 4
  27. #define TC0 5
  28. #define TC1 6
  29. #define TC2 7
  30. #define MEMORY 8
  31. #define FPU 9
  32. #define HALT 10
  33. #define NR_INTS 11
  34. #ifndef __ASSEMBLY__
  35. /*
  36.  * Data structure to hide the differences between the DECstation Interrupts
  37.  *
  38.  * If asic_mask == NULL, the interrupt is directly handled by the CPU.
  39.  * Otherwise this Interrupt is handled the IRQ Controller.
  40.  */
  41. typedef struct
  42. {
  43. unsigned int cpu_mask; /* checking and enabling interrupts in CP0 */
  44. unsigned int iemask; /* enabling interrupts in IRQ Controller */
  45. } decint_t;
  46. extern volatile unsigned int *isr;
  47. /* address of the interrupt status register  */
  48. extern volatile unsigned int *imr;
  49. /* address of the interrupt mask register    */
  50. extern decint_t dec_interrupt[NR_INTS];
  51. /*
  52.  * Interrupt table structure to hide differences between different
  53.  * systems such.
  54.  */
  55. extern void *cpu_ivec_tbl[8];
  56. extern long cpu_mask_tbl[8];
  57. extern long cpu_irq_nr[8];
  58. extern long asic_irq_nr[32];
  59. extern long asic_mask_tbl[32];
  60. /*
  61.  * Common interrupt routine prototypes for all DECStations
  62.  */
  63. extern void dec_intr_unimplemented(void);
  64. extern void dec_intr_fpu(void);
  65. extern void dec_intr_rtc(void);
  66. extern void kn02_io_int(void);
  67. extern void kn02xa_io_int(void);
  68. extern void kn03_io_int(void);
  69. extern void asic_intr_unimplemented(void);
  70. #endif
  71. #endif