aboutsummaryrefslogtreecommitdiff
path: root/src/gdt.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/gdt.cc')
-rw-r--r--src/gdt.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gdt.cc b/src/gdt.cc
index cb210a2..0712187 100644
--- a/src/gdt.cc
+++ b/src/gdt.cc
@@ -6,12 +6,17 @@ using seg = GDT::SegmentDescriptor;
static_assert(sizeof(GDT::Pointer) == 6);
constexpr uint32_t null_sz = 0;
-constexpr uint32_t kseg_sz = 64 * 1024 * 1024 + 0xfff;
+
+/* TODO kcode should only contain the .text segment
+ * TODO kdata should contain the other segments
+ * */
+constexpr uint32_t kseg_start = 0;
+constexpr uint32_t kseg_sz = 0xffffffff;
static GDT::SegmentDescriptor segments[256]{
[GDT::null0] = seg::make<null_sz>(0, {}),
- [GDT::kcode] = seg::make<kseg_sz>(0, {.r_w = true, .exe = true, .segment = true, .present = true}),
- [GDT::kdata] = seg::make<kseg_sz>(0, {.r_w = true, .segment = true, .present = true}),
+ [GDT::kcode] = seg::make<kseg_sz>(kseg_start, {.r_w = true, .exe = true, .segment = true, .present = true}),
+ [GDT::kdata] = seg::make<kseg_sz>(kseg_start, {.r_w = true, .segment = true, .present = true}),
};
GDT::GDT() {