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