summaryrefslogtreecommitdiff
path: root/kernel/GDT/gdt.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/GDT/gdt.h')
-rw-r--r--kernel/GDT/gdt.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/kernel/GDT/gdt.h b/kernel/GDT/gdt.h
new file mode 100644
index 0000000..86cdaf3
--- /dev/null
+++ b/kernel/GDT/gdt.h
@@ -0,0 +1,37 @@
+#ifndef __GDT__
+#define __GDT__
+
+#include "../Helpers/types.h"
+
+
+//Define GDT pointer
+struct GdtPointerStruct{
+ u16 size;
+ u32 segment;
+} __attribute__ ((packed));
+
+
+//Define GDT descriptor
+struct GdtDescriptorStruct{
+ u16 limit1;
+ u16 base1;
+ u8 base2;
+ u8 access;
+ u8 limit2 : 4;
+ u8 flags : 4;
+ u8 base3;
+} __attribute__ ((packed));
+
+
+//Typedef :
+typedef struct GdtPointerStruct GdtPointerStruct;
+typedef struct GdtDescriptorStruct GdtDescriptorStruct;
+
+
+//Functions :
+void gdt_initGdtDesc(u32 base, u32 limit, u8 access, u8 flags, GdtDescriptorStruct *Descriptor);
+void gdt_loadGdt();
+
+
+
+#endif