linux_api/
epoll.rs
1use crate::{bindings, const_conversions};
2use num_enum::{IntoPrimitive, TryFromPrimitive};
3
4bitflags::bitflags! {
5 #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
7 pub struct EpollCreateFlags: i32 {
8 const EPOLL_CLOEXEC = const_conversions::i32_from_u32(bindings::LINUX_EPOLL_CLOEXEC);
9 }
10}
11
12#[derive(Debug, Copy, Clone, Eq, PartialEq, IntoPrimitive, TryFromPrimitive)]
14#[repr(i32)]
15#[allow(non_camel_case_types)]
16pub enum EpollCtlOp {
17 EPOLL_CTL_ADD = const_conversions::i32_from_u32(bindings::LINUX_EPOLL_CTL_ADD),
18 EPOLL_CTL_MOD = const_conversions::i32_from_u32(bindings::LINUX_EPOLL_CTL_MOD),
19 EPOLL_CTL_DEL = const_conversions::i32_from_u32(bindings::LINUX_EPOLL_CTL_DEL),
20}
21
22bitflags::bitflags! {
23 #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
27 pub struct EpollEvents: u32 {
28 const EPOLLIN = bindings::LINUX_EPOLLIN;
30 const EPOLLPRI = bindings::LINUX_EPOLLPRI;
32 const EPOLLOUT = bindings::LINUX_EPOLLOUT;
34 const EPOLLERR = bindings::LINUX_EPOLLERR;
36 const EPOLLHUP = bindings::LINUX_EPOLLHUP;
38 const EPOLLNVAL = bindings::LINUX_EPOLLNVAL;
40 const EPOLLRDNORM = bindings::LINUX_EPOLLRDNORM;
42 const EPOLLRDBAND = bindings::LINUX_EPOLLRDBAND;
44 const EPOLLWRNORM = bindings::LINUX_EPOLLWRNORM;
46 const EPOLLWRBAND = bindings::LINUX_EPOLLWRBAND;
48 const EPOLLMSG = bindings::LINUX_EPOLLMSG;
50 const EPOLLRDHUP = bindings::LINUX_EPOLLRDHUP;
52 const EPOLLEXCLUSIVE = bindings::LINUX_EPOLLEXCLUSIVE;
54 const EPOLLWAKEUP = bindings::LINUX_EPOLLWAKEUP;
56 const EPOLLONESHOT = bindings::LINUX_EPOLLONESHOT;
58 const EPOLLET = bindings::LINUX_EPOLLET;
60 }
61}
62
63#[allow(non_camel_case_types)]
65pub type epoll_event = crate::bindings::linux_epoll_event;
66unsafe impl shadow_pod::Pod for epoll_event {}