refactor(ipc): Refactor the syscalls in ipc (#1183)

* feat(ipc): 完成对ipc的系统调用的重构

* refactor(ipc): 优化结构

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

* feat: fmt

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>

---------

Signed-off-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
Co-authored-by: Vitus <zhzvitus@gmail.com>
Co-authored-by: sparkzky <sparkhhhhhhhhhh@outlook.com>
This commit is contained in:
Vitus
2025-05-30 20:52:44 +08:00
committed by GitHub
parent 6ac8e1f0cd
commit 5db1f9ad54
22 changed files with 1241 additions and 756 deletions

View File

@ -5,10 +5,7 @@ use crate::{
arch::ipc::signal::{SigSet, Signal},
mm::VirtAddr,
process::{process_group::Pgid, Pid, ProcessFlags, ProcessManager},
syscall::{
user_access::{UserBufferReader, UserBufferWriter},
Syscall,
},
syscall::user_access::{UserBufferReader, UserBufferWriter},
};
use super::tty_core::{TtyCore, TtyIoctlCmd};
@ -59,7 +56,7 @@ impl TtyJobCtrlManager {
} else if ProcessManager::is_current_pgrp_orphaned() {
return Err(SystemError::EIO);
} else {
Syscall::kill_process_group(pgid, sig)?;
crate::ipc::kill::kill_process_group(pgid, sig)?;
ProcessManager::current_pcb()
.flags()
.insert(ProcessFlags::HAS_PENDING_SIGNAL);

View File

@ -22,7 +22,7 @@ use crate::{
},
mm::VirtAddr,
process::{ProcessFlags, ProcessManager},
syscall::{user_access::UserBufferWriter, Syscall},
syscall::user_access::UserBufferWriter,
};
use super::TtyLineDiscipline;
@ -789,7 +789,7 @@ impl NTtyData {
let ctrl_info = tty.core().contorl_info_irqsave();
let pg = ctrl_info.pgid;
if let Some(pg) = pg {
let _ = Syscall::kill_process_group(pg, signal);
let _ = crate::ipc::kill::kill_process_group(pg, signal);
}
if !termios.local_mode.contains(LocalMode::NOFLSH) {