• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use crate::errno::Errno;
2 use crate::Result;
3 use std::os::unix::io::RawFd;
4 
5 libc_bitflags! {
6     pub struct EfdFlags: libc::c_int {
7         EFD_CLOEXEC; // Since Linux 2.6.27
8         EFD_NONBLOCK; // Since Linux 2.6.27
9         EFD_SEMAPHORE; // Since Linux 2.6.30
10     }
11 }
12 
eventfd(initval: libc::c_uint, flags: EfdFlags) -> Result<RawFd>13 pub fn eventfd(initval: libc::c_uint, flags: EfdFlags) -> Result<RawFd> {
14     let res = unsafe { libc::eventfd(initval, flags.bits()) };
15 
16     Errno::result(res).map(|r| r as RawFd)
17 }
18