summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit/AMD64/HalHardwareInit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Private/HALKit/AMD64/HalHardwareInit.cpp')
-rw-r--r--Private/HALKit/AMD64/HalHardwareInit.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/Private/HALKit/AMD64/HalHardwareInit.cpp b/Private/HALKit/AMD64/HalHardwareInit.cpp
index b509b284..bc002e3d 100644
--- a/Private/HALKit/AMD64/HalHardwareInit.cpp
+++ b/Private/HALKit/AMD64/HalHardwareInit.cpp
@@ -11,9 +11,22 @@
// bugs = 0
+extern "C" HCore::VoidPtr __EXEC_IVT;
+
+static HCore::HAL::Register64* kIdtRegister;
+static HCore::HAL::Register64* kGdtRegister;
+
namespace HCore {
bool ke_init_hal() {
- // TODO: Hardware Specific stuff.
+ kIdtRegister = nullptr;
+ kGdtRegister = nullptr;
+
+ kIdtRegister = new HCore::HAL::Register64();
+ kIdtRegister->Base = (UIntPtr)__EXEC_IVT;
+ kIdtRegister->Limit = sizeof(HAL::Register64) * 256;
+
+ HAL::IDTLoader idt;
+ idt.Load(*kIdtRegister);
return true;
}