commit 8d075ecc3061fc5fe32bba25b5d88b4b5a6d1500 from: Onana Onana Xavier Manuel date: Sat Sep 19 05:40:08 2026 UTC Removed unecessary kernel gdt. commit - 4d7c062fbfa6373e41c75637079dd1a72c57f150 commit + 8d075ecc3061fc5fe32bba25b5d88b4b5a6d1500 blob - f1d4f0c49a7a3c8123c165c16d1de3bc11dfb79d blob + 5ced8a140314f62156093802fbb32dc82d4dcd8a --- build.sh +++ build.sh @@ -32,14 +32,12 @@ nasm -f elf64 -o io.o $KERNEL_DIR/io.s nasm -f elf64 -o mem.o $KERNEL_DIR/mem.s nasm -f elf64 -o lidt.o $KERNEL_DIR/lidt.s nasm -f elf64 -o switch.o $KERNEL_DIR/switch.s -nasm -f elf64 -o lgdt.o $KERNEL_DIR/lgdt.s nasm -f elf64 -o sysentry.o $KERNEL_DIR/sysentry.s cc -m64 $CFLAGS -o idt.o -c $KERNEL_DIR/idt.c $INCS cc -m64 $CFLAGS -o kmain.o -c $KERNEL_DIR/kmain.c $INCS cc -m64 $CFLAGS -o kprint.o -c $KERNEL_DIR/kprint.c $INCS cc -m64 $CFLAGS -o kmmap.o -c $KERNEL_DIR/kmmap.c $INCS -cc -m64 $CFLAGS -o kgdt.o -c $KERNEL_DIR/kgdt.c $INCS cc -m64 $CFLAGS -o kpic.o -c $KERNEL_DIR/kpic.c $INCS cc -m64 $CFLAGS -o kthreads.o -c $KERNEL_DIR/kthreads.c $INCS cc -m64 $CFLAGS -o syscalls.o -c $KERNEL_DIR/syscalls.c $INCS @@ -48,8 +46,7 @@ ld \ --defsym=entry=$KERNEL_ENTRY \ -T $KERNEL_DIR/linker.ld $LFLAGS \ -o kernel.bin kmain.o io.o kprint.o kmmap.o mem.o \ - switch.o idt.o lidt.o lgdt.o kgdt.o kpic.o \ - syscalls.o sysentry.o kthreads.o + switch.o idt.o lidt.o kpic.o syscalls.o sysentry.o kthreads.o KSIZE=$(wc -c < kernel.bin) KSECTORS=$(( (KSIZE + SECTOR_SIZE - 1) / SECTOR_SIZE + 2)) # Extra sector blob - 63b7b85f1c653588678667cb19e57a6d98b0c33c (mode 644) blob + /dev/null --- kernel/kgdt.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "kdebug.h" -#include "types.h" - -#define KERNEL_STACK_TOP 0x90000 // Defined in boot2.s - -struct gdt_desc { - u16 llimit; - u16 lbase; - u8 mbase; - u8 access; - u8 flags; - u8 hbase; -} __packed; - -struct gdt { - struct gdt_desc null; - struct gdt_desc kernel_code; - struct gdt_desc kernel_data; -} __packed; - -struct gdtr { - u16 limit; - u64 base; -} __packed; - -void load_gdt(struct gdtr*); - -static struct gdt gdt; -static struct gdtr gdtr = { - .limit = sizeof(gdt) - 1, - .base = (u64)&gdt -}; - -s8 -kgdt_init() -{ - gdt.kernel_code.llimit = 0xffff; - gdt.kernel_code.lbase = 0; - gdt.kernel_code.mbase = 0; - gdt.kernel_code.access = 0x9A; - gdt.kernel_code.flags = 0xAF; - gdt.kernel_code.hbase = 0; - - gdt.kernel_data.llimit = 0xffff; - gdt.kernel_data.lbase = 0; - gdt.kernel_data.mbase = 0; - gdt.kernel_data.access = 0x92; - gdt.kernel_data.flags = 0xCF; - gdt.kernel_data.hbase = 0; - - load_gdt(&gdtr); // See lgdt.s - - return 0; -} blob - bb2f9923c7086b799d508df2928705ea6e57536a blob + ef65b6fa97ac4add5f701b7d0dc94236667a542b --- kernel/kmain.c +++ kernel/kmain.c @@ -16,13 +16,6 @@ kmain(struct kinfo *kinfo, u8 drive) struct mmap *ammap; kprint("Only 10 remote holes in a heck of a long time!\n"); - if (kgdt_init() == -1) { - kprint("Failed to initialize kernel GDT!\n"); - return; - } - - kprint("GDT configured!\n"); - if (idt_init() == -1) { kprint("Failed to initialize IDT\n"); return; blob - 9a60bed7857dc8a5730d6c49352efc797ae6b597 blob + 1334a6fdb5ae068fda2367bb6c91c9a8cc0bfc92 --- kernel/kmmap.h +++ kernel/kmmap.h @@ -16,5 +16,3 @@ struct kinfo { struct mmap* kmmap_init(struct kinfo *); u64 *allocate_memory(u64 bytes); - -s8 kgdt_init(void); blob - 4eabc87c4c005efb8cc4af679eae19108c35cdd9 (mode 644) blob + /dev/null --- kernel/lgdt.s +++ /dev/null @@ -1,5 +0,0 @@ -global load_gdt - -load_gdt: - lgdt [rdi] - ret