summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalKernelMain.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-18 00:16:56 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-18 00:16:56 +0200
commit7bfa36c2215e13097bb5ddcb15d2a8a476102b55 (patch)
tree8570cd210aaf11d8cd36aebf3b682e420a497bff /dev/kernel/HALKit/AMD64/HalKernelMain.cc
parentf092c767a1988b91c481022f29f167f231d635ad (diff)
dev, kernel: important patches.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalKernelMain.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index 60df6a12..b716279d 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -43,14 +43,14 @@ EXTERN_C Int32 hal_init_platform(
return kEfiFail;
}
+ kHandoverHeader = handover_hdr;
+
FB::fb_clear_video();
(Void)(Kernel::kout << "Welcome to NeKernel.\r");
fw_init_efi((EfiSystemTable*)handover_hdr->f_FirmwareCustomTables[1]);
- Boot::ExitBootServices(handover_hdr->f_EFIImageKey, handover_hdr->f_EFIImage);
-
- kHandoverHeader = handover_hdr;
+ Boot::ExitBootServices(handover_hdr->f_HardwareTables.f_ImageKey, handover_hdr->f_HardwareTables.f_ImageHandle);
hal_init_scheduler_team();
@@ -83,10 +83,6 @@ EXTERN_C Int32 hal_init_platform(
gdt_reg.Base = reinterpret_cast<Kernel::UIntPtr>(kGDTArray);
gdt_reg.Limit = (sizeof(Kernel::HAL::Detail::NE_GDT_ENTRY) * kGDTEntriesCount) - 1;
- Kernel::NeFS::fs_init_nefs();
-
- Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
-
//! GDT will load hal_read_init after it successfully loads the segments.
Kernel::HAL::GDTLoader gdt_loader;
gdt_loader.Load(gdt_reg);
@@ -96,6 +92,10 @@ EXTERN_C Int32 hal_init_platform(
EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
{
+ Kernel::NeFS::fs_init_nefs();
+
+ Kernel::HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
+
Kernel::HAL::Register64 idt_reg;
idt_reg.Base = (Kernel::UIntPtr)kInterruptVectorTable;