summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c41
1 files changed, 26 insertions, 15 deletions
diff --git a/main.c b/main.c
index 91125af..a586287 100644
--- a/main.c
+++ b/main.c
@@ -1,26 +1,37 @@
-#include "arch/arch.h"
-#include "io/log.h"
-#include "mem/memory.h"
-#include "mem/zone.h"
-#include "boot/cmdline.h"
-#include "ird/initrd.h"
-#include "usr/tasking.h"
-#include "usr/umode.h"
-#include "lib/jove.h"
+#include "device/serial.h"
+#include "arch/processor.h"
+#include "arch/cpu.h"
+#include "memory.h"
+#include "commandline.h"
+#include "tasking.h"
+#include "initrd.h"
+#include "print.h"
+/**Setup datastructures and other fields required for the execution manager
+ * and interfaces used by init.*/
void
kernel_main(void)
{
serial_setup();
- arch_tables_setup();
- mem_setup();
+ cpu_setup();
+ processor_setup(proc_bsp);
- cmdline_kernel_setup();
- initrd_setup();
+ mm_setup_early();
+ mm_setup();
tasking_setup();
- umode_setup();
+ kpanic("Reached end of kernel_main\n");
+}
+
+/**Kernel execution context that sets up init.*/
+void
+kernel_stage2(void)
+{
+ cmdline_kernel_setup();
+
+ initrd_setup();
- kpanic("Reached end of kernel main\n");
+ extern void kinit(void);
+ kinit();
}