[dev][bus][pci] major refactor of the PCI bus driver

-Add a bus manager level, which is an object oriented walk of the pci
busses to build a per device object for later manipulation.
-Add features to enable MSI interrupts.
-Extend generic interrupt api to allow the platform to allocate vectors
for MSI interrupts.
-Rearrange a bit of the pc platform for the platform api changes.
-Add PC platform support for using the local apic to EOI MSI vectors.
-Fix up a few existing PCI drivers for small API changes.
-Add a few stubbed out routines for non PC platforms that use PCI.
This commit is contained in:
Travis Geiselbrecht
2021-12-27 20:19:38 -08:00
parent 522e62f648
commit fb1e414a09
29 changed files with 2072 additions and 718 deletions

View File

@@ -16,3 +16,13 @@ void platform_init_debug(void);
void platform_init_interrupts(void);
void platform_init_timer(void);
// legacy programmable interrupt controller
void pic_init(void);
void pic_enable(unsigned int vector, bool enable);
void pic_eoi(unsigned int vector);
void pic_mask_interrupts(void);
// local apic
void lapic_init(void);
void lapic_eoi(unsigned int vector);