i8259.h
资源名称:ixp425BSP.rar [点击查看]
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:
VxWorks
开发平台:
C/C++
- /* i8259.h - Intel 8259a PIC (Programmable Interrupt Controller) */
- /* Copyright 1984-2002 Wind River Systems, Inc. */
- /*
- modification history
- --------------------
- 01h,23apr02,hdn added prototypes for new BOI/EOI rtn (spr 76411)
- 01g,08mar02,hdn added prototype i8259Init() for HTT (spr 73738)
- 01f,28may97,hdn copied i8259a.h to i8259.h for APIC support.
- 01e,17mar97,hdn added function declarations.
- 01d,03jan95,vin added PIC_ISR_MASK, PIC_IRR_MASK, OCW3
- 01c,16aug93,hdn deleted PIC_BASE_ADRS macros.
- 01b,16jun93,hdn updated to 5.1.
- 01a,15may92,hdn written.
- */
- #ifndef __INCi8259h
- #define __INCi8259h
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * The macro PIC_REG_ADDR_INTERVAL must be defined
- * when including this header.
- */
- /* default definitions */
- #define CAST
- #define PIC_ADRS(base,reg) (CAST (base+(reg*PIC_REG_ADDR_INTERVAL)))
- /* register definitions */
- #define PIC_port1(base) PIC_ADRS(base,0x00) /* port 1. */
- #define PIC_port2(base) PIC_ADRS(base,0x01) /* port 2. */
- /* alias */
- #define PIC_IMASK(base) PIC_port2(base) /* Interrupt mask. */
- #define PIC_IACK(base) PIC_port1(base) /* Interrupt acknowledge. */
- #define PIC_ISR_MASK(base) PIC_port1(base) /* in-service register mask */
- #define PIC_IRR_MASK(base) PIC_port1(base) /* interrupt request reg */
- #define OCW3_DEF 0x08 /* 3rd default control word */
- #define OCW3_PCB 0x04 /* Polling Control Bit */
- #define OCW3_ISR 0x03 /* Read in-service reg */
- #define OCW3_IRR 0x02 /* Read inter request reg */
- #define I8259_EOI 0x20 /* EOI bit in OCW2 */
- #ifndef _ASMLANGUAGE
- #if defined(__STDC__) || defined(__cplusplus)
- IMPORT VOID i8259Init (void);
- IMPORT int sysIntLevel (int arg);
- IMPORT VOID sysIntLock (void);
- IMPORT VOID sysIntUnlock (void);
- IMPORT VOID i8259IntBoi (int irqNo);
- IMPORT VOID i8259IntBoiEem (int irqNo);
- IMPORT VOID i8259IntBoiSmm (int irqNo);
- IMPORT VOID i8259IntEoiSmm (int irqNo);
- IMPORT VOID i8259IntEoiMaster (int irqNo);
- IMPORT VOID i8259IntEoiSlave (int irqNo);
- IMPORT VOID i8259IntEoiSlaveNfnm (int irqNo);
- IMPORT VOID i8259IntEoiSlaveSfnm (int irqNo);
- #else
- IMPORT VOID i8259Init ();
- IMPORT int sysIntLevel ();
- IMPORT VOID sysIntLock ();
- IMPORT VOID sysIntUnlock ();
- IMPORT VOID i8259IntBoi ();
- IMPORT VOID i8259IntBoiEem ();
- IMPORT VOID i8259IntBoiSmm ();
- IMPORT VOID i8259IntEoiSmm ();
- IMPORT VOID i8259IntEoiMaster ();
- IMPORT VOID i8259IntEoiSlave ();
- IMPORT VOID i8259IntEoiSlaveNfnm ();
- IMPORT VOID i8259IntEoiSlaveSfnm ();
- #endif /* __STDC__ */
- #endif /* _ASMLANGUAGE */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __INCi8259h */