diff options
Diffstat (limited to 'kernel/kernel/filesystem/inode.hpp')
| -rw-r--r-- | kernel/kernel/filesystem/inode.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/kernel/filesystem/inode.hpp b/kernel/kernel/filesystem/inode.hpp index 677c5155..e7de9276 100644 --- a/kernel/kernel/filesystem/inode.hpp +++ b/kernel/kernel/filesystem/inode.hpp @@ -1,6 +1,9 @@ #ifndef TEACHOS_KERNEL_FILESYSTEM_INODE_HPP #define TEACHOS_KERNEL_FILESYSTEM_INODE_HPP +#include <kernel/filesystem/directory_listing_cursor.hpp> +#include <kernel/filesystem/directory_listing_entry.hpp> + #include <kapi/filesystem.hpp> #include <kstd/memory.hpp> @@ -10,6 +13,7 @@ #include <cstddef> #include <optional> #include <span> +#include <utility> namespace kernel::filesystem { @@ -104,6 +108,15 @@ namespace kernel::filesystem //! @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>; + //! List the contents of a directory. + //! + //! @param position The current directory listing position. + //! @param entries An output span to store directory entries. + //! @return A pair of the number or read entries and the next listing position on success, an error otherwise. + [[nodiscard]] virtual auto read_directory(directory_listing_cursor position, + std::span<directory_listing_entry> entries) const + -> kstd::result<std::pair<std::size_t, directory_listing_cursor>>; + //! @} //! @name Mount Resolution |
