#ifndef SUPER_H_ #define SUPER_H_ #include "util.h" #include "inode.h" // fs attributes #define MAGIC 0x7F631EC4 #define VERSION 0.0.0.1 #define BLOCKSIZE 4096 uint32_t free_blocks; uint32_t inode_count; struct inode_table { // TODO: Change currently hardcoded value to actually accurately describe the size of the filesystem, only for temporary purposes. Inode* inodes[640000]; }; struct super_block { // fs info char version[8]; uint64_t magic; // fs attributes uint16_t blocksize; uint64_t block_count; uint64_t free_bloks; uint64_t inode_count; uint64_t free_inodes; // Timestamps tm fs_creation; tm last_write; // inode table struct inode_table* inode_table; }; // TODO: Do research on how the fuck to actually do this kind of Array operation Inode* find_inode(char filename[], struct super_block sblock) { struct inode_table* itable = sblock.inode_table; // while (itable[inode] != NULL; inode++) { // if (strcmp(filename, itable[inode]->filesize)) // } return NULL; } #endif // SUPER_H_