pub unsafe fn clock_nanosleep(
which_clock: clockid_t,
flags: i32,
request: ×pec_t,
remain: Option<&mut timespec_t>,
) -> Result<(), Errno> {
let which_clock = which_clock as usize;
let flags = flags as usize;
let request_ptr = core::ptr::from_ref(request) as usize;
let remain_ptr = remain.map_or(core::ptr::null_mut::<timespec_t>() as usize, |remain| {
core::ptr::from_mut(remain) as usize
});
unsafe {
syscall4(
SYS_CLOCK_NANOSLEEP,
which_clock,
flags,
request_ptr,
remain_ptr,
)
.map(drop)
}
}