完善Tty的RawMode (#577)

* 完善rowmode,改掉一部分bug

* 增加两个ansi拓展功能功能,以及标记部分函数nerve inline

* 修改do_signal和其他中断上下文锁未关中断,以及拓展tty功能,修改tty几个算法bug

* 修改两个锁

* 修改syscall_64

* update
This commit is contained in:
GnoCiYeH
2024-03-11 15:13:37 +08:00
committed by GitHub
parent 840045af94
commit 52bcb59e92
22 changed files with 561 additions and 290 deletions

View File

@ -52,6 +52,8 @@ pub struct EventPoll {
impl EventPoll {
pub const EP_MAX_EVENTS: u32 = INT32_MAX / (core::mem::size_of::<EPollEvent>() as u32);
/// 用于获取inode中的epitem队列
pub const ADD_EPOLLITEM: u32 = 0x7965;
pub fn new() -> Self {
Self {
epoll_wq: WaitQueue::INIT,
@ -462,7 +464,7 @@ impl EventPoll {
}
// 如果有未处理的信号则返回错误
if current_pcb.sig_info().sig_pending().signal().bits() != 0 {
if current_pcb.sig_info_irqsave().sig_pending().signal().bits() != 0 {
return Err(SystemError::EINTR);
}