feat: input device subsystem to resolve race condition on polling input
[lunaix-os.git] / lunaix-os / kernel / k_init.c
index ae98ac1ad183888571e0bf4570547a939f322f4f..b7c5668bd68ce2cb26bd9485381f0efe85e6effd 100644 (file)
@@ -2,6 +2,8 @@
 #include <lunaix/tty/tty.h>
 
 #include <lunaix/device.h>
+#include <lunaix/foptions.h>
+#include <lunaix/input.h>
 #include <lunaix/lxconsole.h>
 #include <lunaix/mm/page.h>
 #include <lunaix/mm/pmm.h>
@@ -67,18 +69,20 @@ _kernel_pre_init()
 void
 _kernel_init()
 {
-
+    int errno = 0;
     cake_init();
     valloc_init();
 
-    fsm_init();
     vfs_init();
-    twifs_init();
+    fsm_init();
+    input_init();
 
-    device_init();
+    if ((errno = vfs_mount_root("ramfs", NULL))) {
+        panickf("Fail to mount root. (errno=%d)", errno);
+    }
 
-    // 挂载 TwiFS 为根目录
-    vfs_mount("/", "twifs", NULL);
+    vfs_mount("/dev", "devfs", NULL, 0);
+    vfs_mount("/sys", "twifs", NULL, MNT_RO);
 
     lxconsole_init();