Skip to main content

ax_libc/
time.rs

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