uapi 0.2.7

Wrappers for OS APIs on UNIX-like platform
Documentation
use crate::*;

#[man(timerfd_create(2))]
pub fn timerfd_create(clockid: c::c_int, flags: c::c_int) -> Result<OwnedFd> {
    let res = unsafe { c::timerfd_create(clockid, flags) };
    map_err!(res).map(OwnedFd::new)
}

#[man(timerfd_settime(2))]
pub fn timerfd_settime(
    fd: c::c_int,
    flags: c::c_int,
    new_value: &c::itimerspec,
) -> Result<c::itimerspec> {
    let mut old_value = pod::pod_zeroed();
    let res = unsafe { c::timerfd_settime(fd, flags, new_value, &mut old_value) };
    map_err!(res).map(|_| old_value)
}

#[man(timerfd_gettime(2))]
pub fn timerfd_gettime(fd: c::c_int) -> Result<c::itimerspec> {
    let mut curr_value = pod::pod_zeroed();
    let res = unsafe { c::timerfd_gettime(fd, &mut curr_value) };
    map_err!(res).map(|_| curr_value)
}