Trait Device

Source
pub trait Device: Send + Sync {
    // Required methods
    fn device_type(&self) -> DeviceType;
    fn name(&self) -> &'static str;
    fn id(&self) -> usize;
    fn as_any(&self) -> &dyn Any;
    fn as_any_mut(&mut self) -> &mut dyn Any;

    // Provided methods
    fn as_char_device(&mut self) -> Option<&mut dyn CharDevice> { ... }
    fn as_block_device(&mut self) -> Option<&mut dyn BlockDevice> { ... }
}
Expand description

Device trait.

This trait defines the interface for devices in the kernel.

Required Methods§

Source

fn device_type(&self) -> DeviceType

Source

fn name(&self) -> &'static str

Source

fn id(&self) -> usize

Source

fn as_any(&self) -> &dyn Any

Source

fn as_any_mut(&mut self) -> &mut dyn Any

Provided Methods§

Source

fn as_char_device(&mut self) -> Option<&mut dyn CharDevice>

Cast to CharDevice if this device is a character device

Source

fn as_block_device(&mut self) -> Option<&mut dyn BlockDevice>

Cast to BlockDevice if this device is a block device

Implementors§