From 3b171151bd1a9b0f668ba10b18b6622e0d1edddc Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Mon, 20 Jul 2015 16:58:34 +0400 Subject: Edit GDT class --- kernel/GDT/gdt.cpp | 20 ++++++++++++++++++-- kernel/GDT/gdt.hpp | 31 +++++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 6 deletions(-) (limited to 'kernel/GDT') 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 -- cgit v1.2.3