diff options
Diffstat (limited to 'kernel/kernel/filesystem/inode.hpp')
| -rw-r--r-- | kernel/kernel/filesystem/inode.hpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/kernel/filesystem/inode.hpp b/kernel/kernel/filesystem/inode.hpp index 005dc57b..25e5df31 100644 --- a/kernel/kernel/filesystem/inode.hpp +++ b/kernel/kernel/filesystem/inode.hpp @@ -1,9 +1,13 @@ #ifndef TEACH_OS_KERNEL_FILESYSTEM_INODE_HPP #define TEACH_OS_KERNEL_FILESYSTEM_INODE_HPP +#include <kapi/filesystem.hpp> + #include <kstd/result.hpp> #include <kstd/units.hpp> +#include <optional> + namespace kernel::filesystem { //! Represents an inode in the filesystem. @@ -62,6 +66,16 @@ namespace kernel::filesystem //! //! @return true iff. this inode is a symbolic link, false otherwise. [[nodiscard]] virtual auto is_symbolic_link() const -> bool; + + //! Get POSIX status information for this inode. + //! + //! @return a populated status information object, or an error or failure. + [[nodiscard]] virtual auto status() const -> kstd::result<kapi::filesystem::file_status>; + + //! Get the raw device, if any, this inode refers to. + //! + //! @return a device number if this inode refers to a device, an empty optional otherwise. + [[nodiscard]] virtual auto raw_device() const -> std::optional<kapi::filesystem::device_number>; }; } // namespace kernel::filesystem |
