From 5b1460d6516940d285c554d6178ab52abf04312d Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Thu, 30 Dec 2021 11:13:24 +0000 Subject: pass the whole boot data struct to memory_init for my sanity --- kc/core/memory.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'kc/core/memory.c') diff --git a/kc/core/memory.c b/kc/core/memory.c index 920fc87..1e405bc 100644 --- a/kc/core/memory.c +++ b/kc/core/memory.c @@ -4,8 +4,6 @@ #include -#include -#include #include /* kernel virtual space guarantees @@ -92,7 +90,7 @@ static struct memory_range init_grab_pages(struct memory_range *ranges, { struct memory_range request = {SYSTEM_MEMORY, 0, - align_next(size, PAGE_SIZE)}; + align_next(size, page_size(1))}; for (int i = 0; i < count; i++) { @@ -349,15 +347,15 @@ static void *page_map_at(void *vaddr, #define KERNEL_OBJECT_SPACE_EXTENT 0x1000000 // 16MiB for kernel object space? -void memory_init(struct memory_range *ranges, size_t count) +void memory_init(struct kc_boot_data *boot_data) { - init_create_page_array(ranges, count); + init_create_page_array(boot_data->phys_memory_map.base, + boot_data->phys_memory_map.entries); core_code_space = init_system_space(&kc_text_begin, &kc_text_end); core_static_space = init_system_space(&kc_data_begin, &kc_data_end); - core_object_space = init_anonymous_space(&kc_data_end, - (void *)page_align(&kc_data_end + KERNEL_OBJECT_SPACE_EXTENT, - 2)); + core_object_space = init_anonymous_space(boot_data->object_space.base, + (void *)page_align(&kc_data_end + KERNEL_OBJECT_SPACE_EXTENT, 2)); root_memory_space = &core_code_space; @@ -367,6 +365,11 @@ void memory_init(struct memory_range *ranges, size_t count) core_static_space.next = &core_object_space; core_object_space.prev = &core_static_space; core_object_space.next = NULL; + + // XXX: testing testing 123 + + char *test = (char *)core_object_space.head - page_size(1); + *test = 'a'; } void *page_map(phys_addr_t paddr, enum page_map_flags flags) -- cgit v1.3.1-1-g115d