From 0b8ee325aab8e5d6e0937668768f52ebbfb47630 Mon Sep 17 00:00:00 2001 From: nub31 Date: Wed, 3 Sep 2025 17:20:00 +0200 Subject: [PATCH] ... --- makefile | 6 +++--- src/arch/x86_64/entry.c | 2 +- src/{ => kernel}/kernel.c | 3 +++ src/{ => kernel}/kernel.h | 0 src/{ => kernel}/pmm.c | 4 +++- src/{ => kernel}/pmm.h | 0 6 files changed, 10 insertions(+), 5 deletions(-) rename src/{ => kernel}/kernel.c (64%) rename src/{ => kernel}/kernel.h (100%) rename src/{ => kernel}/pmm.c (94%) rename src/{ => kernel}/pmm.h (100%) diff --git a/makefile b/makefile index 0a8b3ca..ba15961 100644 --- a/makefile +++ b/makefile @@ -17,13 +17,13 @@ iso: .build/nub-os.iso clean: @rm -r .build 2>/dev/null || true -.build/nub-os.iso: .build/kernel grub.cfg +.build/nub-os.iso: .build/kernel/kernel grub.cfg mkdir -p .build/nub-os/boot/grub cp grub.cfg .build/nub-os/boot/grub - cp .build/kernel .build/nub-os/boot/ + cp .build/kernel/kernel .build/nub-os/boot/ grub-mkrescue -o .build/nub-os.iso .build/nub-os/ -.build/kernel: $(OBJS) +.build/kernel/kernel: $(OBJS) $(LD) $(LDFLAGS) -T linker.ld -o $@ $^ .build/%.o: src/%.c diff --git a/src/arch/x86_64/entry.c b/src/arch/x86_64/entry.c index ba84bec..8e14aab 100644 --- a/src/arch/x86_64/entry.c +++ b/src/arch/x86_64/entry.c @@ -1,4 +1,4 @@ -#include "../../kernel.h" +#include "../../kernel/kernel.h" #include "../arch.h" #include "interrupts/idt.h" #include "interrupts/irq.h" diff --git a/src/kernel.c b/src/kernel/kernel.c similarity index 64% rename from src/kernel.c rename to src/kernel/kernel.c index cc21fb3..3400007 100644 --- a/src/kernel.c +++ b/src/kernel/kernel.c @@ -5,5 +5,8 @@ void main() { pmm_init(); + + uint64_t page = pmm_alloc_page(); + printf("page: %u\n", page); printf("Welcome to nub OS :)\n"); } diff --git a/src/kernel.h b/src/kernel/kernel.h similarity index 100% rename from src/kernel.h rename to src/kernel/kernel.h diff --git a/src/pmm.c b/src/kernel/pmm.c similarity index 94% rename from src/pmm.c rename to src/kernel/pmm.c index 535e5a0..f66b8b2 100644 --- a/src/pmm.c +++ b/src/kernel/pmm.c @@ -1,5 +1,5 @@ #include "pmm.h" -#include "arch/arch.h" +#include "../arch/arch.h" #include #include #include @@ -52,6 +52,7 @@ void pmm_init() } } +// Returns the address of first free physical page uint64_t pmm_alloc_page() { for (size_t i = 0; i < BITMAP_SIZE; i++) @@ -73,6 +74,7 @@ uint64_t pmm_alloc_page() return 0; } +// Frees the physical page at the specified address void pmm_free_page(uint64_t addr) { uint64_t page = addr / PAGE_SIZE; diff --git a/src/pmm.h b/src/kernel/pmm.h similarity index 100% rename from src/pmm.h rename to src/kernel/pmm.h