summaryrefslogtreecommitdiffstats
path: root/arch/x86/PrimaryInit.cpp
diff options
context:
space:
mode:
authorAlexey Gavrilov <rebovas@yahoo.com>2024-03-31 14:39:51 +0700
committerAlexey Gavrilov <rebovas@yahoo.com>2024-03-31 14:39:51 +0700
commit49cfee4e370892df8404e56d53b04dde196f82f2 (patch)
treed309b630a161823c79dab9a48f67a41a40d76b24 /arch/x86/PrimaryInit.cpp
parenta276644952ed018e77ca64181059434a6bc4ee62 (diff)
IDT + uintptr update
Diffstat (limited to 'arch/x86/PrimaryInit.cpp')
-rw-r--r--arch/x86/PrimaryInit.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/x86/PrimaryInit.cpp b/arch/x86/PrimaryInit.cpp
index 7de690e..5359978 100644
--- a/arch/x86/PrimaryInit.cpp
+++ b/arch/x86/PrimaryInit.cpp
@@ -1,13 +1,28 @@
#include "PrimaryInit.h"
+#include "idt/Idt.h"
+// Function to test idt work. Should remove
+void isr()
+{
+ out::display << "The kernel has finished" << '\n';
+};
+
void PrimaryInitialization::processorInitialize()
{
- MngGdt mngGdt = MngGdt();
+ MngIdt &mngIdt = MngIdt::getInstance();
+ MngGdt &mngGdt = MngGdt::getInstance();
mngGdt.addDescriptor(DescSeg32::flatCodeKernel());
mngGdt.addDescriptor(DescSeg32::flatDataKernel());
mngGdt.loadGdt();
+
+ mngIdt.setDescriptor(
+ DescInterrupt32::InterruptKernelLong(
+ (uint32)isr,
+ mngGdt.getCodeSegmentKernel()),
+ 0x20);
+ mngIdt.loadIdt();
};
void PrimaryInitialization::devicesInitialize()