pub trait DmDevice<T: TargetTable> {
    // Required methods
    fn device(&self) -> Device;
    fn devnode(&self) -> PathBuf;
    fn equivalent_tables(left: &T, right: &T) -> DmResult<bool>;
    fn name(&self) -> &DmName;
    fn size(&self) -> Sectors;
    fn table(&self) -> &T;
    fn teardown(&mut self, dm: &DM) -> DmResult<()>;
    fn uuid(&self) -> Option<&DmUuid>;

    // Provided methods
    fn read_kernel_table(dm: &DM, id: &DevId<'_>) -> DmResult<T> { ... }
    fn resume(&mut self, dm: &DM) -> DmResult<()> { ... }
    fn suspend(&mut self, dm: &DM, options: DmOptions) -> DmResult<()> { ... }
    fn table_load(&self, dm: &DM, table: &T, options: DmOptions) -> DmResult<()> { ... }
}
Expand description

A trait capturing some shared properties of DM devices.

Required Methods§

source

fn device(&self) -> Device

The device.

source

fn devnode(&self) -> PathBuf

The device’s device node.

source

fn equivalent_tables(left: &T, right: &T) -> DmResult<bool>

Check if tables indicate an equivalent device.

source

fn name(&self) -> &DmName

The device’s name.

source

fn size(&self) -> Sectors

The number of sectors available for user data.

source

fn table(&self) -> &T

What the device thinks its table is.

source

fn teardown(&mut self, dm: &DM) -> DmResult<()>

Erase the kernel’s memory of this device.

source

fn uuid(&self) -> Option<&DmUuid>

The device’s UUID, if available. Note that the UUID is not any standard UUID format.

Provided Methods§

source

fn read_kernel_table(dm: &DM, id: &DevId<'_>) -> DmResult<T>

Read the devicemapper table

source

fn resume(&mut self, dm: &DM) -> DmResult<()>

Resume I/O on the device.

source

fn suspend(&mut self, dm: &DM, options: DmOptions) -> DmResult<()>

Suspend I/O on the device.

source

fn table_load(&self, dm: &DM, table: &T, options: DmOptions) -> DmResult<()>

Load a table

Implementors§