platform_device.rs 954 B

123456789101112131415161718192021222324252627282930
  1. use super::{
  2. super::device::{Device, DeviceState},
  3. platform_driver::PlatformDriver,
  4. CompatibleTable,
  5. };
  6. use alloc::sync::Arc;
  7. /// @brief: 实现该trait的设备实例应挂载在platform总线上,
  8. /// 同时应该实现Device trait
  9. pub trait PlatformDevice: Device {
  10. /// @brief: 获取设备匹配表
  11. /// @parameter: None
  12. /// @return: 设备匹配表
  13. fn compatible_table(&self) -> CompatibleTable;
  14. /// @brief: 判断设备是否初始化
  15. /// @parameter: None
  16. /// @return: 如果已经初始化,返回true,否则,返回false
  17. fn is_initialized(&self) -> bool;
  18. /// @brief: 设置设备状态
  19. /// @parameter set_state: 设备状态
  20. /// @return: None
  21. fn set_state(&self, set_state: DeviceState);
  22. /// @brief: 设置platform设备驱动
  23. /// @parameter driver: platform设备驱动
  24. /// @return: None
  25. fn set_driver(&self, driver: Option<Arc<dyn PlatformDriver>>);
  26. }