#ifndef FSABSTRACT_H #define FSABSTRACT_H class vfs_fsAbstract { protected: FSAbstract * prev; FSAbstract * next; void * dev; public: /* File I/O */ virtual int vfs_open(FILE *,int flags,...) = 0; virtual int vfs_close(FILE *) = 0; virtual int vfs_read(FILE *,void *,size_t,size_t) = 0; virtual int vfs_write(FILE *,void *,size_t,size_t) = 0; /* Dir I/O */ virtual int vfs_opendir(DIR *,const char *) = 0x0; virtual int vfs_closedir(DIR *) = 0x0; virtual int vfs_mkdir(const char *,mode_t) = 0; virtual int vfs_readdir(DIR *,struct dirent *) = 0; /* FS Functions */ virtual int vfs_init(void) = 0; virtual int vfs_format(dev_t *) = 0; virtual int vfs_stop(void) = 0; virtual int vfs_sync(void) = 0; /* Misc Functions */ virtual int vfs_unlink(const char *) = 0; virtual int vfs_rename(const char *,const char *) = 0; virtual ~FSAbstract(void) { }; }; // FSAbstract #endif // !FSABSTRACT_H