summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 862425a..d817741 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -1,12 +1,29 @@
#include <comus/cpu.h>
#include <comus/memory.h>
+#include <comus/mboot.h>
#include <lib.h>
#include <stdio.h>
+#include <stdlib.h>
-void main(void)
+struct memory_map mmap;
+
+void main(long magic, volatile void *mboot)
{
+ (void) magic; // TODO: check multiboot magic
+
+ // initalize idt and pic
+ // WARNING: must be done before anything else
cpu_init();
- memory_init(NULL);
+
+ // load memory map
+ mboot_load_mmap(mboot, &mmap);
+
+ // initalize memory
+ memory_init(&mmap);
+
+ char *a = malloc(3);
+ *a = 3;
+
+ // halt
printf("halting...\n");
- while(1);
}