xref: /third_party/rust/crates/nix/src/sys/eventfd.rs
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/rust/crates/nix/src/sys/
13da5c369Sopenharmony_ciuse crate::errno::Errno;
23da5c369Sopenharmony_ciuse crate::Result;
33da5c369Sopenharmony_ciuse std::os::unix::io::RawFd;
43da5c369Sopenharmony_ci
53da5c369Sopenharmony_cilibc_bitflags! {
63da5c369Sopenharmony_ci    pub struct EfdFlags: libc::c_int {
73da5c369Sopenharmony_ci        EFD_CLOEXEC; // Since Linux 2.6.27
83da5c369Sopenharmony_ci        EFD_NONBLOCK; // Since Linux 2.6.27
93da5c369Sopenharmony_ci        EFD_SEMAPHORE; // Since Linux 2.6.30
103da5c369Sopenharmony_ci    }
113da5c369Sopenharmony_ci}
123da5c369Sopenharmony_ci
133da5c369Sopenharmony_cipub fn eventfd(initval: libc::c_uint, flags: EfdFlags) -> Result<RawFd> {
143da5c369Sopenharmony_ci    let res = unsafe { libc::eventfd(initval, flags.bits()) };
153da5c369Sopenharmony_ci
163da5c369Sopenharmony_ci    Errno::result(res).map(|r| r as RawFd)
173da5c369Sopenharmony_ci}
18

Indexes created Thu Nov 07 10:32:03 CST 2024