diff options
author | Quinn Stephens <quinn@osmora.org> | 2025-02-14 23:35:04 -0500 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-02-14 23:36:33 -0500 |
commit | e7cf7a914a4835cc8d29af79a2e3b5fad220bd3d (patch) | |
tree | 03bae3bbc09514d292a635fa228f9a722e428d71 /sys/include/dev/pci/pci.h | |
parent | 97fa59f389778fb7257a71ad1015a3eb2234a084 (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.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; }; |