From d061f31f33feccb4203979c6e8d9bbaeabecb453 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Wed, 13 May 2026 10:13:13 +0200 Subject: refactor ext2 map_inode_block_index_to_global_block_number --- kernel/include/kernel/filesystem/ext2/filesystem.hpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'kernel/include') diff --git a/kernel/include/kernel/filesystem/ext2/filesystem.hpp b/kernel/include/kernel/filesystem/ext2/filesystem.hpp index 18ef372..32d9baf 100644 --- a/kernel/include/kernel/filesystem/ext2/filesystem.hpp +++ b/kernel/include/kernel/filesystem/ext2/filesystem.hpp @@ -13,6 +13,7 @@ #include #include #include +#include namespace kernel::filesystem::ext2 { @@ -82,14 +83,25 @@ namespace kernel::filesystem::ext2 @return The global block number. */ [[nodiscard]] auto map_inode_block_index_to_global_block_number(uint32_t inode_block_index, inode_data data) const - -> uint32_t; + -> ssize_t; private: [[nodiscard]] auto read_inode(uint32_t inode_number) const -> kstd::shared_ptr; [[nodiscard]] auto read_block_number_at_index(uint32_t block_number, uint32_t index) const -> uint32_t; + [[nodiscard]] auto read_singly_indirect_block_number(uint32_t singly_indirect_block_number, + uint32_t block_index_in_singly_indirect_block) const + -> uint32_t; + [[nodiscard]] auto read_doubly_indirect_block_number(uint32_t doubly_indirect_block_number, + uint32_t block_index_in_doubly_indirect_block) const + -> uint32_t; + [[nodiscard]] auto read_triply_indirect_block_number(uint32_t triply_indirect_block_number, + uint32_t block_index_in_triply_indirect_block) const + -> uint32_t; + [[nodiscard]] auto get_inode_size() const -> size_t; [[nodiscard]] auto get_inode_block_count(inode_data const & data) const -> uint32_t; + [[nodiscard]] auto block_numbers_per_block() const -> uint32_t; superblock m_superblock{}; kstd::vector m_block_group_descriptors; -- cgit v1.2.3