fix: corner cases when printing large content through term interface
[lunaix-os.git] / lunaix-os / kernel / proc0.c
index 4b430b5a15d801943b3244e9380b25768b6b82ee..a935a3b6f465cc5074728dace78deb59d709af58 100644 (file)
@@ -1,22 +1,13 @@
-#include <lunaix/block.h>
 #include <lunaix/boot_generic.h>
 #include <lunaix/exec.h>
 #include <lunaix/foptions.h>
 #include <lunaix/fs.h>
 #include <lunaix/fs/probe_boot.h>
 #include <lunaix/fs/twifs.h>
-#include <lunaix/lxconsole.h>
-#include <lunaix/mm/cake.h>
-#include <lunaix/mm/pmm.h>
-#include <lunaix/mm/valloc.h>
-#include <lunaix/mm/vmm.h>
-#include <lunaix/peripheral/serial.h>
 #include <lunaix/spike.h>
-#include <lunaix/syscall.h>
 #include <lunaix/syslog.h>
 #include <lunaix/types.h>
-
-#include <sdbg/protocol.h>
+#include <lunaix/owloysius.h>
 
 #include <klibc/string.h>
 
@@ -32,12 +23,12 @@ mount_bootmedium()
     int errno = 0;
     struct device* dev = probe_boot_medium();
     if (!dev) {
-        kprintf(KERROR "fail to acquire device. (%d)", errno);
+        ERROR("fail to acquire device. (%d)", errno);
         return 0;
     }
 
     if ((errno = vfs_mount("/mnt/lunaix-os", "iso9660", dev, 0))) {
-        kprintf(KERROR "fail to mount boot medium. (%d)", errno);
+        ERROR("fail to mount boot medium. (%d)", errno);
         return 0;
     }
 
@@ -56,7 +47,7 @@ exec_initd()
     fail("should not reach");
 
 fail:
-    kprintf(KERROR "fail to load initd. (%d)", errno);
+    ERROR("fail to load initd. (%d)", errno);
     return 0;
 }
 
@@ -82,9 +73,7 @@ __proc0()
     init_proc_user_space(__current);
 
     if (!mount_bootmedium() || !exec_initd()) {
-        while (1) {
-            asm("hlt");
-        }
+        FATAL("failed to initd");
         // should not reach
     }
 }
@@ -92,21 +81,11 @@ __proc0()
 void
 init_platform()
 {
-    kprintf(KINFO "\033[11;0mLunaixOS (gcc v%s, %s)\033[39;49m\n",
-            __VERSION__,
-            __TIME__);
-
-    device_poststage();
+    device_postboot_load();
+    invoke_init_function(on_postboot);
 
     twifs_register_plugins();
 
-    // FIXME This 8025 serial should integrated into device layer
-    serial_init();
-
-    // debugger
-    sdbg_init();
-
-    // console
-    console_start_flushing();
-    console_flush();
+    // FIXME Re-design needed!!
+    // sdbg_init();
 }
\ No newline at end of file