Kernel: Call USB Driver initialize functions during init

This commit is contained in:
Jesse Buhagiar 2022-05-17 21:47:57 +10:00 committed by Andrew Kaster
parent a0dd6ec6b1
commit 3cead2801a

View file

@ -12,6 +12,7 @@
#include <Kernel/Boot/Multiboot.h>
#include <Kernel/Bus/PCI/Access.h>
#include <Kernel/Bus/PCI/Initializer.h>
#include <Kernel/Bus/USB/Drivers/USBDriver.h>
#include <Kernel/Bus/USB/USBManagement.h>
#include <Kernel/Bus/VirtIO/Device.h>
#include <Kernel/Bus/VirtIO/Transport/PCIe/Detect.h>
@ -84,6 +85,9 @@ extern "C" u8 start_of_safemem_atomic_text[];
extern "C" u8 end_of_safemem_atomic_text[];
#endif
extern "C" USB::DriverInitFunction driver_init_table_start[];
extern "C" USB::DriverInitFunction driver_init_table_end[];
extern "C" u8 end_of_kernel_image[];
multiboot_module_entry_t multiboot_copy_boot_modules_array[16];
@ -417,6 +421,10 @@ void init_stage2(void*)
PANIC("VirtualFileSystem::mount_root failed");
}
// Initialise all USB Drivers
for (auto* init_function = driver_init_table_start; init_function != driver_init_table_end; init_function++)
(*init_function)();
// Switch out of early boot mode.
g_in_early_boot = false;