#ifndef FSABSTRACT_H #define FSABSTRACT_H #include <stdio.h> #include <dirent.h> #include <sys/types.h> #include <device.h> #include "file.h" class vfs_abstract { protected: vfs_abstract * prev; vfs_abstract * next; device_t * device; public: /* File I/O */ virtual int vfs_open(const char *, fileDescriptor *,int,...) { return -1; }; virtual int vfs_close(fileDescriptor *) { return -1; }; virtual size_t vfs_read(fileDescriptor *, void *, off_t, size_t) { return 0; }; virtual size_t vfs_write(fileDescriptor *, void *, off_t, size_t) { return 0; }; /* Dir I/O */ virtual int vfs_opendir(DIR *,const char *) { return -1; }; virtual int vfs_closedir(DIR *) { return -1; }; virtual int vfs_mkdir(const char *, mode_t) { return -1; }; virtual int vfs_rmdir(const char *) { return -1; }; virtual int vfs_readdir(DIR *,struct dirent *) { return -1; }; /* FS Functions */ virtual int vfs_init(void) { return -1; }; virtual int vfs_format(device_t *) { return -1; }; virtual void * vfs_mknod(const char *, mode_t) { return NULL; }; virtual int vfs_purge(void) { return -1; }; virtual int vfs_stop(void) { return -1; }; virtual int vfs_sync(void) { return -1; }; /* Misc Functions */ virtual int vfs_unlink(const char *) { return -1; }; virtual int vfs_rename(const char *,const char *) { return -1; }; virtual ~vfs_abstract(void) { }; }; // vfs_FS #endif // !FSABSTRACT_H