0 | module System.Linux.Epoll
2 | import System.Linux.Epoll.Prim as P
4 | import System.Posix.Signal
5 | import System.Posix.Timer
7 | import public Data.C.Ptr
8 | import public System.Linux.Epoll.Flags
9 | import public System.Linux.Epoll.Struct
10 | import public System.Posix.File
16 | epollCreate : Has Errno es => EIO1 f => EpollFlags -> f es Epollfd
17 | epollCreate fs = elift1 (P.epollCreate fs)
21 | {auto ifd : FileDesc g}
22 | -> {auto has : Has Errno es}
23 | -> {auto eio : EIO1 f}
29 | epollCtl efd op fd ev = elift1 (P.epollCtl efd op fd ev)
34 | -> {auto has : Has Errno es}
35 | -> {auto eio : EIO1 f}
37 | -> CArrayIO n SEpollEvent
39 | -> f es (
k ** CArrayIO k SEpollEvent)
40 | epollWait efd arr timeout = elift1 (P.epollWait efd arr timeout)
45 | -> {auto has : Has Errno es}
46 | -> {auto eio : EIO1 f}
48 | -> CArrayIO n SEpollEvent
50 | -> f es (List PollPair)
51 | epollWaitVals efd arr timeout = elift1 (P.epollWaitVals efd arr timeout)
56 | -> {auto has : Has Errno es}
57 | -> {auto eio : EIO1 f}
59 | -> CArrayIO n SEpollEvent
62 | -> f es (
k ** CArrayIO k SEpollEvent)
63 | epollPwait2 efd arr timeout ss = elift1 (P.epollPwait2 efd arr timeout ss)
68 | -> {auto has : Has Errno es}
69 | -> {auto eio : EIO1 f}
71 | -> CArrayIO n SEpollEvent
74 | -> f es (List PollPair)
75 | epollPwait2Vals efd arr timeout ss = elift1 (P.epollPwait2Vals efd arr timeout ss)