diff options
Diffstat (limited to 'src/kernel/core/kmain.c')
-rw-r--r-- | src/kernel/core/kmain.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/kernel/core/kmain.c b/src/kernel/core/kmain.c index 86db4ff..17c9425 100644 --- a/src/kernel/core/kmain.c +++ b/src/kernel/core/kmain.c @@ -19,8 +19,6 @@ This function never returns : once multitasking is started for good, the execution flow of this function is never returned to. */ void kmain(struct multiboot_info_t* mbd, int32_t magic) { - monitor_clear(); - ASSERT(magic == MULTIBOOT_BOOTLOADER_MAGIC); size_t totalRam = 0; @@ -37,6 +35,8 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) { mem_placementAddr = (mods[i].mod_end & 0xFFFFF000) + 0x1000; } + monitor_clear(); + monitor_write(K_OS_NAME); monitor_write(" version "); monitor_write(K_OS_VER); @@ -44,20 +44,22 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) { monitor_write(K_OS_CODENAME); monitor_write("' starting up :\n"); + idt_init(); totalRam = ((mbd->mem_upper + mbd->mem_lower) * 1024); paging_init(totalRam); + _no_more_ksbrk = 1; gdt_init(); paging_cleanup(); - kheap_init(); + //kheap_init(); timer_init(30); tasking_init(); - test_run(); + //test_run(); - monitor_write("\nLoading modules :\n"); + monitor_write("\n\nLoading modules :\n"); for (i = 0; i < mbd->mods_count; i++) { monitor_write(" * "); monitor_write((char*)mods[i].string); @@ -73,7 +75,7 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) { } } - monitor_write("Modules now RULE THE WORLD !\n"); + monitor_write("Modules now RULE THE WORLD !\n\n"); sti(); tasking_switch(); PANIC("Should never happen. Something probably went wrong with multitasking."); |