From 103f13024b13908f29c925dc12c86ac026153359 Mon Sep 17 00:00:00 2001 From: MemoryShore <1353318529@qq.com> Date: Mon, 30 Sep 2024 21:19:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtcsetpgrp=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=BF=9B=E7=A8=8B=E7=BB=84=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98=20(#950)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/driver/tty/tty_job_control.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/kernel/src/driver/tty/tty_job_control.rs b/kernel/src/driver/tty/tty_job_control.rs index 39e1335f..653b3777 100644 --- a/kernel/src/driver/tty/tty_job_control.rs +++ b/kernel/src/driver/tty/tty_job_control.rs @@ -5,7 +5,10 @@ use crate::{ arch::ipc::signal::{SigSet, Signal}, mm::VirtAddr, process::{Pid, ProcessManager}, - syscall::{user_access::UserBufferWriter, Syscall}, + syscall::{ + user_access::{UserBufferReader, UserBufferWriter}, + Syscall, + }, }; use super::tty_core::{TtyCore, TtyIoctlCmd}; @@ -81,13 +84,13 @@ impl TtyJobCtrlManager { } }; - // let user_reader = UserBufferReader::new( - // VirtAddr::new(arg).as_ptr::(), - // core::mem::size_of::(), - // true, - // )?; + let user_reader = UserBufferReader::new( + VirtAddr::new(arg).as_ptr::(), + core::mem::size_of::(), + true, + )?; - // let pgrp = user_reader.read_one_from_user::(0)?; + let pgrp = user_reader.read_one_from_user::(0)?; let current = ProcessManager::current_pcb(); @@ -101,7 +104,7 @@ impl TtyJobCtrlManager { return Err(SystemError::ENOTTY); } - ctrl.pgid = Some(Pid::new(arg)); + ctrl.pgid = Some(Pid::new(*pgrp as usize)); return Ok(0); }