refactor: add a simple ramfs for rootfs. Twifs should have more specific job in future.
[lunaix-os.git] / lunaix-os / kernel / k_init.c
index b0aee844c2376206ea6312ce934fa876c17b6f0d..1682859fe766e7ba78ede2f04376578a6eaa7bac 100644 (file)
@@ -1,20 +1,15 @@
 #include <lunaix/common.h>
 #include <lunaix/tty/tty.h>
 
-#include <lunaix/clock.h>
 #include <lunaix/device.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>
@@ -23,9 +18,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;
@@ -39,8 +31,6 @@ x86_page_table* __kernel_ptd;
 
 struct proc_info tmp;
 
-LOG_MODULE("BOOT");
-
 extern void
 __proc0(); /* proc0.c */
 
@@ -58,7 +48,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);
@@ -78,18 +67,21 @@ _kernel_pre_init()
 void
 _kernel_init()
 {
-
+    int errno = 0;
     cake_init();
     valloc_init();
 
-    fsm_init();
     vfs_init();
-    twifs_init();
+    fsm_init();
 
     device_init();
 
-    // 挂载 TwiFS 为根目录
-    vfs_mount("/", "twifs", -1);
+    if ((errno = vfs_mount_root("ramfs", NULL))) {
+        panickf("Fail to mount root. (errno=%d)", errno);
+    }
+
+    // FIXME replace with more specific fs for device.
+    vfs_mount("/dev", "twifs", NULL);
 
     lxconsole_init();