Expand description
§Device Manager Module
This module provides functionality for managing hardware devices in the kernel.
§Overview
The device manager is responsible for:
- Tracking available device drivers with priority-based initialization
- Device discovery and initialization through FDT
- Managing device information and lifecycle
§Key Components
DeviceManager
: The main device management system that handles all devices and driversDriverPriority
: Priority levels for controlling driver initialization order
§Device Discovery
Devices are discovered through the Flattened Device Tree (FDT). The manager:
- Parses the device tree
- Matches compatible devices with registered drivers based on priority
- Probes devices with appropriate drivers in priority order
§Usage
The device manager is implemented as a global singleton that can be accessed via:
DeviceManager::get_manager()
- Immutable accessDeviceManager::get_mut_manager()
- Mutable access
§Example: Registering a device driver
use crate::device::manager::{DeviceManager, DriverPriority};
// Create a new device driver
let my_driver = Box::new(MyDeviceDriver::new());
// Register with the device manager at Core priority
DeviceManager::get_mut_manager().register_driver(my_driver, DriverPriority::Core);
Structs§
- Device
Manager - DeviceManager
Enums§
- Driver
Priority - Driver priority levels for initialization order
Statics§
- MANAGER 🔒
Type Aliases§
- Shared
Device - Simplified shared device type