diff options
| author | Alexey Gavrilov <rebovas@yahoo.com> | 2024-03-31 14:39:51 +0700 |
|---|---|---|
| committer | Alexey Gavrilov <rebovas@yahoo.com> | 2024-03-31 14:39:51 +0700 |
| commit | 49cfee4e370892df8404e56d53b04dde196f82f2 (patch) | |
| tree | d309b630a161823c79dab9a48f67a41a40d76b24 /arch/x86/PrimaryInit.cpp | |
| parent | a276644952ed018e77ca64181059434a6bc4ee62 (diff) | |
IDT + uintptr update
Diffstat (limited to 'arch/x86/PrimaryInit.cpp')
| -rw-r--r-- | arch/x86/PrimaryInit.cpp | 17 |
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() |
