fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染 (#592)

fix: 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
1.修正psmouse 日志
2. 键盘中断上下文不再直接操作tty,而是由专门的kthread来渲染
3. 由于调度器设计问题,load balance会由于时序问题导致错误.因此暂时只启用单核.
This commit is contained in:
LoGin
2024-03-12 16:32:33 +08:00
committed by GitHub
parent 818a64c776
commit 59fdb447ee
12 changed files with 114 additions and 38 deletions

View File

@ -1,11 +1,4 @@
use core::sync::atomic::Ordering;
use alloc::sync::Arc;
use crate::driver::tty::{
tty_port::{TtyPort, TTY_PORTS},
virtual_terminal::virtual_console::CURRENT_VCNUM,
};
use crate::driver::tty::kthread::send_to_tty_refresh_thread;
#[allow(dead_code)]
pub const NUM_SCAN_CODES: u8 = 0x80;
@ -360,12 +353,7 @@ impl TypeOneFSMState {
#[inline(always)]
fn emit(ch: u8) {
// 发送到tty
let _ = Self::current_port().receive_buf(&[ch], &[], 1);
}
#[inline]
fn current_port() -> Arc<dyn TtyPort> {
TTY_PORTS[CURRENT_VCNUM.load(Ordering::SeqCst) as usize].clone()
send_to_tty_refresh_thread(&[ch]);
}
/// @brief 处理Prtsc按下事件