1 #[cfg(any(linux_kernel, target_os = "freebsd", target_os = "illumos"))] 2 use crate::backend::c; 3 #[cfg(any( 4 linux_kernel, 5 target_os = "freebsd", 6 target_os = "illumos", 7 target_os = "espidf" 8 ))] 9 use bitflags::bitflags; 10 11 #[cfg(any( 12 linux_kernel, 13 target_os = "freebsd", 14 target_os = "illumos", 15 target_os = "espidf" 16 ))] 17 bitflags! { 18 /// `EFD_*` flags for use with [`eventfd`]. 19 /// 20 /// [`eventfd`]: crate::event::eventfd 21 #[repr(transparent)] 22 #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)] 23 pub struct EventfdFlags: u32 { 24 /// `EFD_CLOEXEC` 25 #[cfg(not(target_os = "espidf"))] 26 const CLOEXEC = bitcast!(c::EFD_CLOEXEC); 27 /// `EFD_NONBLOCK` 28 #[cfg(not(target_os = "espidf"))] 29 const NONBLOCK = bitcast!(c::EFD_NONBLOCK); 30 /// `EFD_SEMAPHORE` 31 #[cfg(not(target_os = "espidf"))] 32 const SEMAPHORE = bitcast!(c::EFD_SEMAPHORE); 33 34 /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> 35 const _ = !0; 36 } 37 } 38