mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-22 15:23:23 +00:00
设备驱动模型:完善platform bus相关内容。并注册串口到sysfs (#403)
* 完成初始化platform bus * 删除旧的sysfs * 把uart驱动移动到tty/serial文件夹下 * 完成将串口挂载到sysfs * 修复vfs系统调用未能follow symlink的问题 * 修复shell未能正确获取pwd的问题
This commit is contained in:
61
kernel/src/driver/tty/tty_driver.rs
Normal file
61
kernel/src/driver/tty/tty_driver.rs
Normal file
@ -0,0 +1,61 @@
|
||||
use core::fmt::Debug;
|
||||
|
||||
use alloc::sync::Arc;
|
||||
|
||||
use crate::driver::base::device::driver::Driver;
|
||||
|
||||
use super::tty_device::TtyDevice;
|
||||
|
||||
/// TTY 驱动
|
||||
///
|
||||
///
|
||||
/// 参考 https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/tty_driver.h#434
|
||||
pub trait TtyDriver: Debug + Send + Sync + Driver {
|
||||
fn driver_name(&self) -> &str;
|
||||
fn dev_name(&self) -> &str;
|
||||
|
||||
fn metadata(&self) -> &TtyDriverMetadata;
|
||||
|
||||
fn other(&self) -> Option<&Arc<dyn TtyDriver>>;
|
||||
|
||||
fn ttys(&self) -> &[Arc<TtyDevice>];
|
||||
|
||||
fn tty_ops(&self) -> Option<&'static dyn TtyDriverOperations> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[allow(dead_code)]
|
||||
pub struct TtyDriverMetadata {
|
||||
/// name of the driver used in /proc/tty
|
||||
driver_name: &'static str,
|
||||
/// used for constructing /dev node name
|
||||
dev_name: &'static str,
|
||||
/// used as a number base for constructing /dev node name
|
||||
name_base: i32,
|
||||
/// major /dev device number (zero for autoassignment)
|
||||
major: i32,
|
||||
/// the first minor /dev device number
|
||||
minor_start: i32,
|
||||
drv_type: TtyDriverType,
|
||||
subtype: TtyDriverSubtype,
|
||||
}
|
||||
|
||||
/// https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/tty_driver.h#411
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum TtyDriverType {}
|
||||
|
||||
/// https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/tty_driver.h#412
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum TtyDriverSubtype {}
|
||||
|
||||
bitflags! {
|
||||
/// https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/tty_driver.h?fi=SERIAL_TYPE_NORMAL#492
|
||||
pub struct TtyDriverFlags: u64 {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// 参考 https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/tty_driver.h#350
|
||||
pub trait TtyDriverOperations {}
|
Reference in New Issue
Block a user