Trait sel4_async_block_io_fat::BlockDevice
source · pub trait BlockDevice {
type Error: Debug;
// Required methods
async fn read(
&self,
blocks: &mut [Block],
start_block_idx: BlockIdx,
reason: &str,
) -> Result<(), Self::Error>;
async fn write(
&self,
blocks: &[Block],
start_block_idx: BlockIdx,
) -> Result<(), Self::Error>;
async fn num_blocks(&self) -> Result<BlockCount, Self::Error>;
}
Expand description
Represents a block device - a device which can read and write blocks (or sectors). Only supports devices which are <= 2 TiB in size.
Required Associated Types§
Required Methods§
sourceasync fn read(
&self,
blocks: &mut [Block],
start_block_idx: BlockIdx,
reason: &str,
) -> Result<(), Self::Error>
async fn read( &self, blocks: &mut [Block], start_block_idx: BlockIdx, reason: &str, ) -> Result<(), Self::Error>
Read one or more blocks, starting at the given block index.
sourceasync fn write(
&self,
blocks: &[Block],
start_block_idx: BlockIdx,
) -> Result<(), Self::Error>
async fn write( &self, blocks: &[Block], start_block_idx: BlockIdx, ) -> Result<(), Self::Error>
Write one or more blocks, starting at the given block index.
sourceasync fn num_blocks(&self) -> Result<BlockCount, Self::Error>
async fn num_blocks(&self) -> Result<BlockCount, Self::Error>
Determine how many blocks this device can hold.
Object Safety§
This trait is not object safe.