From 8322f42a0b23ed5bd9c40e64b204f0dad935ff63 Mon Sep 17 00:00:00 2001 From: EmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com> Date: Fri, 14 Jun 2024 21:36:33 -0400 Subject: Broken attempt at freelist pmm. --- kernel/arch/x86_64/limine.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'kernel/arch/x86_64') diff --git a/kernel/arch/x86_64/limine.cpp b/kernel/arch/x86_64/limine.cpp index b592592..5e9905f 100644 --- a/kernel/arch/x86_64/limine.cpp +++ b/kernel/arch/x86_64/limine.cpp @@ -62,12 +62,17 @@ extern void (*__init_array_end[])(); void kernel_main(); +// this will cause problems later +uint64_t _hhdm_offset; + extern "C" void _start() { asm("cli"); if (!LIMINE_BASE_REVISION_SUPPORTED) { hcf(); } + _hhdm_offset = hhdm_request.response->offset; + // setup gdt SegDesc segs[5]; GDTR gdtr{sizeof(struct SegDesc) * 5 - 1, (uint64_t)&segs}; @@ -129,10 +134,15 @@ extern "C" void _start() { memmap->entries[i]->base, memmap->entries[i]->length, memmap->entries[i]->type); } - // broken printf mirroring 64 bit values for some reason - //uint64_t tester = 0xFFFE0000000000AE + 1; - //printf("aaaa: %lx\n", tester); - pmm_init(memmap_request.response, hhdm_request.response->offset); + printf("hhdm offset: %lx\n", _hhdm_offset); + // pmm_init(memmap_request.response); + + // asm("xchgw %bx, %bx"); + // uint64_t pmm_test[5]; + // for (size_t i = 0; i < 5; i++) { + // pmm_test[i] = (uint64_t)palloc(); + // printf("Alloc %d: %lx\n", i, pmm_test[i]); + // } kernel_main(); -- cgit v1.2.3-70-g09d2