refactor: improve on scrolling experience in lunaix console
[lunaix-os.git] / lunaix-os / kernel / k_init.c
index ffc287ff37bb840d7bb2f8ecc8ff7368a7ab9211..b7c5668bd68ce2cb26bd9485381f0efe85e6effd 100644 (file)
@@ -1,19 +1,17 @@
 #include <lunaix/common.h>
 #include <lunaix/tty/tty.h>
 
-#include <lunaix/clock.h>
+#include <lunaix/device.h>
+#include <lunaix/foptions.h>
+#include <lunaix/input.h>
 #include <lunaix/lxconsole.h>
-#include <lunaix/mm/kalloc.h>
 #include <lunaix/mm/page.h>
 #include <lunaix/mm/pmm.h>
 #include <lunaix/mm/vmm.h>
 #include <lunaix/process.h>
 #include <lunaix/sched.h>
 #include <lunaix/spike.h>
-#include <lunaix/syslog.h>
-#include <lunaix/timer.h>
-
-#include <hal/rtc.h>
+#include <lunaix/types.h>
 
 #include <arch/x86/boot/multiboot.h>
 #include <arch/x86/idt.h>
@@ -22,9 +20,6 @@
 #include <klibc/stdio.h>
 #include <klibc/string.h>
 
-#include <stddef.h>
-#include <stdint.h>
-
 extern uint8_t __kernel_start;
 extern uint8_t __kernel_end;
 extern uint8_t __init_hhk_end;
@@ -38,8 +33,6 @@ x86_page_table* __kernel_ptd;
 
 struct proc_info tmp;
 
-LOG_MODULE("BOOT");
-
 extern void
 __proc0(); /* proc0.c */
 
@@ -57,7 +50,6 @@ _kernel_pre_init()
 
     pmm_init(MEM_1MB + (_k_init_mb_info->mem_upper << 10));
     vmm_init();
-    rtc_init();
 
     unsigned int map_size =
       _k_init_mb_info->mmap_length / sizeof(multiboot_memory_map_t);
@@ -77,14 +69,22 @@ _kernel_pre_init()
 void
 _kernel_init()
 {
-    lxconsole_init();
-
+    int errno = 0;
     cake_init();
     valloc_init();
 
-    kprintf(KINFO "[MM] Allocated %d pages for stack start at %p\n",
-            KSTACK_SIZE >> PG_SIZE_BITS,
-            KSTACK_START);
+    vfs_init();
+    fsm_init();
+    input_init();
+
+    if ((errno = vfs_mount_root("ramfs", NULL))) {
+        panickf("Fail to mount root. (errno=%d)", errno);
+    }
+
+    vfs_mount("/dev", "devfs", NULL, 0);
+    vfs_mount("/sys", "twifs", NULL, MNT_RO);
+
+    lxconsole_init();
 
     sched_init();