summaryrefslogtreecommitdiff
path: root/kernel/GDT
diff options
context:
space:
mode:
authormanzerbredes <loic.guegan_secondary@yahoo.fr>2015-07-20 16:58:34 +0400
committermanzerbredes <loic.guegan_secondary@yahoo.fr>2015-07-20 16:58:34 +0400
commit3b171151bd1a9b0f668ba10b18b6622e0d1edddc (patch)
treea2f86471082cd115f25fb8863e39c12292b6d797 /kernel/GDT
parent9b856ae4d7ad3dafc5cc6eac9194ff3803965d94 (diff)
Edit GDT class
Diffstat (limited to 'kernel/GDT')
-rw-r--r--kernel/GDT/gdt.cpp20
-rw-r--r--kernel/GDT/gdt.hpp31
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