Chapter3: power2/3/5 & sleep test worked on k210/qemu based on timer.

This commit is contained in:
Yifan Wu 2020-11-29 10:31:15 +08:00
parent adbe671fe1
commit 1cef77eac7
17 changed files with 183 additions and 82 deletions

View file

@ -1,18 +1,20 @@
use crate::task::{
mark_current_suspended,
mark_current_exited,
run_next_task
suspend_current_and_run_next,
exit_current_and_run_next,
};
use crate::timer::get_time;
pub fn sys_exit(xstate: i32) -> ! {
println!("[kernel] Application exited with code {}", xstate);
mark_current_exited();
run_next_task();
exit_current_and_run_next();
panic!("Unreachable in sys_exit!");
}
pub fn sys_yield() -> isize {
mark_current_suspended();
run_next_task();
suspend_current_and_run_next();
0
}
pub fn sys_get_time() -> isize {
get_time() as isize
}