diff options
Diffstat (limited to 'kernel/GDT/gdt.cpp')
| -rw-r--r-- | kernel/GDT/gdt.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/GDT/gdt.cpp b/kernel/GDT/gdt.cpp index 4e2c28c..3b84e71 100644 --- a/kernel/GDT/gdt.cpp +++ b/kernel/GDT/gdt.cpp @@ -1,5 +1,6 @@ #include "gdt.hpp" #include "../Helpers/types.hpp" +#include "../Helpers/memory.hpp" Gdt::Gdt(){ @@ -39,7 +40,14 @@ void Gdt::initGdtDesc(u32 base, u32 limit, u8 access, u8 flags, gdtDescriptorStr } void Gdt::loadGdt(){ + int *gdtAdress=(int *)&m_Pointer; //Copy Gdt into memory and init registers + memcpy((u32)m_Descriptors, (u32)m_Pointer.segment, (u32)m_Pointer.size); + + __asm__("lgdtl (%0);" + : + :"r"(gdtAdress) + ); } |
