linux_api/
wait.rs

1use num_enum::IntoPrimitive;
2use num_enum::TryFromPrimitive;
3
4use crate::bindings;
5use crate::const_conversions;
6
7bitflags::bitflags! {
8    #[repr(transparent)]
9    #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
10    pub struct WaitFlags: i32 {
11        const WNOHANG = const_conversions::i32_from_u32(bindings::LINUX_WNOHANG);
12        const WUNTRACED = const_conversions::i32_from_u32(bindings::LINUX_WUNTRACED);
13        const WEXITED   = const_conversions::i32_from_u32(bindings::LINUX_WEXITED  );
14        const WCONTINUED  = const_conversions::i32_from_u32(bindings::LINUX_WCONTINUED );
15        const WNOWAIT   = const_conversions::i32_from_u32(bindings::LINUX_WNOWAIT  );
16        const WSTOPPED = const_conversions::i32_from_u32(bindings::LINUX_WSTOPPED);
17
18        const __WNOTHREAD = const_conversions::i32_from_u32(bindings::LINUX___WNOTHREAD);
19        const __WALL    = const_conversions::i32_from_u32(bindings::LINUX___WALL   );
20        const __WCLONE  = const_conversions::i32_from_u32_allowing_wraparound(bindings::LINUX___WCLONE );
21    }
22}
23
24#[allow(non_camel_case_types)]
25#[repr(i32)]
26#[derive(Copy, Clone, Debug, Eq, PartialEq, TryFromPrimitive, IntoPrimitive)]
27pub enum WaitId {
28    P_ALL = const_conversions::i32_from_u32(bindings::LINUX_P_ALL),
29    P_PID = const_conversions::i32_from_u32(bindings::LINUX_P_PID),
30    P_PGID = const_conversions::i32_from_u32(bindings::LINUX_P_PGID),
31    P_PIDFD = const_conversions::i32_from_u32(bindings::LINUX_P_PIDFD),
32}