📄 vme2pci.h
字号:
/* vme2Pci.h - vme2pci chip configuration header *//* Copyright 1984-1996 Wind River Systems, Inc. *//*modification history--------------------01d,13nov96,mas added VME2PCI_IO_OFFSET (SPR 7475).01c,28feb95,caf removed MSW() macro (now in vxWorks.h).01b,20jan95,vin clean up & enhancements.01a,09jan95,kvk created.*//*This file contains type declarations for the vme2pci chip Header and the macros for the PCI BUS. This header has been designedwith respect to Genesis 1.5 Engineering Specification Version 1.0A.Configuration registers have to be accessed as long words.*/#ifndef INCvme2Pcih#define INCvme2Pcih#ifdef _ASMLANGUAGE#define CASTB#else#define CASTB (char *)#endif /* _ASMLANGUAGE */#define VME2PCI_REG_INTERVAL 4/* to permit alternative board addressing */#ifndef VME2PCI_IACK_ADRS #define VME2PCI_IACK_ADRS(reg) (CASTB (VME2PCI_BASE_ADRS + \ (0xF007) + \ (reg * VME2PCI_REG_INTERVAL)))#endif /* VME2PCI_ADRS *//* * Defines for the VME2PCI interrupt acknowledge registers */#define VME2PCI_IACK_LEVEL1 VME2PCI_IACK_ADRS(0x00)#define VME2PCI_IACK_LEVEL2 VME2PCI_IACK_ADRS(0x01)#define VME2PCI_IACK_LEVEL3 VME2PCI_IACK_ADRS(0x02)#define VME2PCI_IACK_LEVEL4 VME2PCI_IACK_ADRS(0x03)#define VME2PCI_IACK_LEVEL5 VME2PCI_IACK_ADRS(0x04)#define VME2PCI_IACK_LEVEL6 VME2PCI_IACK_ADRS(0x05)#define VME2PCI_IACK_LEVEL7 VME2PCI_IACK_ADRS(0x06)/* configuration space header */typedef struct {#if (_BYTE_ORDER == _BIG_ENDIAN) UINT16 pciSlvEndAddr1; /* slave end addr1 0x40 */ UINT16 pciSlvStrtAddr1; /* slave start addr1 0x42 */ UINT16 pciSlvEnable1; /* pci slave enable 1 0x44 */ UINT16 pciSlvAddrOffset1; /* addr offset 1 0x46 */ UINT16 pciSlvEndAddr2; /* slave end addr2 0x48 */ UINT16 pciSlvStrtAddr2; /* slave start addr2 0x4A */ UINT16 pciSlvEnable2; /* pci slave enable 2 0x4C */ UINT16 pciSlvAddrOffset2; /* addr offset 2 0x4E */#else UINT16 pciSlvStrtAddr1; /* slave start addr1 0x40 */ UINT16 pciSlvEndAddr1; /* slave end addr1 0x42 */ UINT16 pciSlvAddrOffset1; /* addr offset 1 0x44 */ UINT16 pciSlvEnable1; /* pci slave enable 1 0x46 */ UINT16 pciSlvStrtAddr2; /* slave start addr2 0x48 */ UINT16 pciSlvEndAddr2; /* slave end addr2 0x4A */ UINT16 pciSlvAddrOffset2; /* addr offset 2 0x4C */ UINT16 pciSlvEnable2; /* pci slave enable 2 0x4E */#endif /* _BYTE_ORDER == _BIG_ENDIAN */ UINT32 pciIntEnable; /* pending intrpt enabl 0x50 */ } VME2PCI_CNFG_HDR;#define VME2PCI_CNFG_OFFSET 0x40 /* offset vme2Pci specific part */#define VME2PCI_IO_OFFSET 0xF840 /* offset vme2Pci specific IO space */ /* vme2pci device specific masks */#define VME2PCI_SLV_ADDR_MASK 0xffff0000 /* pci slave addr mask */#define VME2PCI_SLV_EN_MASK 0x00010000 /* slave enable mask */#define VME2PCI_INT_MASK 0x00000008 /* vme2PCI interrupt mask */#define VME2PCI_INT_LVL_MASK 0x00000007 /* vme2PCI intr level mask */#define VME2PCI_INT_LVL_GET(x) (x & VME2PCI_INT_LVL_MASK)#define VME2PCI_SLAVE_ENABLE 0x0001 /* slave enable flag */#define VME2PCI_INT_ENABLE 0x00000008 /* Vme2PCI interrupt enable *//* pci function declerations */#if defined(__STDC__) || defined(__cplusplus)extern int sysVme2PciInit (VME2PCI_CNFG_HDR * pVme2PciCnfgHdr, ULONG vme2PciCnfgBase); #elseextern int sysVme2PciInit ();#endif /* __STDC__ */#endif /* INCvme2Pcih */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -