#ifndef FUSE_H #define FUSE_H #define DEFAULTINODEMAX 128 #define DEFAULTBLOCKSIZE 512 // Size in bytes typedef struct fuseArgStruct { int create; int list; int add; int remove; int extract; char* toAdd; char* toRemove; char* toExtract; char* fsname; int fd; int newfs; int filefsname; } fuseArgStruct; typedef struct BlockStruct { char byte[DEFAULTBLOCKSIZE]; } BlockStruct; typedef struct InodeStruct { BlockStruct* dataBlock; } InodeStruct; typedef struct SuperBlockStruct { int blockCount; int blockSize; } SuperBlockStruct; typedef struct FBLStruct { int freeList[DEFAULTINODEMAX/32]; } FBLStruct; typedef struct FileSystemStruct { SuperBlockStruct superBlock; FBLStruct freeList; InodeStruct inodes[DEFAULTINODEMAX]; } FileSystemStruct; void Fuse(int argc, char* argv[]); void FuseGetArgs(int argc, char* argv[], fuseArgStruct* fuseArgs); void FuseGivenTest(fuseArgStruct* fuseArgs, char* programPath); void FuseStructInit(fuseArgStruct* fuseStruct); void FuseUsageError(char* programPath); int zerosize(int fd); int FindEmptyBitPosition(int number); #endif