Skip to main content

FileSystem

Trait FileSystem 

Source
pub trait FileSystem: Send + Sync {
    // Required methods
    fn mount(&mut self, device: Arc<dyn BlockDevice>) -> FsResult<()>;
    fn unmount(&mut self) -> FsResult<()>;
    fn lookup(&self, path: &str) -> FsResult<u64>;
    fn read(&self, ino: u64, offset: u64, buf: &mut [u8]) -> FsResult<usize>;
    fn write(&mut self, ino: u64, offset: u64, buf: &[u8]) -> FsResult<usize>;
    fn create(
        &mut self,
        parent: u64,
        name: &str,
        file_type: FileType,
    ) -> FsResult<u64>;
    fn remove(&mut self, parent: u64, name: &str) -> FsResult<()>;
    fn stat(&self, ino: u64) -> FsResult<FileStat>;
    fn readdir(&self, ino: u64) -> FsResult<Vec<(String, u64)>>;
}

Required Methods§

Source

fn mount(&mut self, device: Arc<dyn BlockDevice>) -> FsResult<()>

Implements mount.

Source

fn unmount(&mut self) -> FsResult<()>

Implements unmount.

Source

fn lookup(&self, path: &str) -> FsResult<u64>

Implements lookup.

Source

fn read(&self, ino: u64, offset: u64, buf: &mut [u8]) -> FsResult<usize>

Implements read.

Source

fn write(&mut self, ino: u64, offset: u64, buf: &[u8]) -> FsResult<usize>

Implements write.

Source

fn create( &mut self, parent: u64, name: &str, file_type: FileType, ) -> FsResult<u64>

Implements create.

Source

fn remove(&mut self, parent: u64, name: &str) -> FsResult<()>

Implements remove.

Source

fn stat(&self, ino: u64) -> FsResult<FileStat>

Implements stat.

Source

fn readdir(&self, ino: u64) -> FsResult<Vec<(String, u64)>>

Implements readdir.

Implementors§