X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2236410f4582ab45ae8c384dd6eeeef5d10aab15..7b8a1bcad75628f9add4590db2bb9b8e418ee8eb:/lunaix-os/kernel/kinit.c diff --git a/lunaix-os/kernel/kinit.c b/lunaix-os/kernel/kinit.c index 501c8f4..5884e5b 100644 --- a/lunaix-os/kernel/kinit.c +++ b/lunaix-os/kernel/kinit.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -16,7 +17,7 @@ #include #include #include -#include +#include #include #include @@ -49,6 +50,8 @@ kernel_bootstrap(struct boot_handoff* bhctx) /* Setup kernel memory layout and services */ kmem_init(bhctx); + boot_parse_cmdline(bhctx); + /* Prepare stack trace environment */ trace_modksyms_init(bhctx); @@ -79,14 +82,16 @@ kernel_bootstrap(struct boot_handoff* bhctx) block_init(); sched_init(); - device_onbooot_load(); + device_onboot_load(); /* the bare metal are now happy, let's get software over with */ - int errno = 0; - if ((errno = vfs_mount_root("ramfs", NULL))) { - panickf("Fail to mount root. (errno=%d)", errno); - } + must_success(vfs_mount_root("ramfs", NULL)); + must_success(vfs_mount("/dev", "devfs", NULL, 0)); + + invoke_init_function(call_on_boot); + + must_success(vfs_unmount("/dev")); /* Finish up bootstrapping sequence, we are ready to spawn the root process * and start geting into uspace