diff options
Diffstat (limited to 'kernel/GDT')
| -rw-r--r-- | kernel/GDT/gdt.cpp | 20 | ||||
| -rw-r--r-- | kernel/GDT/gdt.hpp | 31 |
2 files changed, 45 insertions, 6 deletions
diff --git a/kernel/GDT/gdt.cpp b/kernel/GDT/gdt.cpp index 5aa8065..c3a5d43 100644 --- a/kernel/GDT/gdt.cpp +++ b/kernel/GDT/gdt.cpp @@ -2,10 +2,26 @@ #include "../Types/types.hpp" -void initGdtDesc(u32 base, u32 limit, u8 type, u8 param, gdtDescriptorStruct *descriptor){ +Gdt::Gdt(){ + //Init desc 1 (0 conventional) + //Init desc 2 (code segment) + //Init desc 3 (data segment) + //Init desc 4 (stack segment) + + } +Gdt::~Gdt(){ + +} + +void Gdt::initGdtDesc(u32 base, u32 limit, u8 type, u8 param, gdtDescriptorStruct *Descriptor){ + //Load parameter into "Descriptor" +} -void initGdt(){ +void Gdt::loadGdt(){ + //Copy Gdt into memory } + + diff --git a/kernel/GDT/gdt.hpp b/kernel/GDT/gdt.hpp index 4b16886..607cc72 100644 --- a/kernel/GDT/gdt.hpp +++ b/kernel/GDT/gdt.hpp @@ -21,13 +21,36 @@ struct gdtDescriptorStruct{ u8 base3; } __attribute__ ((packed)); - //Typedef : typedef struct gdtPointerStruct gdtPointerStruct; typedef struct gdtDescriptorStruct gdtDescriptorStruct; -//Functions : -void initGdtDesc(u32 base, u32 limit, u8 type, u8 param, gdtDescriptorStruct *descriptor); -void initGdt(); + +//Gdt class +class Gdt{ + + private: + + //Data members + gdtDescriptorStruct m_Descriptor[4]; + gdtPointerStruct m_Pointer; + + //Methods + void initGdtDesc(u32 base, u32 limit, u8 type, u8 param, gdtDescriptorStruct *Descriptor); + + + public: + + //Constructor + Gdt(); + + //Destructor + ~Gdt(); + + //Methods + void loadGdt(); + +}; + #endif |
