aboutsummaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
authorMarvin Borner2020-08-09 16:51:01 +0200
committerMarvin Borner2020-08-09 16:51:01 +0200
commit162d024a53e1e31e00ff0b6f47dd4590edebc551 (patch)
tree711d3886c300dfaddffdafaa89b690b45eb2101d /kernel/main.c
parent79f2fa136f26a0b87917336e089485712ee49bd6 (diff)
Heavy restructuring of libc, kernel and apps
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c
new file mode 100644
index 0000000..17d6267
--- /dev/null
+++ b/kernel/main.c
@@ -0,0 +1,50 @@
+// MIT License, Copyright (c) 2020 Marvin Borner
+
+#include "config.h"
+#include <boot.h>
+#include <cpu.h>
+#include <def.h>
+#include <fs.h>
+#include <gui.h>
+#include <interrupts.h>
+#include <keyboard.h>
+#include <load.h>
+#include <print.h>
+#include <serial.h>
+#include <syscall.h>
+#include <timer.h>
+
+u32 HEAP = 0x00200000;
+u32 HEAP_START;
+
+void kernel_main(struct vid_info *vid_info)
+{
+ HEAP_START = HEAP; // For malloc function
+
+ // Initialize VESA video
+ vesa_init(vid_info->info);
+ u32 terminal_background[3] = { 0, 0, 0 };
+ vesa_fill(terminal_background);
+
+ // Serial connection
+ serial_install();
+ serial_print("\nConnected.\n");
+
+ // Install drivers
+ interrupts_install();
+ timer_install();
+ keyboard_install();
+
+ // Enable drivers
+ sti();
+
+ ls_root();
+ gui_init(FONT_PATH);
+
+ gui_term_write("Wake up, " USERNAME "...\n");
+
+ syscall_init();
+ proc_init();
+
+ idle();
+}