Module manager

Source
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 drivers
  • DriverPriority: Priority levels for controlling driver initialization order

§Device Discovery

Devices are discovered through the Flattened Device Tree (FDT). The manager:

  1. Parses the device tree
  2. Matches compatible devices with registered drivers based on priority
  3. 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 access
  • DeviceManager::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§

DeviceManager
DeviceManager

Enums§

DriverPriority
Driver priority levels for initialization order

Statics§

MANAGER 🔒

Type Aliases§

SharedDevice
Simplified shared device type