summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-03 22:19:32 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-03 22:19:32 -0400
commit876970bcfd69ed3742d1a47640aa551578f22919 (patch)
tree2dddbc00f9ffccf687f1e5f1055e19b3939a73a3 /kernel/kernel.c
parentadd 64-bit idt/pic and fix paging (diff)
downloadcomus-876970bcfd69ed3742d1a47640aa551578f22919.tar.gz
comus-876970bcfd69ed3742d1a47640aa551578f22919.tar.bz2
comus-876970bcfd69ed3742d1a47640aa551578f22919.zip
load multiboot memory map, heap is done!!!
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);
}