1 #ifndef __X86_PCI_H__ 2 #define __X86_PCI_H__ 3 4 #define CF8_BDF(cf8) ( ((cf8) & 0x00ffff00) >> 8) 5 #define CF8_ADDR_LO(cf8) ( (cf8) & 0x000000fc) 6 #define CF8_ADDR_HI(cf8) ( ((cf8) & 0x0f000000) >> 16) 7 #define CF8_ENABLED(cf8) (!!((cf8) & 0x80000000)) 8 9 #define MMCFG_BDF(addr) ( ((addr) & 0x0ffff000) >> 12) 10 11 #define IS_SNB_GFX(id) (id == 0x01068086 || id == 0x01168086 \ 12 || id == 0x01268086 || id == 0x01028086 \ 13 || id == 0x01128086 || id == 0x01228086 \ 14 || id == 0x010A8086 ) 15 16 struct arch_pci_dev { 17 vmask_t used_vectors; 18 }; 19 20 int pci_conf_write_intercept(unsigned int seg, unsigned int bdf, 21 unsigned int reg, unsigned int size, 22 uint32_t *data); 23 int pci_msi_conf_write_intercept(struct pci_dev *, unsigned int reg, 24 unsigned int size, uint32_t *data); 25 bool_t pci_mmcfg_decode(unsigned long mfn, unsigned int *seg, 26 unsigned int *bdf); 27 28 bool_t pci_ro_mmcfg_decode(unsigned long mfn, unsigned int *seg, 29 unsigned int *bdf); 30 31 /* MMCFG external variable defines */ 32 extern int pci_mmcfg_config_num; 33 extern struct acpi_mcfg_allocation *pci_mmcfg_config; 34 35 #endif /* __X86_PCI_H__ */ 36