#include "gdt.h" static const gdt_entry_t gdt_entries[] = { /* Null descriptor */ 0u, /* Code segment for kernel */ gdt_build_entry(0u, 0xFFFFFu, 1u, 0u, 1u, 1u, 0u, 1u, 0u, 1u, 1u, 0u), /* Data segment for kernel */ gdt_build_entry(0u, 0xFFFFFu, 1u, 0u, 1u, 0u, 0u, 1u, 0u, 1u, 1u, 0u), }; gdtr_t gdtr; void gdt_init(void) { gdtr.size = sizeof(gdt_entries); gdtr.offset_lower = (uintptr_t)gdt_entries & 0xFFFFu; gdtr.offset_upper = (uintptr_t)gdt_entries >> 16u; gdt_set(); }