8 | module System.Linux.Epoll.Flags
11 | import Derive.Prelude
12 | import public System.Posix.Poll.Types
15 | %language ElabReflection
18 | record EpollFlags where
22 | namespace EpollFlags
23 | %runElab derive "EpollFlags" [Show,Eq,Ord,FromInteger]
26 | Semigroup EpollFlags where
27 | F x <+> F y = F $
x .|. y
30 | Monoid EpollFlags where neutral = F 0
33 | data EpollOp = Add | Del | Mod
35 | %runElab derive "EpollOp" [Show,Eq,Ord]
39 | opCode : EpollOp -> Bits32
45 | EPOLLRDHUP : PollEvent
50 | EPOLLET = 2147483648
53 | EPOLLONESHOT : PollEvent
54 | EPOLLONESHOT = 1073741824
57 | EPOLLWAKEUP : PollEvent
58 | EPOLLWAKEUP = 536870912
61 | EPOLLEXCLUSIVE : PollEvent
62 | EPOLLEXCLUSIVE = 268435456
65 | EPOLL_CLOEXEC : EpollFlags
66 | EPOLL_CLOEXEC = 524288
68 | public export %inline
69 | epoll_event_size : Bits32
70 | epoll_event_size = 12