diff options
author | Quinn Stephens <quinn@osmora.org> | 2025-02-14 23:35:04 -0500 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-02-15 01:11:00 -0500 |
commit | 6f74de54f35042fa03e5e8626065de9998a88ea6 (patch) | |
tree | 03bae3bbc09514d292a635fa228f9a722e428d71 /sys/include/dev/pci/pci.h | |
parent | 03607899759b4b8315a618ecb4af66c710fffb7e (diff) |
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 <quinn@osmora.org>
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/include/dev/pci/pci.h')
-rw-r--r-- | sys/include/dev/pci/pci.h | 7 |
1 files changed, 7 insertions, 0 deletions
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; }; |