summaryrefslogtreecommitdiffstats
path: root/arch/x86/PrimaryInit.cpp
diff options
context:
space:
mode:
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()