📄 pcireg.h
字号:
/* 0x0e I2O (Intelligent I/O) subclasses */#define PCI_SUBCLASS_I2O_STANDARD 0x00/* 0x0f satellite communication subclasses *//* PCI_SUBCLASS_SATCOM_??? 0x00 / * XXX ??? */#define PCI_SUBCLASS_SATCOM_TV 0x01#define PCI_SUBCLASS_SATCOM_AUDIO 0x02#define PCI_SUBCLASS_SATCOM_VOICE 0x03#define PCI_SUBCLASS_SATCOM_DATA 0x04/* 0x10 encryption/decryption subclasses */#define PCI_SUBCLASS_CRYPTO_NETCOMP 0x00#define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10#define PCI_SUBCLASS_CRYPTO_MISC 0x80/* 0x11 data acquisition and signal processing subclasses */#define PCI_SUBCLASS_DASP_DPIO 0x00#define PCI_SUBCLASS_DASP_TIMEFREQ 0x01#define PCI_SUBCLASS_DASP_MISC 0x80/* * PCI BIST/Header Type/Latency Timer/Cache Line Size Register. */#define PCI_BHLC_REG 0x0c#define PCI_BIST_SHIFT 24#define PCI_BIST_MASK 0xff#define PCI_BIST(bhlcr) \ (((bhlcr) >> PCI_BIST_SHIFT) & PCI_BIST_MASK)#define PCI_HDRTYPE_SHIFT 16#define PCI_HDRTYPE_MASK 0xff#define PCI_HDRTYPE(bhlcr) \ (((bhlcr) >> PCI_HDRTYPE_SHIFT) & PCI_HDRTYPE_MASK)#define PCI_HDRTYPE_TYPE(bhlcr) \ (PCI_HDRTYPE(bhlcr) & 0x7f)#define PCI_HDRTYPE_MULTIFN(bhlcr) \ ((PCI_HDRTYPE(bhlcr) & 0x80) != 0)#define PCI_LATTIMER_SHIFT 8#define PCI_LATTIMER_MASK 0xff#define PCI_LATTIMER(bhlcr) \ (((bhlcr) >> PCI_LATTIMER_SHIFT) & PCI_LATTIMER_MASK)#define PCI_CACHELINE_SHIFT 0#define PCI_CACHELINE_MASK 0xff#define PCI_CACHELINE(bhlcr) \ (((bhlcr) >> PCI_CACHELINE_SHIFT) & PCI_CACHELINE_MASK)/* config registers for header type 0 devices */#define PCI_MAPS 0x10#define PCI_CARDBUSCIS 0x28#define PCI_SUBVEND_0 0x2c#define PCI_SUBDEV_0 0x2e#define PCI_INTLINE 0x3c#define PCI_INTPIN 0x3d#define PCI_MINGNT 0x3e#define PCI_MAXLAT 0x3f/* config registers for header type 1 devices */#define PCI_SECSTAT_1 0 /**/#define PCI_PRIBUS_1 0x18#define PCI_SECBUS_1 0x19#define PCI_SUBBUS_1 0x1a#define PCI_SECLAT_1 0x1b#define PCI_IOBASEL_1 0x1c#define PCI_IOLIMITL_1 0x1d#define PCI_IOBASEH_1 0x30 /**/#define PCI_IOLIMITH_1 0x32 /**/ #define PCI_MEMBASE_1 0x20#define PCI_MEMLIMIT_1 0x22#define PCI_PMBASEL_1 0x24#define PCI_PMLIMITL_1 0x26#define PCI_PMBASEH_1 0 /**/#define PCI_PMLIMITH_1 0 /**/#define PCI_BRIDGECTL_1 0 /**/#define PCI_SUBVEND_1 0x34#define PCI_SUBDEV_1 0x36/* config registers for header type 2 devices */#define PCI_SECSTAT_2 0x16#define PCI_PRIBUS_2 0x18#define PCI_SECBUS_2 0x19#define PCI_SUBBUS_2 0x1a#define PCI_SECLAT_2 0x1b#define PCI_MEMBASE0_2 0x1c#define PCI_MEMLIMIT0_2 0x20#define PCI_MEMBASE1_2 0x24#define PCI_MEMLIMIT1_2 0x28#define PCI_IOBASE0_2 0x2c#define PCI_IOLIMIT0_2 0x30#define PCI_IOBASE1_2 0x34#define PCI_IOLIMIT1_2 0x38#define PCI_BRIDGECTL_2 0x3e#define PCI_SUBVEND_2 0x40#define PCI_SUBDEV_2 0x42#define PCI_PCCARDIF_2 0x44/* * Mapping registers */#define PCI_MAPREG_START 0x10#define PCI_MAPREG_END 0x28#define PCI_MAPREG_ROM 0x30#define PCI_MAPREG_PPB_END 0x18#define PCI_MAPREG_PCB_END 0x14#define PCI_MAPREG_TYPE(mr) \ ((mr) & PCI_MAPREG_TYPE_MASK)#define PCI_MAPREG_TYPE_MASK 0x00000001#define PCI_MAPREG_TYPE_MEM 0x00000000#define PCI_MAPREG_TYPE_IO 0x00000001#define PCI_MAPREG_TYPE_ROM 0x00000001#define PCI_MAPREG_MEM_TYPE(mr) \ ((mr) & PCI_MAPREG_MEM_TYPE_MASK)#define PCI_MAPREG_MEM_TYPE_MASK 0x00000006#define PCI_MAPREG_MEM_TYPE_32BIT 0x00000000#define PCI_MAPREG_MEM_TYPE_32BIT_1M 0x00000002#define PCI_MAPREG_MEM_TYPE_64BIT 0x00000004#define PCI_MAPREG_MEM_CACHEABLE(mr) \ (((mr) & PCI_MAPREG_MEM_CACHEABLE_MASK) != 0)#define PCI_MAPREG_MEM_CACHEABLE_MASK 0x00000008#define PCI_MAPREG_MEM_PREFETCHABLE(mr) \ (((mr) & PCI_MAPREG_MEM_PREFETCHABLE_MASK) != 0)#define PCI_MAPREG_MEM_PREFETCHABLE_MASK 0x00000008#define PCI_MAPREG_MEM_ADDR(mr) \ ((mr) & PCI_MAPREG_MEM_ADDR_MASK)#define PCI_MAPREG_MEM_SIZE(mr) \ (PCI_MAPREG_MEM_ADDR(mr) & -PCI_MAPREG_MEM_ADDR(mr))#define PCI_MAPREG_MEM_ADDR_MASK 0xfffffff0#define PCI_MAPREG_MEM64_ADDR(mr) \ ((mr) & PCI_MAPREG_MEM64_ADDR_MASK)#define PCI_MAPREG_MEM64_SIZE(mr) \ (PCI_MAPREG_MEM64_ADDR(mr) & -PCI_MAPREG_MEM64_ADDR(mr))#define PCI_MAPREG_MEM64_ADDR_MASK 0xfffffffffffffff0#define PCI_MAPREG_IO_ADDR(mr) \ ((mr) & PCI_MAPREG_IO_ADDR_MASK)#define PCI_MAPREG_IO_SIZE(mr) \ (PCI_MAPREG_IO_ADDR(mr) & -PCI_MAPREG_IO_ADDR(mr))#define PCI_MAPREG_IO_ADDR_MASK 0xfffffffe#define PCI_MAPREG_ROM_ADDR(mr) \ ((mr) & PCI_MAPREG_ROM_ADDR_MASK)#define PCI_MAPREG_ROM_SIZE(mr) \ (PCI_MAPREG_ROM_ADDR(mr) & -PCI_MAPREG_ROM_ADDR(mr))#define PCI_MAPREG_ROM_ADDR_MASK 0xfffff800/* * Cardbus CIS pointer (PCI rev. 2.1) */#define PCI_CARDBUS_CIS_REG 0x28/* * Subsystem identification register; contains a vendor ID and a device ID. * Types/macros for PCI_ID_REG apply. * (PCI rev. 2.1) */#define PCI_SUBSYS_ID_REG 0x2c/* * capabilities link list (PCI rev. 2.2) */#define PCI_CAPLISTPTR_REG 0x34#define PCI_CAPLIST_PTR(cpr) ((cpr) & 0xff)#define PCI_CAPLIST_NEXT(cr) (((cr) >> 8) & 0xff)#define PCI_CAPLIST_CAP(cr) ((cr) & 0xff)#define PCI_CAP_REESSERVED 0x00#define PCI_CAP_PWRMGMT 0x01#define PCI_CAP_AGP 0x02#define PCI_CAP_VPD 0x03#define PCI_CAP_SLOTID 0x04#define PCI_CAP_MBI 0x05#define PCI_CAP_CPCI_HOTSWAP 0x06#define PCI_CAP_PCIX 0x07#define PCI_CAP_LDT 0x08#define PCI_CAP_VENDSPEC 0x09#define PCI_CAP_DEBUGPORT 0x0a#define PCI_CAP_CPCI_RSRCCTL 0x0b#define PCI_CAP_HOTPLUG 0x0c/* * Power Management Control Status Register; access via capability pointer. */#define PCI_PMCSR_STATE_MASK 0x03#define PCI_PMCSR_STATE_D0 0x00#define PCI_PMCSR_STATE_D1 0x01#define PCI_PMCSR_STATE_D2 0x02#define PCI_PMCSR_STATE_D3 0x03/* * Interrupt Configuration Register; contains interrupt pin and line. */#define PCI_INTERRUPT_REG 0x3ctypedef u_int8_t pci_intr_pin_t;typedef u_int8_t pci_intr_line_t;#define PCI_INTERRUPT_PIN_SHIFT 8#define PCI_INTERRUPT_PIN_MASK 0xff#define PCI_INTERRUPT_PIN(icr) \ (((icr) >> PCI_INTERRUPT_PIN_SHIFT) & PCI_INTERRUPT_PIN_MASK)#define PCI_INTERRUPT_LINE_SHIFT 0#define PCI_INTERRUPT_LINE_MASK 0xff#define PCI_INTERRUPT_LINE(icr) \ (((icr) >> PCI_INTERRUPT_LINE_SHIFT) & PCI_INTERRUPT_LINE_MASK)#define PCI_MIN_GNT_SHIFT 16#define PCI_MIN_GNT_MASK 0xff#define PCI_MIN_GNT(icr) \ (((icr) >> PCI_MIN_GNT_SHIFT) & PCI_MIN_GNT_MASK)#define PCI_MAX_LAT_SHIFT 24#define PCI_MAX_LAT_MASK 0xff#define PCI_MAX_LAT(icr) \ (((icr) >> PCI_MAX_LAT_SHIFT) & PCI_MAX_LAT_MASK)#define PCI_INTERRUPT_PIN_NONE 0x00#define PCI_INTERRUPT_PIN_A 0x01#define PCI_INTERRUPT_PIN_B 0x02#define PCI_INTERRUPT_PIN_C 0x03#define PCI_INTERRUPT_PIN_D 0x04#define PCI_INTERRUPT_PIN_MAX 0x04#endif /* _DEV_PCI_PCIREG_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -