This patch series adds code to probe the PCI devices during startup and cache the results for future scans. Doing so has a few advantages: storing the list of pci devices reduces PCI config accesses which can reduce boot time, the lack of a cache results in complex code to do bus tracking (vga / pcipath), and it's likely PCI init on emulators could take advantage of this structure during PCI setup.
This is the start of conversion to the 'struct pci_device' system - other users could also be converted. In particular, the pci_setup() code has not been converted.
-Kevin
Kevin O'Connor (10): Rename foreachpci macro to foreachbdf. Find all pci devices at startup and cache them for future use. Remove support for compiling in OPTIONROM_VENDEV_1/2. Convert option rom scan to use struct pci_device. Convert ATA detection code to use struct pci_device. Convert mptable code to use struct pci_device. Convert virtio detection to use struct pci_device. Convert AHCI detection code to use struct pci_device. Convert USB detection code to use struct pci_device. Replace PCIPaths code with struct pci_device.
src/ahci.c | 10 ++-- src/ata.c | 17 +++---- src/boot.c | 39 +++++++++------ src/config.h | 7 --- src/mptable.c | 10 ++-- src/optionroms.c | 92 +++++++++++++++++++++--------------- src/pci.c | 137 ++++++++++++++++++++++-------------------------------- src/pci.h | 41 +++++++++------- src/pcibios.c | 6 +- src/pciinit.c | 8 ++-- src/post.c | 2 +- src/usb.c | 39 +++++++--------- src/virtio-blk.c | 11 ++-- 13 files changed, 207 insertions(+), 212 deletions(-)