diff options
| author | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-07-20 16:58:34 +0400 |
|---|---|---|
| committer | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-07-20 16:58:34 +0400 |
| commit | 3b171151bd1a9b0f668ba10b18b6622e0d1edddc (patch) | |
| tree | a2f86471082cd115f25fb8863e39c12292b6d797 | |
| parent | 9b856ae4d7ad3dafc5cc6eac9194ff3803965d94 (diff) | |
Edit GDT class
| -rw-r--r-- | kernel/GDT/gdt.cpp | 20 | ||||
| -rw-r--r-- | kernel/GDT/gdt.hpp | 31 | ||||
| -rw-r--r-- | kernel/Makefile | 14 |
3 files changed, 58 insertions, 7 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 diff --git a/kernel/Makefile b/kernel/Makefile index c366b55..cb1a351 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -1,14 +1,26 @@ + +#----- Kernel ----- kernel.bin:entry.o main.o GDT/gdt.o ld -m elf_i386 --entry=_start -Ttext=0x100000 -o $@ $^ +#----------------- + +#----- Entry & Main----- entry.o:entry.asm nasm -f elf $^ main.o:main.cpp g++ -Wall -m32 -c $^ -o $@ +#----------------------- + + +#----- GDT ----- GDT/gdt.o: - cd GDT && make + cd ./GDT && make +#--------------- + +#----- Other ----- clean: cd ./GDT/ && make clean rm ./*.o |
