⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

Bus

Trait Bus 

Source
pub trait Bus: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn scan(&mut self) -> Vec<DeviceInfo>;
    fn read_config(
        &self,
        device: &DeviceInfo,
        offset: u16,
        size: u8,
    ) -> Result<u32, KernelError>;
    fn write_config(
        &mut self,
        device: &DeviceInfo,
        offset: u16,
        value: u32,
        size: u8,
    ) -> Result<(), KernelError>;
    fn enable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>;
    fn disable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>;
}
Expand description

Bus operations trait

Required Methods§

Source

fn name(&self) -> &str

Get bus name

Source

fn scan(&mut self) -> Vec<DeviceInfo>

Scan for devices

Source

fn read_config( &self, device: &DeviceInfo, offset: u16, size: u8, ) -> Result<u32, KernelError>

Read configuration space

Source

fn write_config( &mut self, device: &DeviceInfo, offset: u16, value: u32, size: u8, ) -> Result<(), KernelError>

Write configuration space

Source

fn enable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>

Enable device

Source

fn disable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>

Disable device

Implementors§