|
|
|
@ -2,7 +2,14 @@ use crate::task::{
|
|
|
|
|
suspend_current_and_run_next,
|
|
|
|
|
exit_current_and_run_next,
|
|
|
|
|
};
|
|
|
|
|
use crate::timer::get_time_ms;
|
|
|
|
|
use crate::timer::get_time_us;
|
|
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
|
pub struct TimeVal {
|
|
|
|
|
pub sec: usize,
|
|
|
|
|
pub usec: usize,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn sys_exit(exit_code: i32) -> ! {
|
|
|
|
|
println!("[kernel] Application exited with code {}", exit_code);
|
|
|
|
@ -15,6 +22,17 @@ pub fn sys_yield() -> isize {
|
|
|
|
|
0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn sys_get_time() -> isize {
|
|
|
|
|
get_time_ms() as isize
|
|
|
|
|
// pub fn sys_get_time() -> isize {
|
|
|
|
|
// get_time_ms() as isize
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
pub fn sys_get_time(ts: *mut TimeVal, _tz: usize) -> isize {
|
|
|
|
|
let us = get_time_us();
|
|
|
|
|
unsafe {
|
|
|
|
|
*ts = TimeVal {
|
|
|
|
|
sec: us / 1_000_000,
|
|
|
|
|
usec: us % 1_000_000,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
0
|
|
|
|
|
}
|