StuBS
Filesystem Class Referenceabstract
Inheritance diagram for Filesystem:
[legend]
Collaboration diagram for Filesystem:
[legend]

Public Member Functions

virtual int mount (const void *data)=0
 
virtual int open (File *file)=0
 
virtual int close (File *file)=0
 
virtual uint64_t get_block (Inode *inode, uint64_t logical_block, bool create, int *error)=0
 
virtual ssize_t read (Inode *inode, void *buf, size_t count, off_t pos)
 
virtual ssize_t write (Inode *inode, const void *buf, size_t count, off_t pos)
 
virtual int punch_hole (Inode *inode, off_t from, off_t to)
 
virtual const char * get_link (Inode *inode, void(**cleanup_callback)(const char *buf), int *error)
 
virtual void truncate (Inode *inode, off_t length)=0
 
virtual int iterate_dir (Inode *directory, Dir_Context *ctx)=0
 
virtual Inodecreate (Inode *directory, const char *filename, size_t name_len, umode_t mode, int *error)=0
 
virtual int link (Inode *directory, const char *filename, size_t name_len, Inode *inode)=0
 
virtual int symlink (Inode *directory, const char *filename, size_t name_len, const char *symname)=0
 
virtual int unlink (Inode *directory, const char *filename, size_t name_len, Inode *inode)=0
 
virtual Inodelookup (Inode *directory, const char *filename, size_t name_len, int *error)=0
 
virtual int mkdir (Inode *parent_dir, const char *filename, size_t name_len, umode_t mode)=0
 
virtual int rmdir (Inode *parent_dir, const char *filename, size_t name_len, Inode *dir)=0
 
virtual int rename (Inode *old_dir, Inode *old_inode, const char *old_name, size_t old_name_len, Inode *new_dir, Inode *new_inode, const char *new_name, size_t new_name_len)=0
 
virtual Inodeallocate_inode ()=0
 
virtual int write_inode (Inode *inode)=0
 
virtual int sync ()=0
 
virtual void umount ()=0
 

Public Attributes

BlockDevicebdev
 
Inoderoot_inode
 
unsigned long num_inode_references
 

The documentation for this class was generated from the following files: