summaryrefslogtreecommitdiff
path: root/src/kernel/core/kmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/core/kmain.c')
-rw-r--r--src/kernel/core/kmain.c14
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.");