aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-04-09 08:32:51 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-04-11 08:05:52 +0200
commit3c9ad45492d7417c65594fa7fa2fb9a8d5439276 (patch)
treec198818f2ba3f66d1dc7d8ce6ca783d43e4e70ca /kernel/src/filesystem/vfs.cpp
parent9ce8ed3dd3aa5f6e21b53d02bac4f62eb8b3f337 (diff)
downloadteachos-3c9ad45492d7417c65594fa7fa2fb9a8d5439276.tar.xz
teachos-3c9ad45492d7417c65594fa7fa2fb9a8d5439276.zip
add deinit functions for singletons in tests
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index 45ae053..67d1af2 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -17,13 +17,13 @@
#include <ranges>
#include <string_view>
-namespace kernel::filesystem
+namespace
{
- namespace
- {
- constinit auto static active_vfs = std::optional<vfs>{};
- } // namespace
+ constinit auto static active_vfs = std::optional<kernel::filesystem::vfs>{};
+} // namespace
+namespace kernel::filesystem
+{
auto vfs::init() -> void
{
if (active_vfs)
@@ -47,7 +47,10 @@ namespace kernel::filesystem
if (auto boot_device = storage_mgmt.determine_boot_device())
{
auto boot_root_fs = kernel::filesystem::filesystem::probe_and_mount(boot_device);
- do_mount_internal("/", root_fs_root_dentry, boot_root_fs);
+ if (boot_root_fs)
+ {
+ do_mount_internal("/", root_fs_root_dentry, boot_root_fs);
+ }
}
auto device_fs = kstd::make_shared<devfs::filesystem>();
@@ -172,5 +175,12 @@ namespace kernel::filesystem
return current_dentry;
}
+} // namespace kernel::filesystem
-} // namespace kernel::filesystem \ No newline at end of file
+namespace kernel::tests::filesystem::vfs
+{
+ auto deinit() -> void
+ {
+ active_vfs.reset();
+ }
+} // namespace kernel::tests::filesystem::vfs