160742802SPekka Enberg #ifndef KVM__PCI_H 260742802SPekka Enberg #define KVM__PCI_H 360742802SPekka Enberg 4*4402a581SPekka Enberg /* 5*4402a581SPekka Enberg * PCI Configuration Mechanism #1 I/O ports. See Section 3.7.4.1. 6*4402a581SPekka Enberg * ("Configuration Mechanism #1") of the PCI Local Bus Specification 2.1 for 7*4402a581SPekka Enberg * details. 8*4402a581SPekka Enberg */ 9305b72ceSCyrill Gorcunov #define PCI_CONFIG_ADDRESS 0xcf8 10305b72ceSCyrill Gorcunov #define PCI_CONFIG_DATA 0xcfc 11305b72ceSCyrill Gorcunov 12*4402a581SPekka Enberg struct pci_config_address { 13*4402a581SPekka Enberg unsigned zeros : 2; /* 1 .. 0 */ 14*4402a581SPekka Enberg unsigned register_number : 6; /* 7 .. 2 */ 15*4402a581SPekka Enberg unsigned function_number : 3; /* 10 .. 8 */ 16*4402a581SPekka Enberg unsigned device_number : 5; /* 15 .. 11 */ 17*4402a581SPekka Enberg unsigned bus_number : 8; /* 23 .. 16 */ 18*4402a581SPekka Enberg unsigned reserved : 7; /* 30 .. 24 */ 19*4402a581SPekka Enberg unsigned enable_bit : 1; /* 31 */ 20*4402a581SPekka Enberg }; 21*4402a581SPekka Enberg 2260742802SPekka Enberg void pci__init(void); 2360742802SPekka Enberg 2460742802SPekka Enberg #endif /* KVM__PCI_H */ 25