summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/HALKit/AMD64/HalDescriptorLoader.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-02-19 08:14:48 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-02-19 08:14:48 +0100
commitf0acad6f3206079d804b2f59aace0dc32dbeb6dc (patch)
tree44116f2771ebf146ec016337ba07d0320575dae3 /src/kernel/HALKit/AMD64/HalDescriptorLoader.cc
parent41117a33aa0dde66b8964b4bc0de0082fcd40667 (diff)
kernel: lots of tweaks and improvements, WIP: ASN, FileMgr support for OpenHeFS.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/HALKit/AMD64/HalDescriptorLoader.cc')
-rw-r--r--src/kernel/HALKit/AMD64/HalDescriptorLoader.cc69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/kernel/HALKit/AMD64/HalDescriptorLoader.cc b/src/kernel/HALKit/AMD64/HalDescriptorLoader.cc
deleted file mode 100644
index e803f7a8..00000000
--- a/src/kernel/HALKit/AMD64/HalDescriptorLoader.cc
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
-// Licensed under the Apache License, Version 2.0 (see LICENSE file)
-// Official repository: https://github.com/nekernel-org/nekernel
-
-#include <ArchKit/ArchKit.h>
-#include <FSKit/NeFS.h>
-#include <HALKit/AMD64/Processor.h>
-
-namespace Kernel::HAL {
-namespace Detail {
- STATIC ::Kernel::Detail::AMD64::InterruptDescriptorAMD64 kInterruptVectorTable[kKernelIdtSize] =
- {};
-} // namespace Detail
-
-/// @brief Loads the provided Global Descriptor Table.
-/// @param gdt
-/// @return
-Void GDTLoader::Load(Register64& gdt) {
-#ifndef __NE_MODULAR_KERNEL_COMPONENTS__
- hal_load_gdt(gdt);
-#endif // __NE_MODULAR_KERNEL_COMPONENTS__
-}
-
-Void IDTLoader::Load(Register64& idt) {
-#ifndef __NE_MODULAR_KERNEL_COMPONENTS__
- rt_cli();
-
- volatile UIntPtr** ptr_ivt = (volatile UIntPtr**) idt.Base;
-
- for (SizeT idt_indx = 0; idt_indx < kKernelIdtSize; ++idt_indx) {
- Detail::kInterruptVectorTable[idt_indx].Selector = kIDTSelector;
- Detail::kInterruptVectorTable[idt_indx].Ist = 0;
- Detail::kInterruptVectorTable[idt_indx].TypeAttributes =
- kKernelInterruptId ? kUserInterruptGate : kInterruptGate;
- Detail::kInterruptVectorTable[idt_indx].OffsetLow = ((UIntPtr) ptr_ivt[idt_indx] & 0xFFFF);
- Detail::kInterruptVectorTable[idt_indx].OffsetMid =
- (((UIntPtr) ptr_ivt[idt_indx] >> 16) & 0xFFFF);
- Detail::kInterruptVectorTable[idt_indx].OffsetHigh =
- (((UIntPtr) ptr_ivt[idt_indx] >> 32) & 0xFFFFFFFF);
-
- Detail::kInterruptVectorTable[idt_indx].Zero = 0;
- }
-
- idt.Base = (UIntPtr) &Detail::kInterruptVectorTable[0];
- idt.Limit = sizeof(::Kernel::Detail::AMD64::InterruptDescriptorAMD64) * (kKernelIdtSize);
-
- hal_load_idt(idt);
- rt_sti();
-#endif // __NE_MODULAR_KERNEL_COMPONENTS__
-
- return;
-}
-
-/// @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