From d5cd2c12ced66b8ad4c1e25292978d9ae9e35592 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 27 Aug 2026 18:26:22 +0200 Subject: kernel/fs: devfs: implement basic stat --- kernel/kernel/filesystems/devfs/inode.cpp | 13 ++++++++++++- kernel/kernel/filesystems/devfs/inode.hpp | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/filesystems/devfs/inode.cpp b/kernel/kernel/filesystems/devfs/inode.cpp index e79a82e0..fb26e34e 100644 --- a/kernel/kernel/filesystems/devfs/inode.cpp +++ b/kernel/kernel/filesystems/devfs/inode.cpp @@ -2,6 +2,7 @@ #include #include +#include #include @@ -26,7 +27,8 @@ namespace kernel::filesystems::devfs namespace { constexpr auto static sentinel = kapi::filesystem::directory_cursor{std::numeric_limits::max()}; - } + constexpr auto static root_inode_number = std::numeric_limits::max() - 1; + } // namespace auto inode::read(std::span, kstd::bytes) const -> kstd::result { @@ -43,6 +45,15 @@ namespace kernel::filesystems::devfs return true; } + auto inode::status() const -> kstd::result + { + return vfs::inode::status().transform([](auto status) { + status.inode_number = root_inode_number; + status.mode = 0544; // NOLINT(readability-magic-numbers) + return status; + }); + } + auto inode::read_directory(kapi::filesystem::directory_cursor position, std::span entries) const -> kstd::result> diff --git a/kernel/kernel/filesystems/devfs/inode.hpp b/kernel/kernel/filesystems/devfs/inode.hpp index 61bec8cf..c19671df 100644 --- a/kernel/kernel/filesystems/devfs/inode.hpp +++ b/kernel/kernel/filesystems/devfs/inode.hpp @@ -26,6 +26,8 @@ namespace kernel::filesystems::devfs [[nodiscard]] auto is_directory() const -> bool override; + [[nodiscard]] auto status() const -> kstd::result override; + [[nodiscard]] auto read_directory(kapi::filesystem::directory_cursor position, std::span entries) const -> kstd::result> override; -- cgit v1.2.3