将TTY与stdio进行连接,实现基本的stdio功能 (#217)

* 将stdio与tty接上
This commit is contained in:
login
2023-03-31 12:54:37 +08:00
committed by GitHub
parent 5fb12ce447
commit 20e3152e1e
21 changed files with 528 additions and 169 deletions

View File

@ -3,6 +3,7 @@ use core::sync::atomic::AtomicI32;
use alloc::sync::{Arc, Weak};
use crate::{
driver::tty::tty_device::TTY_DEVICES,
filesystem::{
devfs::{devfs_register, DevFS, DeviceINode},
vfs::{core::generate_inode_id, file::FileMode, FileType, IndexNode, Metadata, PollStatus},
@ -17,7 +18,14 @@ use crate::{
pub struct LockedPS2KeyBoardInode(RwLock<PS2KeyBoardInode>, AtomicI32); // self.1 用来记录有多少个文件打开了这个inode
lazy_static! {
static ref PS2_KEYBOARD_FSM: SpinLock<TypeOneFSM> = SpinLock::new(TypeOneFSM::new());
static ref PS2_KEYBOARD_FSM: SpinLock<TypeOneFSM> = {
let tty0 = TTY_DEVICES
.read()
.get("tty0")
.expect("Initializing PS2_KEYBOARD_FSM: Cannot found TTY0!")
.clone();
SpinLock::new(TypeOneFSM::new(tty0))
};
}
#[derive(Debug)]