⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pci.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
字号:
/* PCI.h - PCI functions header file *//* Copyright - Galileo technology. */#ifndef  __INCpcih#define  __INCpcih/* includes */#include"core.h"/* defines */#define PCI0_MASTER_ENABLE(deviceNumber) pci0WriteConfigReg(                  \          PCI_0STATUS_AND_COMMAND,deviceNumber,MASTER_ENABLE |                \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_MASTER_DISABLE(deviceNumber) pci0WriteConfigReg(                 \          PCI_0STATUS_AND_COMMAND,deviceNumber,~MASTER_ENABLE &               \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MASTER_ENABLE(deviceNumber) pci1WriteConfigReg(                  \          PCI_0STATUS_AND_COMMAND,deviceNumber,MASTER_ENABLE |                \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MASTER_DISABLE(deviceNumber) pci1WriteConfigReg(                 \          PCI_0STATUS_AND_COMMAND,deviceNumber,~MASTER_ENABLE &               \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_MEMORY_ENABLE(deviceNumber) pci0WriteConfigReg(                  \          PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE |                \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MEMORY_ENABLE(deviceNumber) pci1WriteConfigReg(                  \          PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE |                \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_IO_ENABLE(deviceNumber) pci0WriteConfigReg(                      \          PCI_0STATUS_AND_COMMAND,deviceNumber,I_O_ENABLE |                   \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_IO_ENABLE(deviceNumber) pci1WriteConfigReg(                      \          PCI_0STATUS_AND_COMMAND,deviceNumber,I_O_ENABLE |                   \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_SLAVE_ENABLE(deviceNumber) pci0WriteConfigReg(                   \          PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | I_O_ENABLE |   \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_SLAVE_ENABLE(deviceNumber) pci1WriteConfigReg(                   \          PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | I_O_ENABLE |   \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_DISABLE(deviceNumber) pci0WriteConfigReg(                        \          PCI_0STATUS_AND_COMMAND,deviceNumber,0xfffffff8  &                  \          pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber))#define PCI1_DISABLE(deviceNumber) pci1WriteConfigReg(                        \          PCI_0STATUS_AND_COMMAND,deviceNumber,0xfffffff8  &                  \          pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber))#define 	MASTER_ENABLE			BIT2#define		MEMORY_ENABLE			BIT1#define		I_O_ENABLE  			BIT0#define     SELF                    0/* Agent on the PCI bus may have up to 6 BARS. */#define     BAR0                    0x10#define     BAR1                    0x14#define     BAR2                    0x18#define     BAR3                    0x1c#define     BAR4                    0x20#define     BAR5                    0x24/* typedefs */typedef struct pciDevice{    char            type[20];    unsigned int    deviceNum;    unsigned int    venID;    unsigned int    deviceID;    unsigned int    bar0Base;    unsigned int    bar0Size;    unsigned int    bar0Type;    unsigned int    bar1Base;    unsigned int    bar1Size;    unsigned int    bar1Type;    unsigned int    bar2Base;    unsigned int    bar2Size;    unsigned int    bar2Type;    unsigned int    bar3Base;    unsigned int    bar3Size;    unsigned int    bar3Type;    unsigned int    bar4Base;    unsigned int    bar4Size;    unsigned int    bar4Type;    unsigned int    bar5Base;    unsigned int    bar5Size;    unsigned int    bar5Type;} PCI_DEVICE;void    pci0WriteConfigReg(unsigned int regOffset,unsigned int pciDevNum,                           unsigned int data);void    pci1WriteConfigReg(unsigned int regOffset,unsigned int pciDevNum,                           unsigned int data);void    pci0ScanDevices(PCI_DEVICE *pci0Detect,unsigned int numberOfElment);void    pci1ScanDevices(PCI_DEVICE *pci1Detect,unsigned int numberOfElment);unsigned int    pci0ReadConfigReg (unsigned int regOffset,                                   unsigned int pciDevNum);unsigned int    pci1ReadConfigReg (unsigned int regOffset,                                   unsigned int pciDevNum);/*      Master`s memory space   */void    pci0MapIOspace(unsigned int pci0IoBase,unsigned int pci0IoLength);void    pci0MapMemory0space(unsigned int pci0Mem0Base,                            unsigned int pci0Mem0Length);void    pci0MapMemory1space(unsigned int pci0Mem1Base,                            unsigned int pci0Mem1Length);void    pci1MapIOspace(unsigned int pci1IoBase,unsigned int pci1IoLength);void    pci1MapMemory0space(unsigned int pci1Mem0Base,                            unsigned int pci1Mem0Length);void    pci1MapMemory1space(unsigned int pci1Mem1Base,                            unsigned int pci1Mem1Length);unsigned int    pci0GetIOspaceBase(void);unsigned int    pci0GetIOspaceSize(void);unsigned int    pci0GetMemory0Base(void);unsigned int    pci0GetMemory0Size(void);unsigned int    pci0GetMemory1Base(void);unsigned int    pci0GetMemory1Size(void);unsigned int    pci1GetIOspaceBase(void);unsigned int    pci1GetIOspaceSize(void);unsigned int    pci1GetMemory0Base(void);unsigned int    pci1GetMemory0Size(void);unsigned int    pci1GetMemory1Base(void);unsigned int    pci1GetMemory1Size(void);/*      Slave`s memory space   */void    pci0MapInternalRegSpace(unsigned int pci0InternalBase);void    pci0MapInternalRegIOSpace(unsigned int pci0InternalBase);void    pci0MapMemoryBanks0_1(unsigned int pci0Dram0_1Base,                              unsigned int pci0Dram0_1Size);void    pci0MapMemoryBanks2_3(unsigned int pci0Dram2_3Base,                              unsigned int pci0Dram2_3Size);void    pci0MapDevices0_1and2MemorySpace(unsigned int pci0Dev012Base,                                         unsigned int pci0Dev012Length);void    pci0MapDevices3andBootMemorySpace(unsigned int pci0Dev3andBootBase,                                          unsigned int pci0Dev3andBootLength);void    pci1MapInternalRegSpace(unsigned int pci1InternalBase);void    pci1MapInternalRegIOSpace(unsigned int pci1InternalBase);void    pci1MapMemoryBanks0_1(unsigned int pci1Dram0_1Base,                              unsigned int pci1Dram0_1Size);void    pci1MapMemoryBanks2_3(unsigned int pci1Dram2_3Base,                              unsigned int pci1Dram2_3Size);void    pci1MapDevices0_1and2MemorySpace(unsigned int pci1Dev012Base,                                         unsigned int pci1Dev012Length);void    pci1MapDevices3andBootMemorySpace(unsigned int pci1Dev3andBootBase,                                          unsigned int pci1Dev3andBootLength);#endif  /* __INCpcih */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -