From 6f74de54f35042fa03e5e8626065de9998a88ea6 Mon Sep 17 00:00:00 2001 From: Quinn Stephens Date: Fri, 14 Feb 2025 23:35:04 -0500 Subject: kernel: pci: Optimize PCI bus scanning Uses recursive bus/bridge scanning, skips nonexistent devices, and only scans for multiple functions on multifunction devices. This may result in PCI scanning being up to 100x as fast. Signed-off-by: Quinn Stephens Signed-off-by: Ian Moffett --- sys/include/dev/pci/pci.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'sys/include/dev/pci/pci.h') diff --git a/sys/include/dev/pci/pci.h b/sys/include/dev/pci/pci.h index b5bb32c..8118cee 100644 --- a/sys/include/dev/pci/pci.h +++ b/sys/include/dev/pci/pci.h @@ -60,8 +60,15 @@ struct pci_device { uint8_t pci_class; uint8_t pci_subclass; uint8_t prog_if; + uint8_t hdr_type; + + uint8_t pri_bus; + uint8_t sec_bus; + uint8_t sub_bus; + uintptr_t bar[6]; uint8_t irq_line; + TAILQ_ENTRY(pci_device) link; }; -- cgit v1.2.3