summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-03-29 10:59:55 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-03-29 10:59:55 +0100
commitb7709d9dc8fc74ab1c60336b487a2c2f90ceeb99 (patch)
tree752d60a92c2902e4669fae0639888a065cb7beba /dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
parent2c272e3ca3272cf8f1449c76cc83b1b927f419c9 (diff)
hal/amd64: unify GDT/IDT setup and rename I/O ops
Normalize descriptor loading logic under Register64. Prefix low-level port and MSR functions with hal_ for consistency. Improve APIC init flow to reflect MADT-based IRQ routing. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
index a83ed2e5..2b161d11 100644
--- a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
+++ b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
@@ -77,7 +77,7 @@ namespace Kernel::HAL
/// @brief Loads the provided Global Descriptor Table.
/// @param gdt
/// @return
- Void GDTLoader::Load(RegisterGDT& gdt)
+ Void GDTLoader::Load(Register64& gdt)
{
hal_load_gdt(gdt);
}
@@ -114,13 +114,23 @@ namespace Kernel::HAL
rt_sti();
}
- void GDTLoader::Load(Ref<RegisterGDT>& gdt)
+ /// @brief Loads the Global Descriptor Table into the CPU.
+ /// @param gdt GDT register wrapped in a ref.
+ void GDTLoader::Load(Ref<Register64>& gdt)
{
+ if (!gdt)
+ return;
+
GDTLoader::Load(gdt.Leak());
}
+ /// @brief Loads the IDT, for interupts.
+ /// @param idt IDT register wrapped in a ref.
void IDTLoader::Load(Ref<Register64>& idt)
{
+ if (!idt)
+ return;
+
IDTLoader::Load(idt.Leak());
}
} // namespace Kernel::HAL