#pragma once #include #include #include #include "fs/ext2/ext2_block_reader.h" class InodeTable { public: InodeTable(const glcr::SharedPtr& driver, mmth::OwnedMemoryRegion&& bgdt_region); glcr::ErrorOr GetInode(uint32_t inode_num); private: glcr::SharedPtr ext2_reader_; mmth::OwnedMemoryRegion bgdt_region_; BlockGroupDescriptor* bgdt_; glcr::Vector inode_tables_; glcr::ErrorOr GetRootOfInodeTable(uint64_t block_group_num); };