0 | module System.Linux.Pipe.Prim
 1 |
 2 | import System.Posix.Pipe.Prim
 3 |
 4 | %default total
 5 |
 6 | --------------------------------------------------------------------------------
 7 | -- FFI
 8 | --------------------------------------------------------------------------------
 9 |
10 | %foreign "C:li_pipe2, linux-idris"
11 | prim__pipe2 : AnyPtr -> Bits32 -> PrimIO CInt
12 |
13 | --------------------------------------------------------------------------------
14 | -- API
15 | --------------------------------------------------------------------------------
16 |
17 | ||| Linux-specific version of `pipe` that allows setting additional
18 | ||| flags (`O_NONBLOCK`, `O_CLOEXEC`, `O_DIRECT`).
19 | export %inline
20 | pipe2 : CArrayIO 2 Fd -> Flags -> EPrim ()
21 | pipe2 p (F fs) = toUnit $ prim__pipe2 (unsafeUnwrap p) fs
22 |