#include "config.h" enum fs_filetype { REGULAR, DIRECTORY }; __attribute__((packed)) struct fs_header { unsigned char version; unsigned int max_inode_count:24; unsigned int block_count; unsigned int next_extension; unsigned int inode_ptrs[(FS_BLOCK_SIZE-sizeof(int)*3) / sizeof(int)]; }; struct fs_header_extension { unsigned int next_extension; unsigned int inode_ptrs[(FS_BLOCK_SIZE-sizeof(int)) / sizeof(int)]; }; __attribute__((packed)) struct fs_inode { unsigned int ftype:8; unsigned int ref_count:24; unsigned int size; unsigned int next_extension; unsigned int blocks[(FS_BLOCK_SIZE-sizeof(int)*3) / sizeof(int)]; }; struct fs_inode_extension { unsigned int next_extension; unsigned int blocks[(FS_BLOCK_SIZE-sizeof(int)) / sizeof(int)]; }; int fs_create(void *d); int fs_use(void *d); int fs_mkfs(void *d); int fs_allow_write(void *d); int fs_prohibit_write(void *d);