aboutsummaryrefslogtreecommitdiff
path: root/kernel/include/gdt.h
diff options
context:
space:
mode:
authorFranklin Wei <frankhwei536@gmail.com>2015-02-01 11:33:16 -0500
committerFranklin Wei <frankhwei536@gmail.com>2015-02-01 11:33:16 -0500
commit439d724ce5939cab7a5c858d1829f212e01e0402 (patch)
tree154afa843a96e4cebd4d4f4f480f36415668d620 /kernel/include/gdt.h
parent1d7843c2b6d746376f87c2634c92cd93d8cdb728 (diff)
downloadkappa-439d724ce5939cab7a5c858d1829f212e01e0402.zip
kappa-439d724ce5939cab7a5c858d1829f212e01e0402.tar.gz
kappa-439d724ce5939cab7a5c858d1829f212e01e0402.tar.bz2
kappa-439d724ce5939cab7a5c858d1829f212e01e0402.tar.xz
first real commit
Diffstat (limited to 'kernel/include/gdt.h')
-rw-r--r--kernel/include/gdt.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/kernel/include/gdt.h b/kernel/include/gdt.h
new file mode 100644
index 0000000..e93c92a
--- /dev/null
+++ b/kernel/include/gdt.h
@@ -0,0 +1,23 @@
+#include <stdint.h>
+
+struct gdt_entry {
+ uint16_t limit_low;
+ uint16_t base_low;
+ uint8_t base_middle;
+ uint8_t access;
+ uint8_t granularity;
+ uint8_t base_high;
+} __attribute__((packed));
+
+struct gdt_ptr {
+ uint8_t limit;
+ uint32_t base;
+} __attribute__((packed));
+
+struct gdt_entry gdt[3];
+struct gdt_ptr gp;
+
+/* assembly */
+extern void gdt_flush(struct gdt_ptr*);
+
+void gdt_init(void);