diff --git a/os/src/task/mod.rs b/os/src/task/mod.rs index 4755e7a..de611f3 100644 --- a/os/src/task/mod.rs +++ b/os/src/task/mod.rs @@ -10,6 +10,7 @@ mod task; use self::id::TaskUserRes; use crate::fs::{open_file, OpenFlags}; +use crate::sbi::shutdown; use alloc::{sync::Arc, vec::Vec}; use lazy_static::*; use manager::fetch_task; @@ -82,10 +83,10 @@ pub fn exit_current_and_run_next(exit_code: i32) { ); if exit_code != 0 { //crate::sbi::shutdown(255); //255 == -1 for err hint - crate::board::QEMU_EXIT_HANDLE.exit_failure(); + shutdown(true); } else { //crate::sbi::shutdown(0); //0 for success hint - crate::board::QEMU_EXIT_HANDLE.exit_success(); + shutdown(false); } } remove_from_pid2process(pid);