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§
Sourcefn scan(&mut self) -> Vec<DeviceInfo>
fn scan(&mut self) -> Vec<DeviceInfo>
Scan for devices
Sourcefn read_config(
&self,
device: &DeviceInfo,
offset: u16,
size: u8,
) -> Result<u32, KernelError>
fn read_config( &self, device: &DeviceInfo, offset: u16, size: u8, ) -> Result<u32, KernelError>
Read configuration space
Sourcefn write_config(
&mut self,
device: &DeviceInfo,
offset: u16,
value: u32,
size: u8,
) -> Result<(), KernelError>
fn write_config( &mut self, device: &DeviceInfo, offset: u16, value: u32, size: u8, ) -> Result<(), KernelError>
Write configuration space
Sourcefn enable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>
fn enable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>
Enable device
Sourcefn disable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>
fn disable_device(&mut self, device: &DeviceInfo) -> Result<(), KernelError>
Disable device