use super::abi::*;
use crate::{
result_from_value,
AsRawFd,
Error,
};
pub const F_GETFD: u32 = 1;
pub const F_SETFD: u32 = 2;
#[inline]
#[allow(clippy::missing_safety_doc)]
pub unsafe fn fcntl(fd: &impl AsRawFd, cmd: u32, arg: usize) -> Result<isize, Error> {
let ret = syscall_3(72, fd.as_raw_fd() as usize, cmd as usize, arg) as isize;
result_from_value(ret)
}
#[inline]
pub fn fcntl_getfd(fd: &impl AsRawFd) -> Result<i32, Error> {
Ok(unsafe { fcntl(fd, F_GETFD, 0)? as i32 })
}
#[inline]
pub fn fcntl_setfd(fd: &impl AsRawFd, flags: i32) -> Result<i32, Error> {
Ok(unsafe { fcntl(fd, F_SETFD, flags as usize)? as i32 })
}