1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//! Process management syscalls
use crate::task::{exit_current_and_run_next, suspend_current_and_run_next};
/// task exits and submit an exit code
pub fn sys_exit(exit_code: i32) -> ! {
println!("[kernel] Application exited with code {}", exit_code);
exit_current_and_run_next();
panic!("Unreachable in sys_exit!");
}
/// current task gives up resources for other tasks
pub fn sys_yield() -> isize {
suspend_current_and_run_next();
0
}