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.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/kernel/core/kmain.c b/src/kernel/core/kmain.c
index 6c9700e..8f14843 100644
--- a/src/kernel/core/kmain.c
+++ b/src/kernel/core/kmain.c
@@ -1,4 +1,6 @@
#include <types.h>
+#include <config.h>
+
#include "multiboot.h"
#include "monitor.h"
#include "sys.h"
@@ -24,7 +26,7 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) {
size_t totalRam = 0;
uint32_t i;
- mem_placementAddr = (size_t)&end;
+ mem_placementAddr = ((size_t)&end & 0xFFFFF000) + 0x1000;
mbd->cmdline += 0xE0000000; mbd->mods_addr += 0xE0000000;
struct module_t *mods = (struct module_t*)mbd->mods_addr;
for (i = 0; i < mbd->mods_count; i++) {
@@ -35,7 +37,12 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) {
mem_placementAddr = (mods[i].mod_end & 0xFFFFF000) + 0x1000;
}
- monitor_write("Grapes 0.0.4 'Cat in my heart' starting up :\n");
+ monitor_write(K_OS_NAME);
+ monitor_write(" version ");
+ monitor_write(K_OS_VER);
+ monitor_write(" codename '");
+ monitor_write(K_OS_CODENAME);
+ monitor_write("' starting up :\n");
idt_init();
@@ -47,6 +54,8 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) {
kheap_init();
timer_init(30);
tasking_init();
+
+ test_run();
monitor_write("\nLoading modules :\n");
for (i = 0; i < mbd->mods_count; i++) {
@@ -64,8 +73,6 @@ void kmain(struct multiboot_info_t* mbd, int32_t magic) {
}
}
- test_run();
-
monitor_write("Modules now RULE THE WORLD !\n");
sti();
tasking_switch();