23 #include "pedigree/kernel/processor/types.h" 24 #include "pedigree/kernel/utilities/Vector.h" 49 uint32_t getInodeNumber()
64 void extend(
size_t newSize);
65 void extend(
size_t newSize, uint64_t location, uint64_t size);
70 void trackBlock(uint32_t block);
72 void pinBlock(uint64_t location);
73 void unpinBlock(uint64_t location);
75 void sync(
size_t offset,
bool async);
83 bool ensureLargeEnough(
size_t size, uint64_t location, uint64_t opsize,
bool onlyBlocks =
false,
bool nozeroblocks =
false);
85 bool addBlock(uint32_t blockValue);
87 bool ensureBlockLoaded(
size_t nBlock);
88 bool getBlockNumber(
size_t nBlock);
90 getBlockNumberIndirect(uint32_t inode_block,
size_t nBlocks,
size_t nBlock);
91 bool getBlockNumberBiindirect(
92 uint32_t inode_block,
size_t nBlocks,
size_t nBlock);
93 bool getBlockNumberTriindirect(
94 uint32_t inode_block,
size_t nBlocks,
size_t nBlock);
96 bool setBlockNumber(
size_t blockNum, uint32_t blockValue);
98 uint32_t modeToPermissions(uint32_t mode)
const;
99 uint32_t permissionsToMode(uint32_t permissions)
const;
102 uint32_t m_InodeNumber;
106 uint32_t m_nMetadataBlocks;
Ext2Node(const Ext2Node &file)
void updateMetadata(uint16_t uid, uint16_t gid, uint32_t perms)
bool ensureLargeEnough(size_t size, uint64_t location, uint64_t opsize, bool onlyBlocks=false, bool nozeroblocks=false)
void fileAttributeChanged(size_t size, size_t atime, size_t mtime, size_t ctime)
uintptr_t readBlock(uint32_t block)
void writeBlock(uint32_t block)