axlibc/
time.rs

1use arceos_posix_api::{sys_clock_gettime, sys_nanosleep};
2use core::ffi::c_int;
3
4use crate::{ctypes, utils::e};
5
6/// Get clock time since booting
7#[unsafe(no_mangle)]
8pub unsafe extern "C" fn clock_gettime(clk: ctypes::clockid_t, ts: *mut ctypes::timespec) -> c_int {
9    e(sys_clock_gettime(clk, ts))
10}
11
12/// Sleep some nanoseconds
13///
14/// TODO: should be woken by signals, and set errno
15#[unsafe(no_mangle)]
16pub unsafe extern "C" fn nanosleep(
17    req: *const ctypes::timespec,
18    rem: *mut ctypes::timespec,
19) -> c_int {
20    e(sys_nanosleep(req, rem))
21}