diff options
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
| -rw-r--r-- | kernel/src/filesystem/vfs.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp index 2c4a4d5..ece3080 100644 --- a/kernel/src/filesystem/vfs.cpp +++ b/kernel/src/filesystem/vfs.cpp @@ -32,21 +32,28 @@ namespace filesystem } active_vfs.emplace(vfs{}); + active_vfs->init_internal(); + } + auto vfs::init_internal() -> void + { auto storage_mgmt = devices::storage::storage_management::get(); // TODO BA-FS26 fix mounting boot_device if (auto boot_device = storage_mgmt.determine_boot_device()) { - active_vfs->m_root_fs = kstd::make_shared<ext2::ext2_filesystem>(); - active_vfs->m_root_dentry = kstd::make_shared<dentry>(nullptr, active_vfs->m_root_fs->root_inode()); - // if (active_vfs->do_mount("/", active_vfs->m_root_fs) != 0) + m_root_fs = kstd::make_shared<ext2::ext2_filesystem>(); + + m_root_fs->mount(boot_device); + + m_root_dentry = kstd::make_shared<dentry>(nullptr, m_root_fs->root_inode()); + // if (do_mount("/", m_root_fs) != 0) // { // kapi::system::panic("[FILESYSTEM] Failed to mount root filesystem."); // } // TODO BA-FS26 use do_mount when tempdevfs is implemented -> just call /dev/ with all devices in devtempfs std::ranges::for_each(storage_mgmt.all_controllers(), [&](auto controller) { - std::ranges::for_each(controller->all_devices(), [&](auto device) { active_vfs->make_device_node(device); }); + std::ranges::for_each(controller->all_devices(), [&](auto device) { make_device_node(device); }); }); } else |
