xref: /DragonOS/kernel/src/driver/base/device/driver.rs (revision 2a7d773d3d39f1cb3d59d6baa817c896c6fd52d1)
1*2a7d773dSTingHuang use super::IdTable;
2*2a7d773dSTingHuang use core::{any::Any, fmt::Debug};
3*2a7d773dSTingHuang 
4*2a7d773dSTingHuang /// @brief: Driver error
5*2a7d773dSTingHuang #[allow(dead_code)]
6*2a7d773dSTingHuang #[derive(Debug)]
7*2a7d773dSTingHuang #[derive(PartialEq, Eq)]
8*2a7d773dSTingHuang #[derive(Clone, Copy)]
9*2a7d773dSTingHuang pub enum DriverError {
10*2a7d773dSTingHuang     ProbeError,
11*2a7d773dSTingHuang }
12*2a7d773dSTingHuang 
13*2a7d773dSTingHuang /// @brief: 所有设备驱动都应该实现该trait
14*2a7d773dSTingHuang pub trait Driver: Any + Send + Sync + Debug {
15*2a7d773dSTingHuang     /// @brief: 获取设备驱动标识符
16*2a7d773dSTingHuang     /// @parameter: None
17*2a7d773dSTingHuang     /// @return: 该设备驱动唯一标识符
18*2a7d773dSTingHuang     fn get_id_table(&self) -> IdTable;
19*2a7d773dSTingHuang }
20