From ac1f5fae3b969805384eb655d230dc4501d9aa01 Mon Sep 17 00:00:00 2001
From: yufeng <321353225@qq.com>
Date: Sun, 14 Aug 2022 14:12:04 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=20syscall?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 kernel/src/sys_call/mod.rs  | 2 ++
 kernel/src/sys_call/task.rs | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/kernel/src/sys_call/mod.rs b/kernel/src/sys_call/mod.rs
index 2e84d98..6463737 100644
--- a/kernel/src/sys_call/mod.rs
+++ b/kernel/src/sys_call/mod.rs
@@ -337,6 +337,8 @@ impl Task {
     pub fn signal(&self, signal: usize) -> Result<(), RuntimeError> {
         let mut inner = self.inner.borrow_mut();
         let mut process = inner.process.borrow_mut();
+
+        process.pmm.change_satp();
         
         let sig_action = process.sig_actions[signal];
 
diff --git a/kernel/src/sys_call/task.rs b/kernel/src/sys_call/task.rs
index 7426fff..683ae51 100644
--- a/kernel/src/sys_call/task.rs
+++ b/kernel/src/sys_call/task.rs
@@ -5,6 +5,7 @@ use hashbrown::HashMap;
 use crate::get_free_page_num;
 
 use crate::interrupt::timer::TimeSpec;
+use crate::task::signal::Signal;
 use crate::task::task_scheduler::{add_task_to_scheduler, get_task, get_task_num};
 use crate::task::task_scheduler::switch_next;
 use crate::task::task_scheduler::get_current_task;
@@ -59,10 +60,10 @@ impl Task {
             Some(parent) => {
                 let parent = parent.upgrade().unwrap();
                 let parent = parent.borrow();
-                // let task = parent.tasks[0].clone().upgrade().unwrap();
+                let task = parent.tasks[0].clone().upgrade().unwrap();
                 drop(parent);
                 // 处理signal 17 SIGCHLD
-                // task.signal(17);
+                task.signal(17);
             }
             None => {}
         }
-- 
GitLab