Hi,
This patch series redesigns the existing pciinit.c code and introduces linked list operations. Changes are more about structures definitions rather than functionality. There are no more arrays of bases and counts in new implementation. The new implementation is based on dynamic allocation of pci_region_entry structures. Each pci_region_entry structure could be a PCI bar or a downstream PCI region (bridge). Each entry has a set of attributes: type (IO, MEM, PREFMEM), is64bit, size, base address, PCI device owner, and a pointer to the pci_bus it belongs to. Also this series introduces list head operations which could be quite handy not only for pciinit.c code but for post memory manager and thread operations.
The patch series includes 3 patches.
1. Introduce List operations 2. Redesign of pciinit.c code to make use of pci_region_entry structure. 3. Make use of list operations in pmm.c and stack.c
src/pci.h | 6 -- src/pciinit.c | 266 ++++++++++++++++++++++++++------------------------------- src/pmm.c | 29 ++----- src/stacks.c | 8 +-- src/util.h | 32 +++++++ 5 files changed, 163 insertions(+), 178 deletions(-)