Newer
Older
ubixos / src / sys / ubixfsv2 / fsAbstract.h
@reddawg reddawg on 3 Sep 2004 960 bytes Updated
#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