summaryrefslogtreecommitdiff
path: root/kernel/GDT
diff options
context:
space:
mode:
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