Trait Device

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

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

Device trait.

This trait defines the interface for devices in the kernel. Device IDs are assigned by DeviceManager when devices are registered.

Required Methods§

Source

fn device_type(&self) -> DeviceType

Source

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

Source

fn as_any(&self) -> &dyn Any

Source

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

Provided Methods§

Source

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

Cast to CharDevice if this device is a character device

Source

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

Cast to BlockDevice if this device is a block device

Implementors§