summaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c
new file mode 100644
index 0000000..5b06ae2
--- /dev/null
+++ b/kernel/main.c
@@ -0,0 +1,32 @@
+#include <comus/cpu.h>
+#include <comus/memory.h>
+#include <comus/mboot.h>
+#include <comus/drivers.h>
+#include <comus/fs.h>
+#include <lib.h>
+
+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();
+
+ // load memory map
+ mboot_load_mmap(mboot, &mmap);
+
+ // initalize memory
+ memory_init(&mmap);
+
+ // initalize devices
+ drivers_init();
+
+ // load file systems
+ fs_init();
+
+ // halt
+ kprintf("halting...\n");
+}