X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/9fe5e02cf615ad121c4460fbaaac2787d1e09c0e..d07db7c15d6cf9d6c0fd07ea29cca77a89b02a79:/lunaix-os/kernel/k_init.c diff --git a/lunaix-os/kernel/k_init.c b/lunaix-os/kernel/k_init.c index 07091ca..5896ee4 100644 --- a/lunaix-os/kernel/k_init.c +++ b/lunaix-os/kernel/k_init.c @@ -4,8 +4,13 @@ #include #include #include +#include +#include #include +#include + +#include #include #include @@ -15,6 +20,12 @@ extern uint8_t __kernel_start; extern uint8_t __kernel_end; extern uint8_t __init_hhk_end; +void +setup_memory(multiboot_memory_map_t* map, size_t map_size); + +void +setup_kernel_runtime(); + void _kernel_pre_init(multiboot_info_t* mb_info) { _init_idt(); @@ -35,7 +46,7 @@ _kernel_init(multiboot_info_t* mb_info) { mb_info->mem_upper); unsigned int map_size = mb_info->mmap_length / sizeof(multiboot_memory_map_t); - setup_memory(mb_info->mmap_addr, map_size); + setup_memory((multiboot_memory_map_t*)mb_info->mmap_addr, map_size); setup_kernel_runtime(); } @@ -49,6 +60,8 @@ _kernel_post_init() { for (size_t i = 0; i < hhk_init_pg_count; i++) { vmm_unmap_page((void*)(i << PG_SIZE_BITS)); } + + assert(kalloc_init()); } // 按照 Memory map 标识可用的物理页