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

VxWorks

开发平台:

C/C++

  1. /* i8259a.h - Intel 8259a PIC (Programmable Interrupt Controller) */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01e,17mar97,hdn  added function declarations.
  7. 01d,03jan95,vin  added PIC_ISR_MASK, PIC_IRR_MASK, OCW3
  8. 01c,16aug93,hdn  deleted PIC_BASE_ADRS macros.
  9. 01b,16jun93,hdn  updated to 5.1.
  10. 01a,15may92,hdn  written.
  11. */
  12. #ifndef __INCi8259ah
  13. #define __INCi8259ah
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /*
  18.  * The macro PIC_REG_ADDR_INTERVAL must be defined
  19.  * when including this header.
  20.  */
  21. /* default definitions */
  22. #define CAST
  23. #define PIC_ADRS(base,reg)   (CAST (base+(reg*PIC_REG_ADDR_INTERVAL)))
  24. /* register definitions */
  25. #define PIC_port1(base) PIC_ADRS(base,0x00) /* port 1. */
  26. #define PIC_port2(base) PIC_ADRS(base,0x01) /* port 2. */
  27. /* alias */
  28. #define PIC_IMASK(base) PIC_port2(base) /* Interrupt mask. */
  29. #define PIC_IACK(base) PIC_port1(base) /* Interrupt acknowledge. */
  30. #define PIC_ISR_MASK(base) PIC_port1(base) /* in-service register mask */
  31. #define PIC_IRR_MASK(base) PIC_port1(base)  /* interrupt request reg */
  32. #define OCW3_DEF 0x08 /* 3rd default control word */
  33. #define OCW3_PCB 0x04 /* Polling Control Bit */
  34. #define OCW3_ISR 0x03 /* Read in-service reg */
  35. #define OCW3_IRR 0x02 /* Read inter request reg */
  36. #ifndef _ASMLANGUAGE
  37. #if defined(__STDC__) || defined(__cplusplus)
  38. IMPORT int sysIntLevel (void);
  39. IMPORT VOID sysIntLock (void);
  40. IMPORT VOID sysIntUnlock (void);
  41. #else
  42. IMPORT int sysIntLevel ();
  43. IMPORT VOID sysIntLock ();
  44. IMPORT VOID sysIntUnlock ();
  45. #endif  /* __STDC__ */
  46. #endif /* _ASMLANGUAGE */
  47. #ifdef __cplusplus
  48. }
  49. #endif
  50. #endif /* __INCi8259ah */