summaryrefslogtreecommitdiff
path: root/sys/include/dev/pci/pci.h
diff options
context:
space:
mode:
authorQuinn Stephens <quinn@osmora.org>2025-02-14 23:35:04 -0500
committerIan Moffett <ian@osmora.org>2025-02-14 23:36:33 -0500
commite7cf7a914a4835cc8d29af79a2e3b5fad220bd3d (patch)
tree03bae3bbc09514d292a635fa228f9a722e428d71 /sys/include/dev/pci/pci.h
parent97fa59f389778fb7257a71ad1015a3eb2234a084 (diff)
kernel: pci: Optimize PCI bus scanning
From fe1beed19be88e0c43ff2a68994d6abc04a52f54 Mon Sep 17 00:00:00 2001 From: Quinn Stephens <quinn@osmora.org> Date: Fri, 14 Feb 2025 23:30:03 -0500 Subject: [PATCH] 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.h7
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;
};