pub struct DriverFramework { /* private fields */ }Expand description
Driver framework
Implementations§
Source§impl DriverFramework
impl DriverFramework
Sourcepub fn register_driver(
&self,
driver: Box<dyn Driver>,
) -> Result<(), KernelError>
pub fn register_driver( &self, driver: Box<dyn Driver>, ) -> Result<(), KernelError>
Register a driver
Sourcepub fn unregister_driver(&self, name: &str) -> Result<(), KernelError>
pub fn unregister_driver(&self, name: &str) -> Result<(), KernelError>
Unregister a driver
Sourcepub fn register_bus(&self, bus: Box<dyn Bus>) -> Result<(), KernelError>
pub fn register_bus(&self, bus: Box<dyn Bus>) -> Result<(), KernelError>
Register a bus
Sourcepub fn scan_buses(&self) -> Result<usize, KernelError>
pub fn scan_buses(&self) -> Result<usize, KernelError>
Scan all buses for devices
Sourcepub fn handle_interrupt(&self, irq: u8) -> Result<(), KernelError>
pub fn handle_interrupt(&self, irq: u8) -> Result<(), KernelError>
Handle interrupt
Sourcepub fn get_device(&self, device_id: u64) -> Option<DeviceInfo>
pub fn get_device(&self, device_id: u64) -> Option<DeviceInfo>
Get device information
Sourcepub fn list_devices(&self) -> Vec<DeviceInfo>
pub fn list_devices(&self) -> Vec<DeviceInfo>
List all devices
Sourcepub fn get_device_driver(&self, device_id: u64) -> Option<String>
pub fn get_device_driver(&self, device_id: u64) -> Option<String>
Get driver for device
Sourcepub fn enable_device(&self, device_id: u64) -> Result<(), KernelError>
pub fn enable_device(&self, device_id: u64) -> Result<(), KernelError>
Enable device
Sourcepub fn disable_device(&self, device_id: u64) -> Result<(), KernelError>
pub fn disable_device(&self, device_id: u64) -> Result<(), KernelError>
Disable device
Sourcepub fn get_drivers(&self) -> Vec<String>
pub fn get_drivers(&self) -> Vec<String>
Get all registered drivers
Sourcepub fn register_event_listener(&self, listener: Arc<dyn DeviceEventListener>)
pub fn register_event_listener(&self, listener: Arc<dyn DeviceEventListener>)
Register an event listener for device hot-plug notifications.
Sourcepub fn clear_event_listeners(&self)
pub fn clear_event_listeners(&self)
Unregister all event listeners (used during shutdown).
Sourcepub fn add_device(&self, device: DeviceInfo) -> Result<u64, KernelError>
pub fn add_device(&self, device: DeviceInfo) -> Result<u64, KernelError>
Add a new device to the system (hot-plug).
Assigns a unique device ID, registers the device, fires an Added
event, and attempts to auto-probe a matching driver.
Sourcepub fn remove_device(&self, device_id: u64) -> Result<(), KernelError>
pub fn remove_device(&self, device_id: u64) -> Result<(), KernelError>
Remove a device from the system (hot-unplug).
Unbinds any attached driver, fires a Removed event, and removes the
device from the registry.
Sourcepub fn update_device_status(
&self,
device_id: u64,
new_status: DeviceStatus,
) -> Result<(), KernelError>
pub fn update_device_status( &self, device_id: u64, new_status: DeviceStatus, ) -> Result<(), KernelError>
Update a device’s status and fire a StateChanged event.
Sourcepub fn read_device(
&self,
device_id: u64,
offset: u64,
buffer: &mut [u8],
) -> Result<usize, KernelError>
pub fn read_device( &self, device_id: u64, offset: u64, buffer: &mut [u8], ) -> Result<usize, KernelError>
Read from a device through its bound driver.
Sourcepub fn write_device(
&self,
device_id: u64,
offset: u64,
data: &[u8],
) -> Result<usize, KernelError>
pub fn write_device( &self, device_id: u64, offset: u64, data: &[u8], ) -> Result<usize, KernelError>
Write to a device through its bound driver.
Sourcepub fn get_statistics(&self) -> DriverFrameworkStats
pub fn get_statistics(&self) -> DriverFrameworkStats
Get statistics