Skip to main content

BlockDriverOps

Trait BlockDriverOps 

Source
pub trait BlockDriverOps: BaseDriverOps {
    // Required methods
    fn num_blocks(&self) -> u64;
    fn block_size(&self) -> usize;
    fn read_block(&mut self, block_id: u64, buf: &mut [u8]) -> DevResult;
    fn write_block(&mut self, block_id: u64, buf: &[u8]) -> DevResult;
    fn flush(&mut self) -> DevResult;
}
Expand description

Operations that require a block storage device driver to implement.

Required Methods§

Source

fn num_blocks(&self) -> u64

The number of blocks in this storage device.

The total size of the device is num_blocks() * block_size().

Source

fn block_size(&self) -> usize

The size of each block in bytes.

Source

fn read_block(&mut self, block_id: u64, buf: &mut [u8]) -> DevResult

Reads blocked data from the given block.

The size of the buffer may exceed the block size, in which case multiple contiguous blocks will be read.

Source

fn write_block(&mut self, block_id: u64, buf: &[u8]) -> DevResult

Writes blocked data to the given block.

The size of the buffer may exceed the block size, in which case multiple contiguous blocks will be written.

Source

fn flush(&mut self) -> DevResult

Flushes the device to write all pending data to the storage.

Implementors§

Source§

impl BlockDriverOps for RamDisk

Available on crate feature ramdisk only.
Source§

impl BlockDriverOps for SDHCIDriver

Available on crate feature bcm2835-sdhci only.