{-# LINE 1 "Z/IO/UV/FFI.hsc" #-}
{-# LANGUAGE CPP                        #-}
{-# LANGUAGE DeriveGeneric              #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MagicHash                  #-}
{-# LANGUAGE TypeFamilies               #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE UnliftedFFITypes           #-}

{-|
Module      : Z.IO.UV
Description : libuv operations
Copyright   : (c) Winterland, 2017-2018
License     : BSD
Maintainer  : drkoster@qq.com
Stability   : experimental
Portability : non-portable

INTERNAL MODULE, provides all libuv side operations.

-}

module Z.IO.UV.FFI where

import           Data.Bits
import           Data.Int
import           Data.Typeable
import           Data.Word
import           Foreign.C.String
import           Foreign.C.Types
import           Foreign.Ptr
import           Foreign.Storable
import           Z.Foreign
import           Z.IO.Network.SocketAddr    (SocketAddr)
import           System.Posix.Types (CSsize (..))
import           GHC.Generics



{-# LINE 39 "Z/IO/UV/FFI.hsc" #-}


{-# LINE 41 "Z/IO/UV/FFI.hsc" #-}

--------------------------------------------------------------------------------
-- libuv version
foreign import ccall unsafe uv_version :: IO CUInt
foreign import ccall unsafe uv_version_string :: IO CString

--------------------------------------------------------------------------------
-- Type alias
type UVSlot = Int
-- | UVSlotUnSafe wrap a slot which may not have a 'MVar' in blocking table, 
--   i.e. the blocking table need to be resized.
newtype UVSlotUnSafe = UVSlotUnSafe { UVSlotUnSafe -> UVSlot
unsafeGetSlot :: UVSlot }
type UVFD = Int32

--------------------------------------------------------------------------------
-- CONSTANT

pattern SO_REUSEPORT_LOAD_BALANCE :: Int
pattern $bSO_REUSEPORT_LOAD_BALANCE :: UVSlot
$mSO_REUSEPORT_LOAD_BALANCE :: forall r. UVSlot -> (Void# -> r) -> (Void# -> r) -> r
SO_REUSEPORT_LOAD_BALANCE = 1
{-# LINE 60 "Z/IO/UV/FFI.hsc" #-}
pattern INIT_LOOP_SIZE :: Int
pattern $bINIT_LOOP_SIZE :: UVSlot
$mINIT_LOOP_SIZE :: forall r. UVSlot -> (Void# -> r) -> (Void# -> r) -> r
INIT_LOOP_SIZE = 128
{-# LINE 62 "Z/IO/UV/FFI.hsc" #-}

--------------------------------------------------------------------------------
-- loop
data UVLoop
data UVLoopData

peekUVEventQueue :: Ptr UVLoopData -> IO (Int, Ptr Int)
peekUVEventQueue :: Ptr UVLoopData -> IO (UVSlot, Ptr UVSlot)
peekUVEventQueue Ptr UVLoopData
p = (,)
    (UVSlot -> Ptr UVSlot -> (UVSlot, Ptr UVSlot))
-> IO UVSlot -> IO (Ptr UVSlot -> (UVSlot, Ptr UVSlot))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((\Ptr UVLoopData
hsc_ptr -> Ptr UVLoopData -> UVSlot -> IO UVSlot
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVLoopData
hsc_ptr UVSlot
0) Ptr UVLoopData
p)
{-# LINE 71 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVLoopData
hsc_ptr -> Ptr UVLoopData -> UVSlot -> IO (Ptr UVSlot)
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVLoopData
hsc_ptr UVSlot
8) Ptr UVLoopData
p)
{-# LINE 72 "Z/IO/UV/FFI.hsc" #-}

clearUVEventCounter :: Ptr UVLoopData -> IO ()
clearUVEventCounter :: Ptr UVLoopData -> IO ()
clearUVEventCounter Ptr UVLoopData
p = do
    (\Ptr UVLoopData
hsc_ptr -> Ptr UVLoopData -> UVSlot -> UVSlot -> IO ()
forall a b. Storable a => Ptr b -> UVSlot -> a -> IO ()
pokeByteOff Ptr UVLoopData
hsc_ptr UVSlot
0) Ptr UVLoopData
p (UVSlot -> IO ()) -> UVSlot -> IO ()
forall a b. (a -> b) -> a -> b
$ (UVSlot
0 :: Int)
{-# LINE 76 "Z/IO/UV/FFI.hsc" #-}

peekUVBufferTable :: Ptr UVLoopData -> IO (Ptr (Ptr Word8), Ptr CSsize)
peekUVBufferTable :: Ptr UVLoopData -> IO (Ptr (Ptr Word8), Ptr CSsize)
peekUVBufferTable Ptr UVLoopData
p = (,)
    (Ptr (Ptr Word8) -> Ptr CSsize -> (Ptr (Ptr Word8), Ptr CSsize))
-> IO (Ptr (Ptr Word8))
-> IO (Ptr CSsize -> (Ptr (Ptr Word8), Ptr CSsize))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((\Ptr UVLoopData
hsc_ptr -> Ptr UVLoopData -> UVSlot -> IO (Ptr (Ptr Word8))
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVLoopData
hsc_ptr UVSlot
16) Ptr UVLoopData
p)
{-# LINE 80 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVLoopData
hsc_ptr -> Ptr UVLoopData -> UVSlot -> IO (Ptr CSsize)
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVLoopData
hsc_ptr UVSlot
24) Ptr UVLoopData
p)
{-# LINE 81 "Z/IO/UV/FFI.hsc" #-}

newtype UVRunMode = UVRunMode CInt deriving (UVRunMode -> UVRunMode -> Bool
(UVRunMode -> UVRunMode -> Bool)
-> (UVRunMode -> UVRunMode -> Bool) -> Eq UVRunMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVRunMode -> UVRunMode -> Bool
$c/= :: UVRunMode -> UVRunMode -> Bool
== :: UVRunMode -> UVRunMode -> Bool
$c== :: UVRunMode -> UVRunMode -> Bool
Eq, Eq UVRunMode
Eq UVRunMode
-> (UVRunMode -> UVRunMode -> Ordering)
-> (UVRunMode -> UVRunMode -> Bool)
-> (UVRunMode -> UVRunMode -> Bool)
-> (UVRunMode -> UVRunMode -> Bool)
-> (UVRunMode -> UVRunMode -> Bool)
-> (UVRunMode -> UVRunMode -> UVRunMode)
-> (UVRunMode -> UVRunMode -> UVRunMode)
-> Ord UVRunMode
UVRunMode -> UVRunMode -> Bool
UVRunMode -> UVRunMode -> Ordering
UVRunMode -> UVRunMode -> UVRunMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVRunMode -> UVRunMode -> UVRunMode
$cmin :: UVRunMode -> UVRunMode -> UVRunMode
max :: UVRunMode -> UVRunMode -> UVRunMode
$cmax :: UVRunMode -> UVRunMode -> UVRunMode
>= :: UVRunMode -> UVRunMode -> Bool
$c>= :: UVRunMode -> UVRunMode -> Bool
> :: UVRunMode -> UVRunMode -> Bool
$c> :: UVRunMode -> UVRunMode -> Bool
<= :: UVRunMode -> UVRunMode -> Bool
$c<= :: UVRunMode -> UVRunMode -> Bool
< :: UVRunMode -> UVRunMode -> Bool
$c< :: UVRunMode -> UVRunMode -> Bool
compare :: UVRunMode -> UVRunMode -> Ordering
$ccompare :: UVRunMode -> UVRunMode -> Ordering
$cp1Ord :: Eq UVRunMode
Ord, Typeable)

pattern UV_RUN_DEFAULT :: UVRunMode
pattern $bUV_RUN_DEFAULT :: UVRunMode
$mUV_RUN_DEFAULT :: forall r. UVRunMode -> (Void# -> r) -> (Void# -> r) -> r
UV_RUN_DEFAULT = UVRunMode 0
{-# LINE 86 "Z/IO/UV/FFI.hsc" #-}
pattern UV_RUN_ONCE :: UVRunMode
pattern $bUV_RUN_ONCE :: UVRunMode
$mUV_RUN_ONCE :: forall r. UVRunMode -> (Void# -> r) -> (Void# -> r) -> r
UV_RUN_ONCE    = UVRunMode 1
{-# LINE 88 "Z/IO/UV/FFI.hsc" #-}
pattern UV_RUN_NOWAIT :: UVRunMode
pattern $bUV_RUN_NOWAIT :: UVRunMode
$mUV_RUN_NOWAIT :: forall r. UVRunMode -> (Void# -> r) -> (Void# -> r) -> r
UV_RUN_NOWAIT  = UVRunMode 2
{-# LINE 90 "Z/IO/UV/FFI.hsc" #-}

-- | Peek loop data pointer from uv loop  pointer.
peekUVLoopData :: Ptr UVLoop -> IO (Ptr UVLoopData)
peekUVLoopData :: Ptr UVLoop -> IO (Ptr UVLoopData)
peekUVLoopData Ptr UVLoop
p = (\Ptr UVLoop
hsc_ptr -> Ptr UVLoop -> UVSlot -> IO (Ptr UVLoopData)
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVLoop
hsc_ptr UVSlot
0) Ptr UVLoop
p
{-# LINE 94 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_loop_init      :: Int -> IO (Ptr UVLoop)
foreign import ccall unsafe hs_uv_loop_close     :: Ptr UVLoop -> IO ()

-- | uv_run with usafe FFI.
foreign import ccall unsafe "hs_uv_run" uv_run    :: Ptr UVLoop -> UVRunMode -> IO CInt

-- | uv_run with safe FFI.
foreign import ccall safe "hs_uv_run" uv_run_safe :: Ptr UVLoop -> UVRunMode -> IO CInt

foreign import ccall unsafe uv_loop_alive :: Ptr UVLoop -> IO CInt

--------------------------------------------------------------------------------
-- thread safe wake up

foreign import ccall unsafe hs_uv_wake_up_timer :: Ptr UVLoopData -> IO CInt
foreign import ccall unsafe hs_uv_wake_up_async :: Ptr UVLoopData -> IO CInt

--------------------------------------------------------------------------------
-- handle
data UVHandle

peekUVHandleData :: Ptr UVHandle -> IO UVSlotUnSafe
peekUVHandleData :: Ptr UVHandle -> IO UVSlotUnSafe
peekUVHandleData Ptr UVHandle
p =  UVSlot -> UVSlotUnSafe
UVSlotUnSafe (UVSlot -> UVSlotUnSafe) -> IO UVSlot -> IO UVSlotUnSafe
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((\Ptr UVHandle
hsc_ptr -> Ptr UVHandle -> UVSlot -> IO UVSlot
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVHandle
hsc_ptr UVSlot
0) Ptr UVHandle
p :: IO Int)
{-# LINE 118 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_fileno :: Ptr UVHandle -> IO UVFD
foreign import ccall unsafe hs_uv_handle_alloc :: Ptr UVLoop -> IO (Ptr UVHandle)
foreign import ccall unsafe hs_uv_handle_free  :: Ptr UVHandle -> IO ()
foreign import ccall unsafe hs_uv_handle_close :: Ptr UVHandle -> IO ()

--------------------------------------------------------------------------------
-- request

foreign import ccall unsafe hs_uv_cancel :: Ptr UVLoop -> UVSlot -> IO ()

--------------------------------------------------------------------------------
-- stream

foreign import ccall unsafe hs_uv_listen  :: Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe hs_uv_listen_resume :: Ptr UVHandle -> IO ()

foreign import ccall unsafe hs_uv_read_start :: Ptr UVHandle -> IO CInt
foreign import ccall unsafe uv_read_stop :: Ptr UVHandle -> IO CInt
foreign import ccall unsafe hs_uv_write :: Ptr UVHandle -> Ptr Word8 -> Int -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_accept_check_alloc :: Ptr UVHandle -> IO (Ptr UVHandle)
foreign import ccall unsafe hs_uv_accept_check_init :: Ptr UVHandle -> IO CInt
foreign import ccall unsafe hs_uv_accept_check_close :: Ptr UVHandle -> IO ()

--------------------------------------------------------------------------------
-- tcp & pipe
foreign import ccall unsafe hs_uv_tcp_open :: Ptr UVHandle -> UVFD -> IO CInt
foreign import ccall unsafe uv_tcp_init :: Ptr UVLoop -> Ptr UVHandle -> IO CInt
foreign import ccall unsafe uv_tcp_init_ex :: Ptr UVLoop -> Ptr UVHandle -> CUInt -> IO CInt
foreign import ccall unsafe uv_tcp_nodelay :: Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_tcp_keepalive :: Ptr UVHandle -> CInt -> CUInt -> IO CInt
foreign import ccall unsafe uv_tcp_getsockname :: Ptr UVHandle -> MBA# SocketAddr -> MBA# CInt -> IO CInt
foreign import ccall unsafe uv_tcp_getpeername :: Ptr UVHandle -> MBA# SocketAddr -> MBA# CInt -> IO CInt

uV_TCP_IPV6ONLY :: CUInt
uV_TCP_IPV6ONLY :: CUInt
uV_TCP_IPV6ONLY = CUInt
1
{-# LINE 155 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe uv_tcp_bind :: Ptr UVHandle -> MBA# SocketAddr -> CUInt -> IO CInt
foreign import ccall unsafe hs_uv_tcp_connect :: Ptr UVHandle -> MBA# SocketAddr -> IO UVSlotUnSafe
foreign import ccall unsafe hs_set_socket_reuse :: Ptr UVHandle -> IO CInt

foreign import ccall unsafe hs_uv_pipe_open :: Ptr UVHandle -> UVFD -> IO CInt
foreign import ccall unsafe uv_pipe_init :: Ptr UVLoop -> Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_pipe_bind :: Ptr UVHandle -> CString -> IO CInt
foreign import ccall unsafe hs_uv_pipe_connect :: Ptr UVHandle -> CString -> IO UVSlotUnSafe

--------------------------------------------------------------------------------
-- udp
foreign import ccall unsafe uv_udp_init :: Ptr UVLoop -> Ptr UVHandle -> IO CInt
foreign import ccall unsafe uv_udp_init_ex :: Ptr UVLoop -> Ptr UVHandle -> CUInt -> IO CInt
foreign import ccall unsafe uv_udp_open :: Ptr UVHandle -> UVFD -> IO CInt
foreign import ccall unsafe uv_udp_bind :: Ptr UVHandle -> MBA# SocketAddr -> UVUDPFlag -> IO CInt

newtype UVMembership = UVMembership CInt deriving (UVSlot -> UVMembership -> ShowS
[UVMembership] -> ShowS
UVMembership -> String
(UVSlot -> UVMembership -> ShowS)
-> (UVMembership -> String)
-> ([UVMembership] -> ShowS)
-> Show UVMembership
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVMembership] -> ShowS
$cshowList :: [UVMembership] -> ShowS
show :: UVMembership -> String
$cshow :: UVMembership -> String
showsPrec :: UVSlot -> UVMembership -> ShowS
$cshowsPrec :: UVSlot -> UVMembership -> ShowS
Show, UVMembership -> UVMembership -> Bool
(UVMembership -> UVMembership -> Bool)
-> (UVMembership -> UVMembership -> Bool) -> Eq UVMembership
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVMembership -> UVMembership -> Bool
$c/= :: UVMembership -> UVMembership -> Bool
== :: UVMembership -> UVMembership -> Bool
$c== :: UVMembership -> UVMembership -> Bool
Eq, Eq UVMembership
Eq UVMembership
-> (UVMembership -> UVMembership -> Ordering)
-> (UVMembership -> UVMembership -> Bool)
-> (UVMembership -> UVMembership -> Bool)
-> (UVMembership -> UVMembership -> Bool)
-> (UVMembership -> UVMembership -> Bool)
-> (UVMembership -> UVMembership -> UVMembership)
-> (UVMembership -> UVMembership -> UVMembership)
-> Ord UVMembership
UVMembership -> UVMembership -> Bool
UVMembership -> UVMembership -> Ordering
UVMembership -> UVMembership -> UVMembership
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVMembership -> UVMembership -> UVMembership
$cmin :: UVMembership -> UVMembership -> UVMembership
max :: UVMembership -> UVMembership -> UVMembership
$cmax :: UVMembership -> UVMembership -> UVMembership
>= :: UVMembership -> UVMembership -> Bool
$c>= :: UVMembership -> UVMembership -> Bool
> :: UVMembership -> UVMembership -> Bool
$c> :: UVMembership -> UVMembership -> Bool
<= :: UVMembership -> UVMembership -> Bool
$c<= :: UVMembership -> UVMembership -> Bool
< :: UVMembership -> UVMembership -> Bool
$c< :: UVMembership -> UVMembership -> Bool
compare :: UVMembership -> UVMembership -> Ordering
$ccompare :: UVMembership -> UVMembership -> Ordering
$cp1Ord :: Eq UVMembership
Ord)

pattern UV_LEAVE_GROUP :: UVMembership
pattern $bUV_LEAVE_GROUP :: UVMembership
$mUV_LEAVE_GROUP :: forall r. UVMembership -> (Void# -> r) -> (Void# -> r) -> r
UV_LEAVE_GROUP = UVMembership 0
{-# LINE 176 "Z/IO/UV/FFI.hsc" #-}
pattern UV_JOIN_GROUP :: UVMembership
pattern $bUV_JOIN_GROUP :: UVMembership
$mUV_JOIN_GROUP :: forall r. UVMembership -> (Void# -> r) -> (Void# -> r) -> r
UV_JOIN_GROUP = UVMembership 1
{-# LINE 178 "Z/IO/UV/FFI.hsc" #-}

newtype UVUDPFlag = UVUDPFlag CInt deriving (UVSlot -> UVUDPFlag -> ShowS
[UVUDPFlag] -> ShowS
UVUDPFlag -> String
(UVSlot -> UVUDPFlag -> ShowS)
-> (UVUDPFlag -> String)
-> ([UVUDPFlag] -> ShowS)
-> Show UVUDPFlag
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVUDPFlag] -> ShowS
$cshowList :: [UVUDPFlag] -> ShowS
show :: UVUDPFlag -> String
$cshow :: UVUDPFlag -> String
showsPrec :: UVSlot -> UVUDPFlag -> ShowS
$cshowsPrec :: UVSlot -> UVUDPFlag -> ShowS
Show, UVUDPFlag -> UVUDPFlag -> Bool
(UVUDPFlag -> UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVUDPFlag -> Bool) -> Eq UVUDPFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVUDPFlag -> UVUDPFlag -> Bool
$c/= :: UVUDPFlag -> UVUDPFlag -> Bool
== :: UVUDPFlag -> UVUDPFlag -> Bool
$c== :: UVUDPFlag -> UVUDPFlag -> Bool
Eq, Eq UVUDPFlag
Eq UVUDPFlag
-> (UVUDPFlag -> UVUDPFlag -> Ordering)
-> (UVUDPFlag -> UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> Ord UVUDPFlag
UVUDPFlag -> UVUDPFlag -> Bool
UVUDPFlag -> UVUDPFlag -> Ordering
UVUDPFlag -> UVUDPFlag -> UVUDPFlag
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$cmin :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
max :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$cmax :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
>= :: UVUDPFlag -> UVUDPFlag -> Bool
$c>= :: UVUDPFlag -> UVUDPFlag -> Bool
> :: UVUDPFlag -> UVUDPFlag -> Bool
$c> :: UVUDPFlag -> UVUDPFlag -> Bool
<= :: UVUDPFlag -> UVUDPFlag -> Bool
$c<= :: UVUDPFlag -> UVUDPFlag -> Bool
< :: UVUDPFlag -> UVUDPFlag -> Bool
$c< :: UVUDPFlag -> UVUDPFlag -> Bool
compare :: UVUDPFlag -> UVUDPFlag -> Ordering
$ccompare :: UVUDPFlag -> UVUDPFlag -> Ordering
$cp1Ord :: Eq UVUDPFlag
Ord, Ptr b -> UVSlot -> IO UVUDPFlag
Ptr b -> UVSlot -> UVUDPFlag -> IO ()
Ptr UVUDPFlag -> IO UVUDPFlag
Ptr UVUDPFlag -> UVSlot -> IO UVUDPFlag
Ptr UVUDPFlag -> UVSlot -> UVUDPFlag -> IO ()
Ptr UVUDPFlag -> UVUDPFlag -> IO ()
UVUDPFlag -> UVSlot
(UVUDPFlag -> UVSlot)
-> (UVUDPFlag -> UVSlot)
-> (Ptr UVUDPFlag -> UVSlot -> IO UVUDPFlag)
-> (Ptr UVUDPFlag -> UVSlot -> UVUDPFlag -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVUDPFlag)
-> (forall b. Ptr b -> UVSlot -> UVUDPFlag -> IO ())
-> (Ptr UVUDPFlag -> IO UVUDPFlag)
-> (Ptr UVUDPFlag -> UVUDPFlag -> IO ())
-> Storable UVUDPFlag
forall b. Ptr b -> UVSlot -> IO UVUDPFlag
forall b. Ptr b -> UVSlot -> UVUDPFlag -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVUDPFlag -> UVUDPFlag -> IO ()
$cpoke :: Ptr UVUDPFlag -> UVUDPFlag -> IO ()
peek :: Ptr UVUDPFlag -> IO UVUDPFlag
$cpeek :: Ptr UVUDPFlag -> IO UVUDPFlag
pokeByteOff :: Ptr b -> UVSlot -> UVUDPFlag -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVUDPFlag -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVUDPFlag
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVUDPFlag
pokeElemOff :: Ptr UVUDPFlag -> UVSlot -> UVUDPFlag -> IO ()
$cpokeElemOff :: Ptr UVUDPFlag -> UVSlot -> UVUDPFlag -> IO ()
peekElemOff :: Ptr UVUDPFlag -> UVSlot -> IO UVUDPFlag
$cpeekElemOff :: Ptr UVUDPFlag -> UVSlot -> IO UVUDPFlag
alignment :: UVUDPFlag -> UVSlot
$calignment :: UVUDPFlag -> UVSlot
sizeOf :: UVUDPFlag -> UVSlot
$csizeOf :: UVUDPFlag -> UVSlot
Storable, Eq UVUDPFlag
UVUDPFlag
Eq UVUDPFlag
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> UVUDPFlag
-> (UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> Bool)
-> (UVUDPFlag -> Maybe UVSlot)
-> (UVUDPFlag -> UVSlot)
-> (UVUDPFlag -> Bool)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot -> UVUDPFlag)
-> (UVUDPFlag -> UVSlot)
-> Bits UVUDPFlag
UVSlot -> UVUDPFlag
UVUDPFlag -> Bool
UVUDPFlag -> UVSlot
UVUDPFlag -> Maybe UVSlot
UVUDPFlag -> UVUDPFlag
UVUDPFlag -> UVSlot -> Bool
UVUDPFlag -> UVSlot -> UVUDPFlag
UVUDPFlag -> UVUDPFlag -> UVUDPFlag
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: UVUDPFlag -> UVSlot
$cpopCount :: UVUDPFlag -> UVSlot
rotateR :: UVUDPFlag -> UVSlot -> UVUDPFlag
$crotateR :: UVUDPFlag -> UVSlot -> UVUDPFlag
rotateL :: UVUDPFlag -> UVSlot -> UVUDPFlag
$crotateL :: UVUDPFlag -> UVSlot -> UVUDPFlag
unsafeShiftR :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cunsafeShiftR :: UVUDPFlag -> UVSlot -> UVUDPFlag
shiftR :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cshiftR :: UVUDPFlag -> UVSlot -> UVUDPFlag
unsafeShiftL :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cunsafeShiftL :: UVUDPFlag -> UVSlot -> UVUDPFlag
shiftL :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cshiftL :: UVUDPFlag -> UVSlot -> UVUDPFlag
isSigned :: UVUDPFlag -> Bool
$cisSigned :: UVUDPFlag -> Bool
bitSize :: UVUDPFlag -> UVSlot
$cbitSize :: UVUDPFlag -> UVSlot
bitSizeMaybe :: UVUDPFlag -> Maybe UVSlot
$cbitSizeMaybe :: UVUDPFlag -> Maybe UVSlot
testBit :: UVUDPFlag -> UVSlot -> Bool
$ctestBit :: UVUDPFlag -> UVSlot -> Bool
complementBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
$ccomplementBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
clearBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cclearBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
setBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
$csetBit :: UVUDPFlag -> UVSlot -> UVUDPFlag
bit :: UVSlot -> UVUDPFlag
$cbit :: UVSlot -> UVUDPFlag
zeroBits :: UVUDPFlag
$czeroBits :: UVUDPFlag
rotate :: UVUDPFlag -> UVSlot -> UVUDPFlag
$crotate :: UVUDPFlag -> UVSlot -> UVUDPFlag
shift :: UVUDPFlag -> UVSlot -> UVUDPFlag
$cshift :: UVUDPFlag -> UVSlot -> UVUDPFlag
complement :: UVUDPFlag -> UVUDPFlag
$ccomplement :: UVUDPFlag -> UVUDPFlag
xor :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$cxor :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
.|. :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$c.|. :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
.&. :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$c.&. :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$cp1Bits :: Eq UVUDPFlag
Bits, Bits UVUDPFlag
Bits UVUDPFlag
-> (UVUDPFlag -> UVSlot)
-> (UVUDPFlag -> UVSlot)
-> (UVUDPFlag -> UVSlot)
-> FiniteBits UVUDPFlag
UVUDPFlag -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: UVUDPFlag -> UVSlot
$ccountTrailingZeros :: UVUDPFlag -> UVSlot
countLeadingZeros :: UVUDPFlag -> UVSlot
$ccountLeadingZeros :: UVUDPFlag -> UVSlot
finiteBitSize :: UVUDPFlag -> UVSlot
$cfiniteBitSize :: UVUDPFlag -> UVSlot
$cp1FiniteBits :: Bits UVUDPFlag
FiniteBits, Integer -> UVUDPFlag
UVUDPFlag -> UVUDPFlag
UVUDPFlag -> UVUDPFlag -> UVUDPFlag
(UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag)
-> (UVUDPFlag -> UVUDPFlag)
-> (Integer -> UVUDPFlag)
-> Num UVUDPFlag
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> UVUDPFlag
$cfromInteger :: Integer -> UVUDPFlag
signum :: UVUDPFlag -> UVUDPFlag
$csignum :: UVUDPFlag -> UVUDPFlag
abs :: UVUDPFlag -> UVUDPFlag
$cabs :: UVUDPFlag -> UVUDPFlag
negate :: UVUDPFlag -> UVUDPFlag
$cnegate :: UVUDPFlag -> UVUDPFlag
* :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$c* :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
- :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$c- :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
+ :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
$c+ :: UVUDPFlag -> UVUDPFlag -> UVUDPFlag
Num)

pattern UV_UDP_DEFAULT :: UVUDPFlag
pattern $bUV_UDP_DEFAULT :: UVUDPFlag
$mUV_UDP_DEFAULT :: forall r. UVUDPFlag -> (Void# -> r) -> (Void# -> r) -> r
UV_UDP_DEFAULT = UVUDPFlag 0
pattern UV_UDP_IPV6ONLY :: UVUDPFlag
pattern $bUV_UDP_IPV6ONLY :: UVUDPFlag
$mUV_UDP_IPV6ONLY :: forall r. UVUDPFlag -> (Void# -> r) -> (Void# -> r) -> r
UV_UDP_IPV6ONLY = UVUDPFlag 1
{-# LINE 185 "Z/IO/UV/FFI.hsc" #-}
pattern UV_UDP_REUSEADDR :: UVUDPFlag
pattern $bUV_UDP_REUSEADDR :: UVUDPFlag
$mUV_UDP_REUSEADDR :: forall r. UVUDPFlag -> (Void# -> r) -> (Void# -> r) -> r
UV_UDP_REUSEADDR = UVUDPFlag 4
{-# LINE 187 "Z/IO/UV/FFI.hsc" #-}

pattern UV_UDP_PARTIAL :: Int32
pattern $bUV_UDP_PARTIAL :: Int32
$mUV_UDP_PARTIAL :: forall r. Int32 -> (Void# -> r) -> (Void# -> r) -> r
UV_UDP_PARTIAL = 2
{-# LINE 190 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe uv_udp_connect
    :: Ptr UVHandle -> MBA# SocketAddr -> IO CInt
-- | Just pass null pointer as SocketAddr to disconnect
foreign import ccall unsafe "uv_udp_connect" uv_udp_disconnect
    :: Ptr UVHandle -> Ptr SocketAddr -> IO CInt

foreign import ccall unsafe uv_udp_set_membership ::
    Ptr UVHandle -> CString -> CString -> UVMembership -> IO CInt
foreign import ccall unsafe uv_udp_set_source_membership ::
    Ptr UVHandle -> CString -> CString -> CString -> UVMembership -> IO CInt

foreign import ccall unsafe uv_udp_set_multicast_loop :: Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_udp_set_multicast_ttl :: Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_udp_set_multicast_interface :: Ptr UVHandle -> CString -> IO CInt
foreign import ccall unsafe uv_udp_set_broadcast :: Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_udp_set_ttl :: Ptr UVHandle -> CInt -> IO CInt

foreign import ccall unsafe hs_uv_udp_recv_start :: Ptr UVHandle -> IO CInt
foreign import ccall unsafe uv_udp_recv_stop :: Ptr UVHandle -> IO CInt
foreign import ccall unsafe hs_uv_udp_send 
    :: Ptr UVHandle -> MBA# SocketAddr -> Ptr Word8 -> Int -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_udp_send_connected
    :: Ptr UVHandle -> Ptr Word8 -> Int -> IO UVSlotUnSafe
foreign import ccall unsafe uv_udp_getsockname 
    :: Ptr UVHandle -> MBA# SocketAddr -> MBA# CInt -> IO CInt
foreign import ccall unsafe uv_udp_getpeername
    :: Ptr UVHandle -> MBA# SocketAddr -> MBA# CInt -> IO CInt


--------------------------------------------------------------------------------
-- tty

-- | Terminal mode.
--
-- When in 'UV_TTY_MODE_RAW' mode, input is always available character-by-character,
-- not including modifiers. Additionally, all special processing of characters by the terminal is disabled, 
-- including echoing input characters. Note that CTRL+C will no longer cause a SIGINT when in this mode.
newtype UVTTYMode = UVTTYMode CInt
    deriving (UVTTYMode -> UVTTYMode -> Bool
(UVTTYMode -> UVTTYMode -> Bool)
-> (UVTTYMode -> UVTTYMode -> Bool) -> Eq UVTTYMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVTTYMode -> UVTTYMode -> Bool
$c/= :: UVTTYMode -> UVTTYMode -> Bool
== :: UVTTYMode -> UVTTYMode -> Bool
$c== :: UVTTYMode -> UVTTYMode -> Bool
Eq, Eq UVTTYMode
Eq UVTTYMode
-> (UVTTYMode -> UVTTYMode -> Ordering)
-> (UVTTYMode -> UVTTYMode -> Bool)
-> (UVTTYMode -> UVTTYMode -> Bool)
-> (UVTTYMode -> UVTTYMode -> Bool)
-> (UVTTYMode -> UVTTYMode -> Bool)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> Ord UVTTYMode
UVTTYMode -> UVTTYMode -> Bool
UVTTYMode -> UVTTYMode -> Ordering
UVTTYMode -> UVTTYMode -> UVTTYMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVTTYMode -> UVTTYMode -> UVTTYMode
$cmin :: UVTTYMode -> UVTTYMode -> UVTTYMode
max :: UVTTYMode -> UVTTYMode -> UVTTYMode
$cmax :: UVTTYMode -> UVTTYMode -> UVTTYMode
>= :: UVTTYMode -> UVTTYMode -> Bool
$c>= :: UVTTYMode -> UVTTYMode -> Bool
> :: UVTTYMode -> UVTTYMode -> Bool
$c> :: UVTTYMode -> UVTTYMode -> Bool
<= :: UVTTYMode -> UVTTYMode -> Bool
$c<= :: UVTTYMode -> UVTTYMode -> Bool
< :: UVTTYMode -> UVTTYMode -> Bool
$c< :: UVTTYMode -> UVTTYMode -> Bool
compare :: UVTTYMode -> UVTTYMode -> Ordering
$ccompare :: UVTTYMode -> UVTTYMode -> Ordering
$cp1Ord :: Eq UVTTYMode
Ord, ReadPrec [UVTTYMode]
ReadPrec UVTTYMode
UVSlot -> ReadS UVTTYMode
ReadS [UVTTYMode]
(UVSlot -> ReadS UVTTYMode)
-> ReadS [UVTTYMode]
-> ReadPrec UVTTYMode
-> ReadPrec [UVTTYMode]
-> Read UVTTYMode
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVTTYMode]
$creadListPrec :: ReadPrec [UVTTYMode]
readPrec :: ReadPrec UVTTYMode
$creadPrec :: ReadPrec UVTTYMode
readList :: ReadS [UVTTYMode]
$creadList :: ReadS [UVTTYMode]
readsPrec :: UVSlot -> ReadS UVTTYMode
$creadsPrec :: UVSlot -> ReadS UVTTYMode
Read, UVSlot -> UVTTYMode -> ShowS
[UVTTYMode] -> ShowS
UVTTYMode -> String
(UVSlot -> UVTTYMode -> ShowS)
-> (UVTTYMode -> String)
-> ([UVTTYMode] -> ShowS)
-> Show UVTTYMode
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVTTYMode] -> ShowS
$cshowList :: [UVTTYMode] -> ShowS
show :: UVTTYMode -> String
$cshow :: UVTTYMode -> String
showsPrec :: UVSlot -> UVTTYMode -> ShowS
$cshowsPrec :: UVSlot -> UVTTYMode -> ShowS
Show, Bits UVTTYMode
Bits UVTTYMode
-> (UVTTYMode -> UVSlot)
-> (UVTTYMode -> UVSlot)
-> (UVTTYMode -> UVSlot)
-> FiniteBits UVTTYMode
UVTTYMode -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: UVTTYMode -> UVSlot
$ccountTrailingZeros :: UVTTYMode -> UVSlot
countLeadingZeros :: UVTTYMode -> UVSlot
$ccountLeadingZeros :: UVTTYMode -> UVSlot
finiteBitSize :: UVTTYMode -> UVSlot
$cfiniteBitSize :: UVTTYMode -> UVSlot
$cp1FiniteBits :: Bits UVTTYMode
FiniteBits, Eq UVTTYMode
UVTTYMode
Eq UVTTYMode
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> UVTTYMode
-> (UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> Bool)
-> (UVTTYMode -> Maybe UVSlot)
-> (UVTTYMode -> UVSlot)
-> (UVTTYMode -> Bool)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot -> UVTTYMode)
-> (UVTTYMode -> UVSlot)
-> Bits UVTTYMode
UVSlot -> UVTTYMode
UVTTYMode -> Bool
UVTTYMode -> UVSlot
UVTTYMode -> Maybe UVSlot
UVTTYMode -> UVTTYMode
UVTTYMode -> UVSlot -> Bool
UVTTYMode -> UVSlot -> UVTTYMode
UVTTYMode -> UVTTYMode -> UVTTYMode
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: UVTTYMode -> UVSlot
$cpopCount :: UVTTYMode -> UVSlot
rotateR :: UVTTYMode -> UVSlot -> UVTTYMode
$crotateR :: UVTTYMode -> UVSlot -> UVTTYMode
rotateL :: UVTTYMode -> UVSlot -> UVTTYMode
$crotateL :: UVTTYMode -> UVSlot -> UVTTYMode
unsafeShiftR :: UVTTYMode -> UVSlot -> UVTTYMode
$cunsafeShiftR :: UVTTYMode -> UVSlot -> UVTTYMode
shiftR :: UVTTYMode -> UVSlot -> UVTTYMode
$cshiftR :: UVTTYMode -> UVSlot -> UVTTYMode
unsafeShiftL :: UVTTYMode -> UVSlot -> UVTTYMode
$cunsafeShiftL :: UVTTYMode -> UVSlot -> UVTTYMode
shiftL :: UVTTYMode -> UVSlot -> UVTTYMode
$cshiftL :: UVTTYMode -> UVSlot -> UVTTYMode
isSigned :: UVTTYMode -> Bool
$cisSigned :: UVTTYMode -> Bool
bitSize :: UVTTYMode -> UVSlot
$cbitSize :: UVTTYMode -> UVSlot
bitSizeMaybe :: UVTTYMode -> Maybe UVSlot
$cbitSizeMaybe :: UVTTYMode -> Maybe UVSlot
testBit :: UVTTYMode -> UVSlot -> Bool
$ctestBit :: UVTTYMode -> UVSlot -> Bool
complementBit :: UVTTYMode -> UVSlot -> UVTTYMode
$ccomplementBit :: UVTTYMode -> UVSlot -> UVTTYMode
clearBit :: UVTTYMode -> UVSlot -> UVTTYMode
$cclearBit :: UVTTYMode -> UVSlot -> UVTTYMode
setBit :: UVTTYMode -> UVSlot -> UVTTYMode
$csetBit :: UVTTYMode -> UVSlot -> UVTTYMode
bit :: UVSlot -> UVTTYMode
$cbit :: UVSlot -> UVTTYMode
zeroBits :: UVTTYMode
$czeroBits :: UVTTYMode
rotate :: UVTTYMode -> UVSlot -> UVTTYMode
$crotate :: UVTTYMode -> UVSlot -> UVTTYMode
shift :: UVTTYMode -> UVSlot -> UVTTYMode
$cshift :: UVTTYMode -> UVSlot -> UVTTYMode
complement :: UVTTYMode -> UVTTYMode
$ccomplement :: UVTTYMode -> UVTTYMode
xor :: UVTTYMode -> UVTTYMode -> UVTTYMode
$cxor :: UVTTYMode -> UVTTYMode -> UVTTYMode
.|. :: UVTTYMode -> UVTTYMode -> UVTTYMode
$c.|. :: UVTTYMode -> UVTTYMode -> UVTTYMode
.&. :: UVTTYMode -> UVTTYMode -> UVTTYMode
$c.&. :: UVTTYMode -> UVTTYMode -> UVTTYMode
$cp1Bits :: Eq UVTTYMode
Bits, Ptr b -> UVSlot -> IO UVTTYMode
Ptr b -> UVSlot -> UVTTYMode -> IO ()
Ptr UVTTYMode -> IO UVTTYMode
Ptr UVTTYMode -> UVSlot -> IO UVTTYMode
Ptr UVTTYMode -> UVSlot -> UVTTYMode -> IO ()
Ptr UVTTYMode -> UVTTYMode -> IO ()
UVTTYMode -> UVSlot
(UVTTYMode -> UVSlot)
-> (UVTTYMode -> UVSlot)
-> (Ptr UVTTYMode -> UVSlot -> IO UVTTYMode)
-> (Ptr UVTTYMode -> UVSlot -> UVTTYMode -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVTTYMode)
-> (forall b. Ptr b -> UVSlot -> UVTTYMode -> IO ())
-> (Ptr UVTTYMode -> IO UVTTYMode)
-> (Ptr UVTTYMode -> UVTTYMode -> IO ())
-> Storable UVTTYMode
forall b. Ptr b -> UVSlot -> IO UVTTYMode
forall b. Ptr b -> UVSlot -> UVTTYMode -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVTTYMode -> UVTTYMode -> IO ()
$cpoke :: Ptr UVTTYMode -> UVTTYMode -> IO ()
peek :: Ptr UVTTYMode -> IO UVTTYMode
$cpeek :: Ptr UVTTYMode -> IO UVTTYMode
pokeByteOff :: Ptr b -> UVSlot -> UVTTYMode -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVTTYMode -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVTTYMode
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVTTYMode
pokeElemOff :: Ptr UVTTYMode -> UVSlot -> UVTTYMode -> IO ()
$cpokeElemOff :: Ptr UVTTYMode -> UVSlot -> UVTTYMode -> IO ()
peekElemOff :: Ptr UVTTYMode -> UVSlot -> IO UVTTYMode
$cpeekElemOff :: Ptr UVTTYMode -> UVSlot -> IO UVTTYMode
alignment :: UVTTYMode -> UVSlot
$calignment :: UVTTYMode -> UVSlot
sizeOf :: UVTTYMode -> UVSlot
$csizeOf :: UVTTYMode -> UVSlot
Storable, Integer -> UVTTYMode
UVTTYMode -> UVTTYMode
UVTTYMode -> UVTTYMode -> UVTTYMode
(UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode)
-> (UVTTYMode -> UVTTYMode)
-> (Integer -> UVTTYMode)
-> Num UVTTYMode
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> UVTTYMode
$cfromInteger :: Integer -> UVTTYMode
signum :: UVTTYMode -> UVTTYMode
$csignum :: UVTTYMode -> UVTTYMode
abs :: UVTTYMode -> UVTTYMode
$cabs :: UVTTYMode -> UVTTYMode
negate :: UVTTYMode -> UVTTYMode
$cnegate :: UVTTYMode -> UVTTYMode
* :: UVTTYMode -> UVTTYMode -> UVTTYMode
$c* :: UVTTYMode -> UVTTYMode -> UVTTYMode
- :: UVTTYMode -> UVTTYMode -> UVTTYMode
$c- :: UVTTYMode -> UVTTYMode -> UVTTYMode
+ :: UVTTYMode -> UVTTYMode -> UVTTYMode
$c+ :: UVTTYMode -> UVTTYMode -> UVTTYMode
Num)

pattern UV_TTY_MODE_NORMAL :: UVTTYMode
pattern $bUV_TTY_MODE_NORMAL :: UVTTYMode
$mUV_TTY_MODE_NORMAL :: forall r. UVTTYMode -> (Void# -> r) -> (Void# -> r) -> r
UV_TTY_MODE_NORMAL = UVTTYMode 0
{-# LINE 233 "Z/IO/UV/FFI.hsc" #-}
pattern UV_TTY_MODE_RAW :: UVTTYMode
pattern $bUV_TTY_MODE_RAW :: UVTTYMode
$mUV_TTY_MODE_RAW :: forall r. UVTTYMode -> (Void# -> r) -> (Void# -> r) -> r
UV_TTY_MODE_RAW = UVTTYMode 1
{-# LINE 235 "Z/IO/UV/FFI.hsc" #-}
pattern UV_TTY_MODE_IO :: UVTTYMode
pattern $bUV_TTY_MODE_IO :: UVTTYMode
$mUV_TTY_MODE_IO :: forall r. UVTTYMode -> (Void# -> r) -> (Void# -> r) -> r
UV_TTY_MODE_IO = UVTTYMode 2
{-# LINE 237 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe uv_tty_init :: Ptr UVLoop -> Ptr UVHandle -> CInt -> IO CInt
foreign import ccall unsafe uv_tty_set_mode :: Ptr UVHandle -> UVTTYMode -> IO CInt
foreign import ccall unsafe uv_tty_get_winsize :: Ptr UVHandle -> MBA# CInt -> MBA# CInt -> IO CInt

--------------------------------------------------------------------------------
-- fs

newtype FileMode = FileMode CInt
    deriving (FileMode -> FileMode -> Bool
(FileMode -> FileMode -> Bool)
-> (FileMode -> FileMode -> Bool) -> Eq FileMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileMode -> FileMode -> Bool
$c/= :: FileMode -> FileMode -> Bool
== :: FileMode -> FileMode -> Bool
$c== :: FileMode -> FileMode -> Bool
Eq, Eq FileMode
Eq FileMode
-> (FileMode -> FileMode -> Ordering)
-> (FileMode -> FileMode -> Bool)
-> (FileMode -> FileMode -> Bool)
-> (FileMode -> FileMode -> Bool)
-> (FileMode -> FileMode -> Bool)
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode -> FileMode)
-> Ord FileMode
FileMode -> FileMode -> Bool
FileMode -> FileMode -> Ordering
FileMode -> FileMode -> FileMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: FileMode -> FileMode -> FileMode
$cmin :: FileMode -> FileMode -> FileMode
max :: FileMode -> FileMode -> FileMode
$cmax :: FileMode -> FileMode -> FileMode
>= :: FileMode -> FileMode -> Bool
$c>= :: FileMode -> FileMode -> Bool
> :: FileMode -> FileMode -> Bool
$c> :: FileMode -> FileMode -> Bool
<= :: FileMode -> FileMode -> Bool
$c<= :: FileMode -> FileMode -> Bool
< :: FileMode -> FileMode -> Bool
$c< :: FileMode -> FileMode -> Bool
compare :: FileMode -> FileMode -> Ordering
$ccompare :: FileMode -> FileMode -> Ordering
$cp1Ord :: Eq FileMode
Ord, ReadPrec [FileMode]
ReadPrec FileMode
UVSlot -> ReadS FileMode
ReadS [FileMode]
(UVSlot -> ReadS FileMode)
-> ReadS [FileMode]
-> ReadPrec FileMode
-> ReadPrec [FileMode]
-> Read FileMode
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FileMode]
$creadListPrec :: ReadPrec [FileMode]
readPrec :: ReadPrec FileMode
$creadPrec :: ReadPrec FileMode
readList :: ReadS [FileMode]
$creadList :: ReadS [FileMode]
readsPrec :: UVSlot -> ReadS FileMode
$creadsPrec :: UVSlot -> ReadS FileMode
Read, UVSlot -> FileMode -> ShowS
[FileMode] -> ShowS
FileMode -> String
(UVSlot -> FileMode -> ShowS)
-> (FileMode -> String) -> ([FileMode] -> ShowS) -> Show FileMode
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileMode] -> ShowS
$cshowList :: [FileMode] -> ShowS
show :: FileMode -> String
$cshow :: FileMode -> String
showsPrec :: UVSlot -> FileMode -> ShowS
$cshowsPrec :: UVSlot -> FileMode -> ShowS
Show, Bits FileMode
Bits FileMode
-> (FileMode -> UVSlot)
-> (FileMode -> UVSlot)
-> (FileMode -> UVSlot)
-> FiniteBits FileMode
FileMode -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: FileMode -> UVSlot
$ccountTrailingZeros :: FileMode -> UVSlot
countLeadingZeros :: FileMode -> UVSlot
$ccountLeadingZeros :: FileMode -> UVSlot
finiteBitSize :: FileMode -> UVSlot
$cfiniteBitSize :: FileMode -> UVSlot
$cp1FiniteBits :: Bits FileMode
FiniteBits, Eq FileMode
FileMode
Eq FileMode
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> FileMode
-> (UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> Bool)
-> (FileMode -> Maybe UVSlot)
-> (FileMode -> UVSlot)
-> (FileMode -> Bool)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot -> FileMode)
-> (FileMode -> UVSlot)
-> Bits FileMode
UVSlot -> FileMode
FileMode -> Bool
FileMode -> UVSlot
FileMode -> Maybe UVSlot
FileMode -> FileMode
FileMode -> UVSlot -> Bool
FileMode -> UVSlot -> FileMode
FileMode -> FileMode -> FileMode
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: FileMode -> UVSlot
$cpopCount :: FileMode -> UVSlot
rotateR :: FileMode -> UVSlot -> FileMode
$crotateR :: FileMode -> UVSlot -> FileMode
rotateL :: FileMode -> UVSlot -> FileMode
$crotateL :: FileMode -> UVSlot -> FileMode
unsafeShiftR :: FileMode -> UVSlot -> FileMode
$cunsafeShiftR :: FileMode -> UVSlot -> FileMode
shiftR :: FileMode -> UVSlot -> FileMode
$cshiftR :: FileMode -> UVSlot -> FileMode
unsafeShiftL :: FileMode -> UVSlot -> FileMode
$cunsafeShiftL :: FileMode -> UVSlot -> FileMode
shiftL :: FileMode -> UVSlot -> FileMode
$cshiftL :: FileMode -> UVSlot -> FileMode
isSigned :: FileMode -> Bool
$cisSigned :: FileMode -> Bool
bitSize :: FileMode -> UVSlot
$cbitSize :: FileMode -> UVSlot
bitSizeMaybe :: FileMode -> Maybe UVSlot
$cbitSizeMaybe :: FileMode -> Maybe UVSlot
testBit :: FileMode -> UVSlot -> Bool
$ctestBit :: FileMode -> UVSlot -> Bool
complementBit :: FileMode -> UVSlot -> FileMode
$ccomplementBit :: FileMode -> UVSlot -> FileMode
clearBit :: FileMode -> UVSlot -> FileMode
$cclearBit :: FileMode -> UVSlot -> FileMode
setBit :: FileMode -> UVSlot -> FileMode
$csetBit :: FileMode -> UVSlot -> FileMode
bit :: UVSlot -> FileMode
$cbit :: UVSlot -> FileMode
zeroBits :: FileMode
$czeroBits :: FileMode
rotate :: FileMode -> UVSlot -> FileMode
$crotate :: FileMode -> UVSlot -> FileMode
shift :: FileMode -> UVSlot -> FileMode
$cshift :: FileMode -> UVSlot -> FileMode
complement :: FileMode -> FileMode
$ccomplement :: FileMode -> FileMode
xor :: FileMode -> FileMode -> FileMode
$cxor :: FileMode -> FileMode -> FileMode
.|. :: FileMode -> FileMode -> FileMode
$c.|. :: FileMode -> FileMode -> FileMode
.&. :: FileMode -> FileMode -> FileMode
$c.&. :: FileMode -> FileMode -> FileMode
$cp1Bits :: Eq FileMode
Bits, Ptr b -> UVSlot -> IO FileMode
Ptr b -> UVSlot -> FileMode -> IO ()
Ptr FileMode -> IO FileMode
Ptr FileMode -> UVSlot -> IO FileMode
Ptr FileMode -> UVSlot -> FileMode -> IO ()
Ptr FileMode -> FileMode -> IO ()
FileMode -> UVSlot
(FileMode -> UVSlot)
-> (FileMode -> UVSlot)
-> (Ptr FileMode -> UVSlot -> IO FileMode)
-> (Ptr FileMode -> UVSlot -> FileMode -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO FileMode)
-> (forall b. Ptr b -> UVSlot -> FileMode -> IO ())
-> (Ptr FileMode -> IO FileMode)
-> (Ptr FileMode -> FileMode -> IO ())
-> Storable FileMode
forall b. Ptr b -> UVSlot -> IO FileMode
forall b. Ptr b -> UVSlot -> FileMode -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr FileMode -> FileMode -> IO ()
$cpoke :: Ptr FileMode -> FileMode -> IO ()
peek :: Ptr FileMode -> IO FileMode
$cpeek :: Ptr FileMode -> IO FileMode
pokeByteOff :: Ptr b -> UVSlot -> FileMode -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> FileMode -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO FileMode
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO FileMode
pokeElemOff :: Ptr FileMode -> UVSlot -> FileMode -> IO ()
$cpokeElemOff :: Ptr FileMode -> UVSlot -> FileMode -> IO ()
peekElemOff :: Ptr FileMode -> UVSlot -> IO FileMode
$cpeekElemOff :: Ptr FileMode -> UVSlot -> IO FileMode
alignment :: FileMode -> UVSlot
$calignment :: FileMode -> UVSlot
sizeOf :: FileMode -> UVSlot
$csizeOf :: FileMode -> UVSlot
Storable, Integer -> FileMode
FileMode -> FileMode
FileMode -> FileMode -> FileMode
(FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode -> FileMode)
-> (FileMode -> FileMode)
-> (FileMode -> FileMode)
-> (FileMode -> FileMode)
-> (Integer -> FileMode)
-> Num FileMode
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> FileMode
$cfromInteger :: Integer -> FileMode
signum :: FileMode -> FileMode
$csignum :: FileMode -> FileMode
abs :: FileMode -> FileMode
$cabs :: FileMode -> FileMode
negate :: FileMode -> FileMode
$cnegate :: FileMode -> FileMode
* :: FileMode -> FileMode -> FileMode
$c* :: FileMode -> FileMode -> FileMode
- :: FileMode -> FileMode -> FileMode
$c- :: FileMode -> FileMode -> FileMode
+ :: FileMode -> FileMode -> FileMode
$c+ :: FileMode -> FileMode -> FileMode
Num)

-- | 00700 user (file owner) has read, write and execute permission
pattern S_IRWXU :: FileMode
pattern $bS_IRWXU :: FileMode
$mS_IRWXU :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IRWXU = FileMode 448
{-# LINE 251 "Z/IO/UV/FFI.hsc" #-}

-- | 00400 user has read permission
pattern S_IRUSR :: FileMode
pattern $bS_IRUSR :: FileMode
$mS_IRUSR :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IRUSR = FileMode 256
{-# LINE 255 "Z/IO/UV/FFI.hsc" #-}

-- | 00200 user has write permission
pattern S_IWUSR :: FileMode
pattern $bS_IWUSR :: FileMode
$mS_IWUSR :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IWUSR = FileMode 128
{-# LINE 259 "Z/IO/UV/FFI.hsc" #-}

-- | 00100 user has execute permission
pattern S_IXUSR :: FileMode
pattern $bS_IXUSR :: FileMode
$mS_IXUSR :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IXUSR = FileMode 64
{-# LINE 263 "Z/IO/UV/FFI.hsc" #-}

-- | 00070 group has read, write and execute permission
pattern S_IRWXG :: FileMode
pattern $bS_IRWXG :: FileMode
$mS_IRWXG :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IRWXG = FileMode 56
{-# LINE 267 "Z/IO/UV/FFI.hsc" #-}

-- | 00040 group has read permission
pattern S_IRGRP :: FileMode
pattern $bS_IRGRP :: FileMode
$mS_IRGRP :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IRGRP = FileMode 32
{-# LINE 271 "Z/IO/UV/FFI.hsc" #-}

-- | 00020 group has write permission
pattern S_IWGRP :: FileMode
pattern $bS_IWGRP :: FileMode
$mS_IWGRP :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IWGRP = FileMode 16
{-# LINE 275 "Z/IO/UV/FFI.hsc" #-}

-- | 00010 group has execute permission
pattern S_IXGRP :: FileMode
pattern $bS_IXGRP :: FileMode
$mS_IXGRP :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IXGRP = FileMode 8
{-# LINE 279 "Z/IO/UV/FFI.hsc" #-}

-- | 00007 others have read, write and execute permission
pattern S_IRWXO :: FileMode
pattern $bS_IRWXO :: FileMode
$mS_IRWXO :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IRWXO = FileMode 7
{-# LINE 283 "Z/IO/UV/FFI.hsc" #-}

-- | 00004 others have read permission
pattern S_IROTH :: FileMode
pattern $bS_IROTH :: FileMode
$mS_IROTH :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IROTH = FileMode 4
{-# LINE 287 "Z/IO/UV/FFI.hsc" #-}

-- | 00002 others have write permission
pattern S_IWOTH :: FileMode
pattern $bS_IWOTH :: FileMode
$mS_IWOTH :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IWOTH = FileMode 2
{-# LINE 291 "Z/IO/UV/FFI.hsc" #-}

-- | 00001 others have execute permission
pattern S_IXOTH :: FileMode
pattern $bS_IXOTH :: FileMode
$mS_IXOTH :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
S_IXOTH = FileMode 1
{-# LINE 295 "Z/IO/UV/FFI.hsc" #-}

-- | Default mode for open, 0o666(readable and writable).
pattern DEFAULT_MODE :: FileMode
pattern $bDEFAULT_MODE :: FileMode
$mDEFAULT_MODE :: forall r. FileMode -> (Void# -> r) -> (Void# -> r) -> r
DEFAULT_MODE = FileMode 0o666

-- non-threaded functions
foreign import ccall unsafe hs_uv_fs_open    :: CString -> FileFlag -> FileMode -> IO UVFD
foreign import ccall unsafe hs_uv_fs_close   :: UVFD -> IO Int
foreign import ccall unsafe hs_uv_fs_read    :: UVFD -> Ptr Word8 -> Int -> Int64 -> IO Int
foreign import ccall unsafe hs_uv_fs_write   :: UVFD -> Ptr Word8 -> Int -> Int64 -> IO Int
foreign import ccall unsafe hs_uv_fs_unlink  :: CString -> IO Int
foreign import ccall unsafe hs_uv_fs_mkdir   :: CString -> FileMode -> IO Int
foreign import ccall unsafe hs_uv_fs_rmdir   :: CString -> IO Int
foreign import ccall unsafe hs_uv_fs_mkdtemp :: CString -> Int -> CString -> IO Int

-- threaded functions
foreign import ccall unsafe hs_uv_fs_open_threaded 
    :: CString -> FileFlag -> FileMode -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_close_threaded 
    :: UVFD -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_read_threaded  
    :: UVFD -> Ptr Word8 -> Int -> Int64 -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_write_threaded 
    :: UVFD -> Ptr Word8 -> Int -> Int64 -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_unlink_threaded
    :: CString -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_mkdir_threaded 
    :: CString -> FileMode -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_rmdir_threaded 
    :: CString -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_mkdtemp_threaded 
    :: CString -> Int -> CString -> Ptr UVLoop -> IO UVSlotUnSafe

newtype FileFlag = FileFlag CInt
    deriving (FileFlag -> FileFlag -> Bool
(FileFlag -> FileFlag -> Bool)
-> (FileFlag -> FileFlag -> Bool) -> Eq FileFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileFlag -> FileFlag -> Bool
$c/= :: FileFlag -> FileFlag -> Bool
== :: FileFlag -> FileFlag -> Bool
$c== :: FileFlag -> FileFlag -> Bool
Eq, Eq FileFlag
Eq FileFlag
-> (FileFlag -> FileFlag -> Ordering)
-> (FileFlag -> FileFlag -> Bool)
-> (FileFlag -> FileFlag -> Bool)
-> (FileFlag -> FileFlag -> Bool)
-> (FileFlag -> FileFlag -> Bool)
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag -> FileFlag)
-> Ord FileFlag
FileFlag -> FileFlag -> Bool
FileFlag -> FileFlag -> Ordering
FileFlag -> FileFlag -> FileFlag
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: FileFlag -> FileFlag -> FileFlag
$cmin :: FileFlag -> FileFlag -> FileFlag
max :: FileFlag -> FileFlag -> FileFlag
$cmax :: FileFlag -> FileFlag -> FileFlag
>= :: FileFlag -> FileFlag -> Bool
$c>= :: FileFlag -> FileFlag -> Bool
> :: FileFlag -> FileFlag -> Bool
$c> :: FileFlag -> FileFlag -> Bool
<= :: FileFlag -> FileFlag -> Bool
$c<= :: FileFlag -> FileFlag -> Bool
< :: FileFlag -> FileFlag -> Bool
$c< :: FileFlag -> FileFlag -> Bool
compare :: FileFlag -> FileFlag -> Ordering
$ccompare :: FileFlag -> FileFlag -> Ordering
$cp1Ord :: Eq FileFlag
Ord, ReadPrec [FileFlag]
ReadPrec FileFlag
UVSlot -> ReadS FileFlag
ReadS [FileFlag]
(UVSlot -> ReadS FileFlag)
-> ReadS [FileFlag]
-> ReadPrec FileFlag
-> ReadPrec [FileFlag]
-> Read FileFlag
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FileFlag]
$creadListPrec :: ReadPrec [FileFlag]
readPrec :: ReadPrec FileFlag
$creadPrec :: ReadPrec FileFlag
readList :: ReadS [FileFlag]
$creadList :: ReadS [FileFlag]
readsPrec :: UVSlot -> ReadS FileFlag
$creadsPrec :: UVSlot -> ReadS FileFlag
Read, UVSlot -> FileFlag -> ShowS
[FileFlag] -> ShowS
FileFlag -> String
(UVSlot -> FileFlag -> ShowS)
-> (FileFlag -> String) -> ([FileFlag] -> ShowS) -> Show FileFlag
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileFlag] -> ShowS
$cshowList :: [FileFlag] -> ShowS
show :: FileFlag -> String
$cshow :: FileFlag -> String
showsPrec :: UVSlot -> FileFlag -> ShowS
$cshowsPrec :: UVSlot -> FileFlag -> ShowS
Show, Bits FileFlag
Bits FileFlag
-> (FileFlag -> UVSlot)
-> (FileFlag -> UVSlot)
-> (FileFlag -> UVSlot)
-> FiniteBits FileFlag
FileFlag -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: FileFlag -> UVSlot
$ccountTrailingZeros :: FileFlag -> UVSlot
countLeadingZeros :: FileFlag -> UVSlot
$ccountLeadingZeros :: FileFlag -> UVSlot
finiteBitSize :: FileFlag -> UVSlot
$cfiniteBitSize :: FileFlag -> UVSlot
$cp1FiniteBits :: Bits FileFlag
FiniteBits, Eq FileFlag
FileFlag
Eq FileFlag
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> FileFlag
-> (UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> Bool)
-> (FileFlag -> Maybe UVSlot)
-> (FileFlag -> UVSlot)
-> (FileFlag -> Bool)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot -> FileFlag)
-> (FileFlag -> UVSlot)
-> Bits FileFlag
UVSlot -> FileFlag
FileFlag -> Bool
FileFlag -> UVSlot
FileFlag -> Maybe UVSlot
FileFlag -> FileFlag
FileFlag -> UVSlot -> Bool
FileFlag -> UVSlot -> FileFlag
FileFlag -> FileFlag -> FileFlag
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: FileFlag -> UVSlot
$cpopCount :: FileFlag -> UVSlot
rotateR :: FileFlag -> UVSlot -> FileFlag
$crotateR :: FileFlag -> UVSlot -> FileFlag
rotateL :: FileFlag -> UVSlot -> FileFlag
$crotateL :: FileFlag -> UVSlot -> FileFlag
unsafeShiftR :: FileFlag -> UVSlot -> FileFlag
$cunsafeShiftR :: FileFlag -> UVSlot -> FileFlag
shiftR :: FileFlag -> UVSlot -> FileFlag
$cshiftR :: FileFlag -> UVSlot -> FileFlag
unsafeShiftL :: FileFlag -> UVSlot -> FileFlag
$cunsafeShiftL :: FileFlag -> UVSlot -> FileFlag
shiftL :: FileFlag -> UVSlot -> FileFlag
$cshiftL :: FileFlag -> UVSlot -> FileFlag
isSigned :: FileFlag -> Bool
$cisSigned :: FileFlag -> Bool
bitSize :: FileFlag -> UVSlot
$cbitSize :: FileFlag -> UVSlot
bitSizeMaybe :: FileFlag -> Maybe UVSlot
$cbitSizeMaybe :: FileFlag -> Maybe UVSlot
testBit :: FileFlag -> UVSlot -> Bool
$ctestBit :: FileFlag -> UVSlot -> Bool
complementBit :: FileFlag -> UVSlot -> FileFlag
$ccomplementBit :: FileFlag -> UVSlot -> FileFlag
clearBit :: FileFlag -> UVSlot -> FileFlag
$cclearBit :: FileFlag -> UVSlot -> FileFlag
setBit :: FileFlag -> UVSlot -> FileFlag
$csetBit :: FileFlag -> UVSlot -> FileFlag
bit :: UVSlot -> FileFlag
$cbit :: UVSlot -> FileFlag
zeroBits :: FileFlag
$czeroBits :: FileFlag
rotate :: FileFlag -> UVSlot -> FileFlag
$crotate :: FileFlag -> UVSlot -> FileFlag
shift :: FileFlag -> UVSlot -> FileFlag
$cshift :: FileFlag -> UVSlot -> FileFlag
complement :: FileFlag -> FileFlag
$ccomplement :: FileFlag -> FileFlag
xor :: FileFlag -> FileFlag -> FileFlag
$cxor :: FileFlag -> FileFlag -> FileFlag
.|. :: FileFlag -> FileFlag -> FileFlag
$c.|. :: FileFlag -> FileFlag -> FileFlag
.&. :: FileFlag -> FileFlag -> FileFlag
$c.&. :: FileFlag -> FileFlag -> FileFlag
$cp1Bits :: Eq FileFlag
Bits, Ptr b -> UVSlot -> IO FileFlag
Ptr b -> UVSlot -> FileFlag -> IO ()
Ptr FileFlag -> IO FileFlag
Ptr FileFlag -> UVSlot -> IO FileFlag
Ptr FileFlag -> UVSlot -> FileFlag -> IO ()
Ptr FileFlag -> FileFlag -> IO ()
FileFlag -> UVSlot
(FileFlag -> UVSlot)
-> (FileFlag -> UVSlot)
-> (Ptr FileFlag -> UVSlot -> IO FileFlag)
-> (Ptr FileFlag -> UVSlot -> FileFlag -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO FileFlag)
-> (forall b. Ptr b -> UVSlot -> FileFlag -> IO ())
-> (Ptr FileFlag -> IO FileFlag)
-> (Ptr FileFlag -> FileFlag -> IO ())
-> Storable FileFlag
forall b. Ptr b -> UVSlot -> IO FileFlag
forall b. Ptr b -> UVSlot -> FileFlag -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr FileFlag -> FileFlag -> IO ()
$cpoke :: Ptr FileFlag -> FileFlag -> IO ()
peek :: Ptr FileFlag -> IO FileFlag
$cpeek :: Ptr FileFlag -> IO FileFlag
pokeByteOff :: Ptr b -> UVSlot -> FileFlag -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> FileFlag -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO FileFlag
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO FileFlag
pokeElemOff :: Ptr FileFlag -> UVSlot -> FileFlag -> IO ()
$cpokeElemOff :: Ptr FileFlag -> UVSlot -> FileFlag -> IO ()
peekElemOff :: Ptr FileFlag -> UVSlot -> IO FileFlag
$cpeekElemOff :: Ptr FileFlag -> UVSlot -> IO FileFlag
alignment :: FileFlag -> UVSlot
$calignment :: FileFlag -> UVSlot
sizeOf :: FileFlag -> UVSlot
$csizeOf :: FileFlag -> UVSlot
Storable, Integer -> FileFlag
FileFlag -> FileFlag
FileFlag -> FileFlag -> FileFlag
(FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag -> FileFlag)
-> (FileFlag -> FileFlag)
-> (FileFlag -> FileFlag)
-> (FileFlag -> FileFlag)
-> (Integer -> FileFlag)
-> Num FileFlag
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> FileFlag
$cfromInteger :: Integer -> FileFlag
signum :: FileFlag -> FileFlag
$csignum :: FileFlag -> FileFlag
abs :: FileFlag -> FileFlag
$cabs :: FileFlag -> FileFlag
negate :: FileFlag -> FileFlag
$cnegate :: FileFlag -> FileFlag
* :: FileFlag -> FileFlag -> FileFlag
$c* :: FileFlag -> FileFlag -> FileFlag
- :: FileFlag -> FileFlag -> FileFlag
$c- :: FileFlag -> FileFlag -> FileFlag
+ :: FileFlag -> FileFlag -> FileFlag
$c+ :: FileFlag -> FileFlag -> FileFlag
Num)

-- | The file is opened in append mode. Before each write, the file offset is positioned at the end of the file.
pattern O_APPEND :: FileFlag
pattern $bO_APPEND :: FileFlag
$mO_APPEND :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_APPEND = FileFlag 1024
{-# LINE 334 "Z/IO/UV/FFI.hsc" #-}

-- | The file is created if it does not already exist.
pattern O_CREAT :: FileFlag
pattern $bO_CREAT :: FileFlag
$mO_CREAT :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_CREAT = FileFlag 64
{-# LINE 338 "Z/IO/UV/FFI.hsc" #-}

-- | File IO is done directly to and from user-space buffers, which must be aligned. Buffer size and address should be a multiple of the physical sector size of the block device, (DO NOT USE WITH Z-IO's @BufferedIO@)
pattern O_DIRECT :: FileFlag
pattern $bO_DIRECT :: FileFlag
$mO_DIRECT :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_DIRECT = FileFlag 16384
{-# LINE 342 "Z/IO/UV/FFI.hsc" #-}

-- | If the path is not a directory, fail the open. (Not useful on regular file)
--
-- Note 'o_DIRECTORY' is not supported on Windows.
pattern O_DIRECTORY :: FileFlag
pattern $bO_DIRECTORY :: FileFlag
$mO_DIRECTORY :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_DIRECTORY = FileFlag 65536
{-# LINE 348 "Z/IO/UV/FFI.hsc" #-}

-- |The file is opened for synchronous IO. Write operations will complete once all data and a minimum of metadata are flushed to disk.
--
-- Note 'o_DSYNC' is supported on Windows via @FILE_FLAG_WRITE_THROUGH@.
pattern O_DSYNC :: FileFlag
pattern $bO_DSYNC :: FileFlag
$mO_DSYNC :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_DSYNC = FileFlag 4096
{-# LINE 354 "Z/IO/UV/FFI.hsc" #-}

-- | If the 'o_CREAT' flag is set and the file already exists, fail the open.
--
-- Note In general, the behavior of 'o_EXCL' is undefined if it is used without 'o_CREAT'. There is one exception: on 
-- Linux 2.6 and later, 'o_EXCL' can be used without 'o_CREAT' if pathname refers to a block device. If the block 
-- device is in use by the system (e.g., mounted), the open will fail with the error @EBUSY@.
pattern O_EXCL :: FileFlag
pattern $bO_EXCL :: FileFlag
$mO_EXCL :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_EXCL = FileFlag 128
{-# LINE 362 "Z/IO/UV/FFI.hsc" #-}

-- | Atomically obtain an exclusive lock.
--
-- Note UV_FS_O_EXLOCK is only supported on macOS and Windows.
-- (libuv: Changed in version 1.17.0: support is added for Windows.)
pattern O_EXLOCK :: FileFlag
pattern $bO_EXLOCK :: FileFlag
$mO_EXLOCK :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_EXLOCK = FileFlag 0
{-# LINE 369 "Z/IO/UV/FFI.hsc" #-}

-- | Do not update the file access time when the file is read.
-- 
-- Note 'o_NOATIME' is not supported on Windows.
pattern O_NOATIME :: FileFlag
pattern $bO_NOATIME :: FileFlag
$mO_NOATIME :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_NOATIME = FileFlag 262144
{-# LINE 375 "Z/IO/UV/FFI.hsc" #-}

-- | If the path identifies a terminal device, opening the path will not cause that terminal to become the controlling terminal for the process (if the process does not already have one). (Not sure if this flag is useful)
--
-- Note 'o_NOCTTY' is not supported on Windows.
pattern O_NOCTTY :: FileFlag
pattern $bO_NOCTTY :: FileFlag
$mO_NOCTTY :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_NOCTTY = FileFlag 256
{-# LINE 381 "Z/IO/UV/FFI.hsc" #-}

-- | If the path is a symbolic link, fail the open.
--
-- Note 'o_NOFOLLOW' is not supported on Windows.
pattern O_NOFOLLOW :: FileFlag
pattern $bO_NOFOLLOW :: FileFlag
$mO_NOFOLLOW :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_NOFOLLOW = FileFlag 131072
{-# LINE 387 "Z/IO/UV/FFI.hsc" #-}

-- | Open the file in nonblocking mode if possible. (Definitely not useful in Z-IO)
--
-- Note 'o_NONBLOCK' is not supported on Windows. (Not useful on regular file anyway)
pattern O_NONBLOCK :: FileFlag
pattern $bO_NONBLOCK :: FileFlag
$mO_NONBLOCK :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_NONBLOCK = FileFlag 2048
{-# LINE 393 "Z/IO/UV/FFI.hsc" #-}

-- | Access is intended to be random. The system can use this as a hint to optimize file caching.
-- 
-- Note 'o_RANDOM' is only supported on Windows via @FILE_FLAG_RANDOM_ACCESS@.
pattern O_RANDOM :: FileFlag
pattern $bO_RANDOM :: FileFlag
$mO_RANDOM :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_RANDOM = FileFlag 0
{-# LINE 399 "Z/IO/UV/FFI.hsc" #-}

-- | Open the file for read-only access.
pattern O_RDONLY :: FileFlag
pattern $bO_RDONLY :: FileFlag
$mO_RDONLY :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_RDONLY = FileFlag 0
{-# LINE 403 "Z/IO/UV/FFI.hsc" #-}

-- | Open the file for read-write access.
pattern O_RDWR :: FileFlag
pattern $bO_RDWR :: FileFlag
$mO_RDWR :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_RDWR = FileFlag 2
{-# LINE 407 "Z/IO/UV/FFI.hsc" #-}


-- | Access is intended to be sequential from beginning to end. The system can use this as a hint to optimize file caching.
-- 
-- Note 'o_SEQUENTIAL' is only supported on Windows via @FILE_FLAG_SEQUENTIAL_SCAN@.
pattern O_SEQUENTIAL :: FileFlag
pattern $bO_SEQUENTIAL :: FileFlag
$mO_SEQUENTIAL :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_SEQUENTIAL = FileFlag 0
{-# LINE 414 "Z/IO/UV/FFI.hsc" #-}

-- | The file is temporary and should not be flushed to disk if possible.
--
-- Note 'o_SHORT_LIVED' is only supported on Windows via @FILE_ATTRIBUTE_TEMPORARY@.
pattern O_SHORT_LIVED :: FileFlag
pattern $bO_SHORT_LIVED :: FileFlag
$mO_SHORT_LIVED :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_SHORT_LIVED = FileFlag 0
{-# LINE 420 "Z/IO/UV/FFI.hsc" #-}

-- | Open the symbolic link itself rather than the resource it points to.
pattern O_SYMLINK :: FileFlag
pattern $bO_SYMLINK :: FileFlag
$mO_SYMLINK :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_SYMLINK = FileFlag 0
{-# LINE 424 "Z/IO/UV/FFI.hsc" #-}

-- | The file is opened for synchronous IO. Write operations will complete once all data and all metadata are flushed to disk.
--
-- Note 'o_SYNC' is supported on Windows via @FILE_FLAG_WRITE_THROUGH@.
pattern O_SYNC :: FileFlag
pattern $bO_SYNC :: FileFlag
$mO_SYNC :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_SYNC = FileFlag 1052672
{-# LINE 430 "Z/IO/UV/FFI.hsc" #-}

-- | The file is temporary and should not be flushed to disk if possible.
--
-- Note 'o_TEMPORARY' is only supported on Windows via @FILE_ATTRIBUTE_TEMPORARY@.
pattern O_TEMPORARY :: FileFlag
pattern $bO_TEMPORARY :: FileFlag
$mO_TEMPORARY :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_TEMPORARY = FileFlag 0
{-# LINE 436 "Z/IO/UV/FFI.hsc" #-}

-- | If the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero.
pattern O_TRUNC :: FileFlag
pattern $bO_TRUNC :: FileFlag
$mO_TRUNC :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_TRUNC = FileFlag 512
{-# LINE 440 "Z/IO/UV/FFI.hsc" #-}

-- | Open the file for write-only access.
pattern O_WRONLY :: FileFlag
pattern $bO_WRONLY :: FileFlag
$mO_WRONLY :: forall r. FileFlag -> (Void# -> r) -> (Void# -> r) -> r
O_WRONLY = FileFlag 1
{-# LINE 444 "Z/IO/UV/FFI.hsc" #-}


{-# LINE 448 "Z/IO/UV/FFI.hsc" #-}
newtype UVDirEntType = UVDirEntType CChar

{-# LINE 450 "Z/IO/UV/FFI.hsc" #-}
    deriving (Eq, Ord, Read, Show, FiniteBits, Bits, Storable, Num)

data DirEntType
    = DirEntUnknown
    | DirEntFile
    | DirEntDir
    | DirEntLink
    | DirEntFIFO
    | DirEntSocket
    | DirEntChar
    | DirEntBlock
  deriving (ReadPrec [DirEntType]
ReadPrec DirEntType
UVSlot -> ReadS DirEntType
ReadS [DirEntType]
(UVSlot -> ReadS DirEntType)
-> ReadS [DirEntType]
-> ReadPrec DirEntType
-> ReadPrec [DirEntType]
-> Read DirEntType
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DirEntType]
$creadListPrec :: ReadPrec [DirEntType]
readPrec :: ReadPrec DirEntType
$creadPrec :: ReadPrec DirEntType
readList :: ReadS [DirEntType]
$creadList :: ReadS [DirEntType]
readsPrec :: UVSlot -> ReadS DirEntType
$creadsPrec :: UVSlot -> ReadS DirEntType
Read, UVSlot -> DirEntType -> ShowS
[DirEntType] -> ShowS
DirEntType -> String
(UVSlot -> DirEntType -> ShowS)
-> (DirEntType -> String)
-> ([DirEntType] -> ShowS)
-> Show DirEntType
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DirEntType] -> ShowS
$cshowList :: [DirEntType] -> ShowS
show :: DirEntType -> String
$cshow :: DirEntType -> String
showsPrec :: UVSlot -> DirEntType -> ShowS
$cshowsPrec :: UVSlot -> DirEntType -> ShowS
Show, DirEntType -> DirEntType -> Bool
(DirEntType -> DirEntType -> Bool)
-> (DirEntType -> DirEntType -> Bool) -> Eq DirEntType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DirEntType -> DirEntType -> Bool
$c/= :: DirEntType -> DirEntType -> Bool
== :: DirEntType -> DirEntType -> Bool
$c== :: DirEntType -> DirEntType -> Bool
Eq, Eq DirEntType
Eq DirEntType
-> (DirEntType -> DirEntType -> Ordering)
-> (DirEntType -> DirEntType -> Bool)
-> (DirEntType -> DirEntType -> Bool)
-> (DirEntType -> DirEntType -> Bool)
-> (DirEntType -> DirEntType -> Bool)
-> (DirEntType -> DirEntType -> DirEntType)
-> (DirEntType -> DirEntType -> DirEntType)
-> Ord DirEntType
DirEntType -> DirEntType -> Bool
DirEntType -> DirEntType -> Ordering
DirEntType -> DirEntType -> DirEntType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DirEntType -> DirEntType -> DirEntType
$cmin :: DirEntType -> DirEntType -> DirEntType
max :: DirEntType -> DirEntType -> DirEntType
$cmax :: DirEntType -> DirEntType -> DirEntType
>= :: DirEntType -> DirEntType -> Bool
$c>= :: DirEntType -> DirEntType -> Bool
> :: DirEntType -> DirEntType -> Bool
$c> :: DirEntType -> DirEntType -> Bool
<= :: DirEntType -> DirEntType -> Bool
$c<= :: DirEntType -> DirEntType -> Bool
< :: DirEntType -> DirEntType -> Bool
$c< :: DirEntType -> DirEntType -> Bool
compare :: DirEntType -> DirEntType -> Ordering
$ccompare :: DirEntType -> DirEntType -> Ordering
$cp1Ord :: Eq DirEntType
Ord, (forall x. DirEntType -> Rep DirEntType x)
-> (forall x. Rep DirEntType x -> DirEntType) -> Generic DirEntType
forall x. Rep DirEntType x -> DirEntType
forall x. DirEntType -> Rep DirEntType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DirEntType x -> DirEntType
$cfrom :: forall x. DirEntType -> Rep DirEntType x
Generic)

fromUVDirEntType :: UVDirEntType -> DirEntType
fromUVDirEntType :: UVDirEntType -> DirEntType
fromUVDirEntType UVDirEntType
t
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_FILE   = DirEntType
DirEntFile
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_DIR    = DirEntType
DirEntDir
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_LINK   = DirEntType
DirEntLink
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_FIFO   = DirEntType
DirEntFIFO
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_SOCKET = DirEntType
DirEntSocket
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_CHAR   = DirEntType
DirEntChar
    | UVDirEntType
t UVDirEntType -> UVDirEntType -> Bool
forall a. Eq a => a -> a -> Bool
== UVDirEntType
uV__DT_BLOCK  = DirEntType
DirEntBlock
    | Bool
otherwise          = DirEntType
DirEntUnknown

uV__DT_FILE     :: UVDirEntType
uV__DT_FILE :: UVDirEntType
uV__DT_FILE     = CChar -> UVDirEntType
UVDirEntType CChar
8
uV__DT_DIR      :: UVDirEntType
uV__DT_DIR :: UVDirEntType
uV__DT_DIR      = CChar -> UVDirEntType
UVDirEntType CChar
4
uV__DT_LINK     :: UVDirEntType
uV__DT_LINK :: UVDirEntType
uV__DT_LINK     = CChar -> UVDirEntType
UVDirEntType CChar
10
uV__DT_FIFO     :: UVDirEntType
uV__DT_FIFO :: UVDirEntType
uV__DT_FIFO     = CChar -> UVDirEntType
UVDirEntType CChar
1
uV__DT_SOCKET   :: UVDirEntType
uV__DT_SOCKET :: UVDirEntType
uV__DT_SOCKET   = CChar -> UVDirEntType
UVDirEntType CChar
12
uV__DT_CHAR     :: UVDirEntType
uV__DT_CHAR :: UVDirEntType
uV__DT_CHAR     = CChar -> UVDirEntType
UVDirEntType CChar
2
uV__DT_BLOCK    :: UVDirEntType
peekUVDirEnt :: Ptr UVDirEnt -> IO (CString, UVDirEntType)
uV__DT_BLOCK :: UVDirEntType
uV__DT_BLOCK    = CChar -> UVDirEntType
UVDirEntType CChar
6

{-# LINE 482 "Z/IO/UV/FFI.hsc" #-}

data UVDirEnt

peekUVDirEnt :: Ptr UVDirEnt -> IO (CString, UVDirEntType)

{-# LINE 487 "Z/IO/UV/FFI.hsc" #-}
peekUVDirEnt p = (,) ((\hsc_ptr -> hsc_ptr `plusPtr` 19) p) <$> ((\hsc_ptr -> peekByteOff hsc_ptr 18) p)
{-# LINE 488 "Z/IO/UV/FFI.hsc" #-}

{-# LINE 491 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_fs_scandir_cleanup
    :: Ptr (Ptr UVDirEnt) -> Int -> IO ()
foreign import ccall unsafe hs_uv_fs_scandir
    :: CString -> MBA# (Ptr UVDirEnt) -> IO Int
foreign import ccall unsafe hs_uv_fs_scandir_extra_cleanup 
    :: Ptr (Ptr (Ptr UVDirEnt)) -> Int -> IO ()
foreign import ccall unsafe hs_uv_fs_scandir_threaded
    :: CString -> Ptr (Ptr (Ptr UVDirEnt)) -> Ptr UVLoop -> IO UVSlotUnSafe

data UVTimeSpec = UVTimeSpec 
    { UVTimeSpec -> CLong
uvtSecond     :: {-# UNPACK #-} !CLong
    , UVTimeSpec -> CLong
uvtNanoSecond :: {-# UNPACK #-} !CLong
    } deriving (UVSlot -> UVTimeSpec -> ShowS
[UVTimeSpec] -> ShowS
UVTimeSpec -> String
(UVSlot -> UVTimeSpec -> ShowS)
-> (UVTimeSpec -> String)
-> ([UVTimeSpec] -> ShowS)
-> Show UVTimeSpec
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVTimeSpec] -> ShowS
$cshowList :: [UVTimeSpec] -> ShowS
show :: UVTimeSpec -> String
$cshow :: UVTimeSpec -> String
showsPrec :: UVSlot -> UVTimeSpec -> ShowS
$cshowsPrec :: UVSlot -> UVTimeSpec -> ShowS
Show, ReadPrec [UVTimeSpec]
ReadPrec UVTimeSpec
UVSlot -> ReadS UVTimeSpec
ReadS [UVTimeSpec]
(UVSlot -> ReadS UVTimeSpec)
-> ReadS [UVTimeSpec]
-> ReadPrec UVTimeSpec
-> ReadPrec [UVTimeSpec]
-> Read UVTimeSpec
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVTimeSpec]
$creadListPrec :: ReadPrec [UVTimeSpec]
readPrec :: ReadPrec UVTimeSpec
$creadPrec :: ReadPrec UVTimeSpec
readList :: ReadS [UVTimeSpec]
$creadList :: ReadS [UVTimeSpec]
readsPrec :: UVSlot -> ReadS UVTimeSpec
$creadsPrec :: UVSlot -> ReadS UVTimeSpec
Read, UVTimeSpec -> UVTimeSpec -> Bool
(UVTimeSpec -> UVTimeSpec -> Bool)
-> (UVTimeSpec -> UVTimeSpec -> Bool) -> Eq UVTimeSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVTimeSpec -> UVTimeSpec -> Bool
$c/= :: UVTimeSpec -> UVTimeSpec -> Bool
== :: UVTimeSpec -> UVTimeSpec -> Bool
$c== :: UVTimeSpec -> UVTimeSpec -> Bool
Eq, Eq UVTimeSpec
Eq UVTimeSpec
-> (UVTimeSpec -> UVTimeSpec -> Ordering)
-> (UVTimeSpec -> UVTimeSpec -> Bool)
-> (UVTimeSpec -> UVTimeSpec -> Bool)
-> (UVTimeSpec -> UVTimeSpec -> Bool)
-> (UVTimeSpec -> UVTimeSpec -> Bool)
-> (UVTimeSpec -> UVTimeSpec -> UVTimeSpec)
-> (UVTimeSpec -> UVTimeSpec -> UVTimeSpec)
-> Ord UVTimeSpec
UVTimeSpec -> UVTimeSpec -> Bool
UVTimeSpec -> UVTimeSpec -> Ordering
UVTimeSpec -> UVTimeSpec -> UVTimeSpec
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVTimeSpec -> UVTimeSpec -> UVTimeSpec
$cmin :: UVTimeSpec -> UVTimeSpec -> UVTimeSpec
max :: UVTimeSpec -> UVTimeSpec -> UVTimeSpec
$cmax :: UVTimeSpec -> UVTimeSpec -> UVTimeSpec
>= :: UVTimeSpec -> UVTimeSpec -> Bool
$c>= :: UVTimeSpec -> UVTimeSpec -> Bool
> :: UVTimeSpec -> UVTimeSpec -> Bool
$c> :: UVTimeSpec -> UVTimeSpec -> Bool
<= :: UVTimeSpec -> UVTimeSpec -> Bool
$c<= :: UVTimeSpec -> UVTimeSpec -> Bool
< :: UVTimeSpec -> UVTimeSpec -> Bool
$c< :: UVTimeSpec -> UVTimeSpec -> Bool
compare :: UVTimeSpec -> UVTimeSpec -> Ordering
$ccompare :: UVTimeSpec -> UVTimeSpec -> Ordering
$cp1Ord :: Eq UVTimeSpec
Ord, (forall x. UVTimeSpec -> Rep UVTimeSpec x)
-> (forall x. Rep UVTimeSpec x -> UVTimeSpec) -> Generic UVTimeSpec
forall x. Rep UVTimeSpec x -> UVTimeSpec
forall x. UVTimeSpec -> Rep UVTimeSpec x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UVTimeSpec x -> UVTimeSpec
$cfrom :: forall x. UVTimeSpec -> Rep UVTimeSpec x
Generic)

instance Storable UVTimeSpec where
    sizeOf :: UVTimeSpec -> UVSlot
sizeOf UVTimeSpec
_  = (UVSlot
16)
{-# LINE 508 "Z/IO/UV/FFI.hsc" #-}
    alignment _ = 8
{-# LINE 509 "Z/IO/UV/FFI.hsc" #-}
    peek p = UVTimeSpec <$> ((\hsc_ptr -> peekByteOff hsc_ptr 0) p)
{-# LINE 510 "Z/IO/UV/FFI.hsc" #-}
                        <*> ((\hsc_ptr -> peekByteOff hsc_ptr 8) p)
{-# LINE 511 "Z/IO/UV/FFI.hsc" #-}
    poke p (UVTimeSpec sec nsec) = do
        ((\hsc_ptr -> pokeByteOff hsc_ptr 0) p sec)
{-# LINE 513 "Z/IO/UV/FFI.hsc" #-}
        ((\hsc_ptr -> pokeByteOff hsc_ptr 8) p nsec)
{-# LINE 514 "Z/IO/UV/FFI.hsc" #-}

data UVStat = UVStat
    { UVStat -> Word64
stDev      :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stMode     :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stNlink    :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stUid      :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stGid      :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stRdev     :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stIno      :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stSize     :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stBlksize  :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stBlocks   :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stFlags    :: {-# UNPACK #-} !Word64
    , UVStat -> Word64
stGen      :: {-# UNPACK #-} !Word64
    , UVStat -> UVTimeSpec
stAtim     :: {-# UNPACK #-} !UVTimeSpec
    , UVStat -> UVTimeSpec
stMtim     :: {-# UNPACK #-} !UVTimeSpec
    , UVStat -> UVTimeSpec
stCtim     :: {-# UNPACK #-} !UVTimeSpec
    , UVStat -> UVTimeSpec
stBirthtim :: {-# UNPACK #-} !UVTimeSpec
    } deriving (UVSlot -> UVStat -> ShowS
[UVStat] -> ShowS
UVStat -> String
(UVSlot -> UVStat -> ShowS)
-> (UVStat -> String) -> ([UVStat] -> ShowS) -> Show UVStat
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVStat] -> ShowS
$cshowList :: [UVStat] -> ShowS
show :: UVStat -> String
$cshow :: UVStat -> String
showsPrec :: UVSlot -> UVStat -> ShowS
$cshowsPrec :: UVSlot -> UVStat -> ShowS
Show, ReadPrec [UVStat]
ReadPrec UVStat
UVSlot -> ReadS UVStat
ReadS [UVStat]
(UVSlot -> ReadS UVStat)
-> ReadS [UVStat]
-> ReadPrec UVStat
-> ReadPrec [UVStat]
-> Read UVStat
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVStat]
$creadListPrec :: ReadPrec [UVStat]
readPrec :: ReadPrec UVStat
$creadPrec :: ReadPrec UVStat
readList :: ReadS [UVStat]
$creadList :: ReadS [UVStat]
readsPrec :: UVSlot -> ReadS UVStat
$creadsPrec :: UVSlot -> ReadS UVStat
Read, UVStat -> UVStat -> Bool
(UVStat -> UVStat -> Bool)
-> (UVStat -> UVStat -> Bool) -> Eq UVStat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVStat -> UVStat -> Bool
$c/= :: UVStat -> UVStat -> Bool
== :: UVStat -> UVStat -> Bool
$c== :: UVStat -> UVStat -> Bool
Eq, Eq UVStat
Eq UVStat
-> (UVStat -> UVStat -> Ordering)
-> (UVStat -> UVStat -> Bool)
-> (UVStat -> UVStat -> Bool)
-> (UVStat -> UVStat -> Bool)
-> (UVStat -> UVStat -> Bool)
-> (UVStat -> UVStat -> UVStat)
-> (UVStat -> UVStat -> UVStat)
-> Ord UVStat
UVStat -> UVStat -> Bool
UVStat -> UVStat -> Ordering
UVStat -> UVStat -> UVStat
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVStat -> UVStat -> UVStat
$cmin :: UVStat -> UVStat -> UVStat
max :: UVStat -> UVStat -> UVStat
$cmax :: UVStat -> UVStat -> UVStat
>= :: UVStat -> UVStat -> Bool
$c>= :: UVStat -> UVStat -> Bool
> :: UVStat -> UVStat -> Bool
$c> :: UVStat -> UVStat -> Bool
<= :: UVStat -> UVStat -> Bool
$c<= :: UVStat -> UVStat -> Bool
< :: UVStat -> UVStat -> Bool
$c< :: UVStat -> UVStat -> Bool
compare :: UVStat -> UVStat -> Ordering
$ccompare :: UVStat -> UVStat -> Ordering
$cp1Ord :: Eq UVStat
Ord, (forall x. UVStat -> Rep UVStat x)
-> (forall x. Rep UVStat x -> UVStat) -> Generic UVStat
forall x. Rep UVStat x -> UVStat
forall x. UVStat -> Rep UVStat x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UVStat x -> UVStat
$cfrom :: forall x. UVStat -> Rep UVStat x
Generic)

uvStatSize :: Int
uvStatSize :: UVSlot
uvStatSize = (UVSlot
160)
{-# LINE 536 "Z/IO/UV/FFI.hsc" #-}

peekUVStat :: Ptr UVStat -> IO UVStat
peekUVStat :: Ptr UVStat -> IO UVStat
peekUVStat Ptr UVStat
p = Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> Word64
-> UVTimeSpec
-> UVTimeSpec
-> UVTimeSpec
-> UVTimeSpec
-> UVStat
UVStat
    (Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> Word64
 -> UVTimeSpec
 -> UVTimeSpec
 -> UVTimeSpec
 -> UVTimeSpec
 -> UVStat)
-> IO Word64
-> IO
     (Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> Word64
      -> UVTimeSpec
      -> UVTimeSpec
      -> UVTimeSpec
      -> UVTimeSpec
      -> UVStat)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
0) Ptr UVStat
p)
{-# LINE 540 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
8) Ptr UVStat
p)
{-# LINE 541 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
16) Ptr UVStat
p)
{-# LINE 542 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
24) Ptr UVStat
p)
{-# LINE 543 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
32) Ptr UVStat
p)
{-# LINE 544 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
40) Ptr UVStat
p)
{-# LINE 545 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
48) Ptr UVStat
p)
{-# LINE 546 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
56) Ptr UVStat
p)
{-# LINE 547 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
64) Ptr UVStat
p)
{-# LINE 548 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
72) Ptr UVStat
p)
{-# LINE 549 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
80) Ptr UVStat
p)
{-# LINE 550 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO Word64
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
88) Ptr UVStat
p)
{-# LINE 551 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO UVTimeSpec
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
96) Ptr UVStat
p)
{-# LINE 552 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO UVTimeSpec
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
112) Ptr UVStat
p)
{-# LINE 553 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO UVTimeSpec
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
128) Ptr UVStat
p)
{-# LINE 554 "Z/IO/UV/FFI.hsc" #-}
    <*> ((\Ptr UVStat
hsc_ptr -> Ptr UVStat -> UVSlot -> IO UVTimeSpec
forall a b. Storable a => Ptr b -> UVSlot -> IO a
peekByteOff Ptr UVStat
hsc_ptr UVSlot
144) Ptr UVStat
p)
{-# LINE 555 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_fs_stat :: CString -> Ptr UVStat -> IO Int
foreign import ccall unsafe hs_uv_fs_fstat :: UVFD -> Ptr UVStat -> IO Int
foreign import ccall unsafe hs_uv_fs_lstat :: CString -> Ptr UVStat -> IO Int
foreign import ccall unsafe hs_uv_fs_rename :: CString -> CString -> IO Int
foreign import ccall unsafe hs_uv_fs_fsync :: UVFD -> IO Int
foreign import ccall unsafe hs_uv_fs_fdatasync :: UVFD -> IO Int
foreign import ccall unsafe hs_uv_fs_ftruncate :: UVFD -> Int64 -> IO Int

foreign import ccall unsafe hs_uv_fs_stat_threaded
    :: CString -> Ptr UVStat -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_fstat_threaded
    :: UVFD -> Ptr UVStat -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_lstat_threaded
    :: CString -> Ptr UVStat -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_rename_threaded
    :: CString -> CString -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_fsync_threaded
    :: UVFD -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_fdatasync_threaded
    :: UVFD -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_ftruncate_threaded 
    :: UVFD -> Int64 -> Ptr UVLoop -> IO UVSlotUnSafe

-- | Flags control copying.
-- 
--   * 'COPYFILE_EXCL': If present, uv_fs_copyfile() will fail with UV_EEXIST if the destination path already exists. The default behavior is to overwrite the destination if it exists.
--   * 'COPYFILE_FICLONE': If present, uv_fs_copyfile() will attempt to create a copy-on-write reflink. If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used.
-- 
newtype UVCopyFileFlag = UVCopyFileFlag CInt
    deriving (UVCopyFileFlag -> UVCopyFileFlag -> Bool
(UVCopyFileFlag -> UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVCopyFileFlag -> Bool) -> Eq UVCopyFileFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c/= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
== :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c== :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
Eq, Eq UVCopyFileFlag
Eq UVCopyFileFlag
-> (UVCopyFileFlag -> UVCopyFileFlag -> Ordering)
-> (UVCopyFileFlag -> UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> Ord UVCopyFileFlag
UVCopyFileFlag -> UVCopyFileFlag -> Bool
UVCopyFileFlag -> UVCopyFileFlag -> Ordering
UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$cmin :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
max :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$cmax :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
>= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c>= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
> :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c> :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
<= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c<= :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
< :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
$c< :: UVCopyFileFlag -> UVCopyFileFlag -> Bool
compare :: UVCopyFileFlag -> UVCopyFileFlag -> Ordering
$ccompare :: UVCopyFileFlag -> UVCopyFileFlag -> Ordering
$cp1Ord :: Eq UVCopyFileFlag
Ord, ReadPrec [UVCopyFileFlag]
ReadPrec UVCopyFileFlag
UVSlot -> ReadS UVCopyFileFlag
ReadS [UVCopyFileFlag]
(UVSlot -> ReadS UVCopyFileFlag)
-> ReadS [UVCopyFileFlag]
-> ReadPrec UVCopyFileFlag
-> ReadPrec [UVCopyFileFlag]
-> Read UVCopyFileFlag
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVCopyFileFlag]
$creadListPrec :: ReadPrec [UVCopyFileFlag]
readPrec :: ReadPrec UVCopyFileFlag
$creadPrec :: ReadPrec UVCopyFileFlag
readList :: ReadS [UVCopyFileFlag]
$creadList :: ReadS [UVCopyFileFlag]
readsPrec :: UVSlot -> ReadS UVCopyFileFlag
$creadsPrec :: UVSlot -> ReadS UVCopyFileFlag
Read, UVSlot -> UVCopyFileFlag -> ShowS
[UVCopyFileFlag] -> ShowS
UVCopyFileFlag -> String
(UVSlot -> UVCopyFileFlag -> ShowS)
-> (UVCopyFileFlag -> String)
-> ([UVCopyFileFlag] -> ShowS)
-> Show UVCopyFileFlag
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVCopyFileFlag] -> ShowS
$cshowList :: [UVCopyFileFlag] -> ShowS
show :: UVCopyFileFlag -> String
$cshow :: UVCopyFileFlag -> String
showsPrec :: UVSlot -> UVCopyFileFlag -> ShowS
$cshowsPrec :: UVSlot -> UVCopyFileFlag -> ShowS
Show, Bits UVCopyFileFlag
Bits UVCopyFileFlag
-> (UVCopyFileFlag -> UVSlot)
-> (UVCopyFileFlag -> UVSlot)
-> (UVCopyFileFlag -> UVSlot)
-> FiniteBits UVCopyFileFlag
UVCopyFileFlag -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: UVCopyFileFlag -> UVSlot
$ccountTrailingZeros :: UVCopyFileFlag -> UVSlot
countLeadingZeros :: UVCopyFileFlag -> UVSlot
$ccountLeadingZeros :: UVCopyFileFlag -> UVSlot
finiteBitSize :: UVCopyFileFlag -> UVSlot
$cfiniteBitSize :: UVCopyFileFlag -> UVSlot
$cp1FiniteBits :: Bits UVCopyFileFlag
FiniteBits, Eq UVCopyFileFlag
UVCopyFileFlag
Eq UVCopyFileFlag
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> UVCopyFileFlag
-> (UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> Bool)
-> (UVCopyFileFlag -> Maybe UVSlot)
-> (UVCopyFileFlag -> UVSlot)
-> (UVCopyFileFlag -> Bool)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVSlot)
-> Bits UVCopyFileFlag
UVSlot -> UVCopyFileFlag
UVCopyFileFlag -> Bool
UVCopyFileFlag -> UVSlot
UVCopyFileFlag -> Maybe UVSlot
UVCopyFileFlag -> UVCopyFileFlag
UVCopyFileFlag -> UVSlot -> Bool
UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: UVCopyFileFlag -> UVSlot
$cpopCount :: UVCopyFileFlag -> UVSlot
rotateR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$crotateR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
rotateL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$crotateL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
unsafeShiftR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cunsafeShiftR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
shiftR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cshiftR :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
unsafeShiftL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cunsafeShiftL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
shiftL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cshiftL :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
isSigned :: UVCopyFileFlag -> Bool
$cisSigned :: UVCopyFileFlag -> Bool
bitSize :: UVCopyFileFlag -> UVSlot
$cbitSize :: UVCopyFileFlag -> UVSlot
bitSizeMaybe :: UVCopyFileFlag -> Maybe UVSlot
$cbitSizeMaybe :: UVCopyFileFlag -> Maybe UVSlot
testBit :: UVCopyFileFlag -> UVSlot -> Bool
$ctestBit :: UVCopyFileFlag -> UVSlot -> Bool
complementBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$ccomplementBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
clearBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cclearBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
setBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$csetBit :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
bit :: UVSlot -> UVCopyFileFlag
$cbit :: UVSlot -> UVCopyFileFlag
zeroBits :: UVCopyFileFlag
$czeroBits :: UVCopyFileFlag
rotate :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$crotate :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
shift :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
$cshift :: UVCopyFileFlag -> UVSlot -> UVCopyFileFlag
complement :: UVCopyFileFlag -> UVCopyFileFlag
$ccomplement :: UVCopyFileFlag -> UVCopyFileFlag
xor :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$cxor :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
.|. :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$c.|. :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
.&. :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$c.&. :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$cp1Bits :: Eq UVCopyFileFlag
Bits, Ptr b -> UVSlot -> IO UVCopyFileFlag
Ptr b -> UVSlot -> UVCopyFileFlag -> IO ()
Ptr UVCopyFileFlag -> IO UVCopyFileFlag
Ptr UVCopyFileFlag -> UVSlot -> IO UVCopyFileFlag
Ptr UVCopyFileFlag -> UVSlot -> UVCopyFileFlag -> IO ()
Ptr UVCopyFileFlag -> UVCopyFileFlag -> IO ()
UVCopyFileFlag -> UVSlot
(UVCopyFileFlag -> UVSlot)
-> (UVCopyFileFlag -> UVSlot)
-> (Ptr UVCopyFileFlag -> UVSlot -> IO UVCopyFileFlag)
-> (Ptr UVCopyFileFlag -> UVSlot -> UVCopyFileFlag -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVCopyFileFlag)
-> (forall b. Ptr b -> UVSlot -> UVCopyFileFlag -> IO ())
-> (Ptr UVCopyFileFlag -> IO UVCopyFileFlag)
-> (Ptr UVCopyFileFlag -> UVCopyFileFlag -> IO ())
-> Storable UVCopyFileFlag
forall b. Ptr b -> UVSlot -> IO UVCopyFileFlag
forall b. Ptr b -> UVSlot -> UVCopyFileFlag -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVCopyFileFlag -> UVCopyFileFlag -> IO ()
$cpoke :: Ptr UVCopyFileFlag -> UVCopyFileFlag -> IO ()
peek :: Ptr UVCopyFileFlag -> IO UVCopyFileFlag
$cpeek :: Ptr UVCopyFileFlag -> IO UVCopyFileFlag
pokeByteOff :: Ptr b -> UVSlot -> UVCopyFileFlag -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVCopyFileFlag -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVCopyFileFlag
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVCopyFileFlag
pokeElemOff :: Ptr UVCopyFileFlag -> UVSlot -> UVCopyFileFlag -> IO ()
$cpokeElemOff :: Ptr UVCopyFileFlag -> UVSlot -> UVCopyFileFlag -> IO ()
peekElemOff :: Ptr UVCopyFileFlag -> UVSlot -> IO UVCopyFileFlag
$cpeekElemOff :: Ptr UVCopyFileFlag -> UVSlot -> IO UVCopyFileFlag
alignment :: UVCopyFileFlag -> UVSlot
$calignment :: UVCopyFileFlag -> UVSlot
sizeOf :: UVCopyFileFlag -> UVSlot
$csizeOf :: UVCopyFileFlag -> UVSlot
Storable, Integer -> UVCopyFileFlag
UVCopyFileFlag -> UVCopyFileFlag
UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
(UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag)
-> (UVCopyFileFlag -> UVCopyFileFlag)
-> (Integer -> UVCopyFileFlag)
-> Num UVCopyFileFlag
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> UVCopyFileFlag
$cfromInteger :: Integer -> UVCopyFileFlag
signum :: UVCopyFileFlag -> UVCopyFileFlag
$csignum :: UVCopyFileFlag -> UVCopyFileFlag
abs :: UVCopyFileFlag -> UVCopyFileFlag
$cabs :: UVCopyFileFlag -> UVCopyFileFlag
negate :: UVCopyFileFlag -> UVCopyFileFlag
$cnegate :: UVCopyFileFlag -> UVCopyFileFlag
* :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$c* :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
- :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$c- :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
+ :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
$c+ :: UVCopyFileFlag -> UVCopyFileFlag -> UVCopyFileFlag
Num)

pattern COPYFILE_DEFAULT :: UVCopyFileFlag
pattern $bCOPYFILE_DEFAULT :: UVCopyFileFlag
$mCOPYFILE_DEFAULT :: forall r. UVCopyFileFlag -> (Void# -> r) -> (Void# -> r) -> r
COPYFILE_DEFAULT = UVCopyFileFlag 0

pattern COPYFILE_EXCL :: UVCopyFileFlag
pattern $bCOPYFILE_EXCL :: UVCopyFileFlag
$mCOPYFILE_EXCL :: forall r. UVCopyFileFlag -> (Void# -> r) -> (Void# -> r) -> r
COPYFILE_EXCL = UVCopyFileFlag 1
{-# LINE 592 "Z/IO/UV/FFI.hsc" #-}

pattern COPYFILE_FICLONE :: UVCopyFileFlag

{-# LINE 595 "Z/IO/UV/FFI.hsc" #-}
pattern COPYFILE_FICLONE = UVCopyFileFlag 2
{-# LINE 596 "Z/IO/UV/FFI.hsc" #-}

{-# LINE 599 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_fs_copyfile :: CString -> CString -> UVCopyFileFlag -> IO Int
foreign import ccall unsafe hs_uv_fs_copyfile_threaded
    :: CString -> CString -> UVCopyFileFlag -> Ptr UVLoop -> IO UVSlotUnSafe

newtype UVAccessMode = UVAccessMode CInt
    deriving (UVAccessMode -> UVAccessMode -> Bool
(UVAccessMode -> UVAccessMode -> Bool)
-> (UVAccessMode -> UVAccessMode -> Bool) -> Eq UVAccessMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVAccessMode -> UVAccessMode -> Bool
$c/= :: UVAccessMode -> UVAccessMode -> Bool
== :: UVAccessMode -> UVAccessMode -> Bool
$c== :: UVAccessMode -> UVAccessMode -> Bool
Eq, Eq UVAccessMode
Eq UVAccessMode
-> (UVAccessMode -> UVAccessMode -> Ordering)
-> (UVAccessMode -> UVAccessMode -> Bool)
-> (UVAccessMode -> UVAccessMode -> Bool)
-> (UVAccessMode -> UVAccessMode -> Bool)
-> (UVAccessMode -> UVAccessMode -> Bool)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> Ord UVAccessMode
UVAccessMode -> UVAccessMode -> Bool
UVAccessMode -> UVAccessMode -> Ordering
UVAccessMode -> UVAccessMode -> UVAccessMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVAccessMode -> UVAccessMode -> UVAccessMode
$cmin :: UVAccessMode -> UVAccessMode -> UVAccessMode
max :: UVAccessMode -> UVAccessMode -> UVAccessMode
$cmax :: UVAccessMode -> UVAccessMode -> UVAccessMode
>= :: UVAccessMode -> UVAccessMode -> Bool
$c>= :: UVAccessMode -> UVAccessMode -> Bool
> :: UVAccessMode -> UVAccessMode -> Bool
$c> :: UVAccessMode -> UVAccessMode -> Bool
<= :: UVAccessMode -> UVAccessMode -> Bool
$c<= :: UVAccessMode -> UVAccessMode -> Bool
< :: UVAccessMode -> UVAccessMode -> Bool
$c< :: UVAccessMode -> UVAccessMode -> Bool
compare :: UVAccessMode -> UVAccessMode -> Ordering
$ccompare :: UVAccessMode -> UVAccessMode -> Ordering
$cp1Ord :: Eq UVAccessMode
Ord, ReadPrec [UVAccessMode]
ReadPrec UVAccessMode
UVSlot -> ReadS UVAccessMode
ReadS [UVAccessMode]
(UVSlot -> ReadS UVAccessMode)
-> ReadS [UVAccessMode]
-> ReadPrec UVAccessMode
-> ReadPrec [UVAccessMode]
-> Read UVAccessMode
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVAccessMode]
$creadListPrec :: ReadPrec [UVAccessMode]
readPrec :: ReadPrec UVAccessMode
$creadPrec :: ReadPrec UVAccessMode
readList :: ReadS [UVAccessMode]
$creadList :: ReadS [UVAccessMode]
readsPrec :: UVSlot -> ReadS UVAccessMode
$creadsPrec :: UVSlot -> ReadS UVAccessMode
Read, UVSlot -> UVAccessMode -> ShowS
[UVAccessMode] -> ShowS
UVAccessMode -> String
(UVSlot -> UVAccessMode -> ShowS)
-> (UVAccessMode -> String)
-> ([UVAccessMode] -> ShowS)
-> Show UVAccessMode
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVAccessMode] -> ShowS
$cshowList :: [UVAccessMode] -> ShowS
show :: UVAccessMode -> String
$cshow :: UVAccessMode -> String
showsPrec :: UVSlot -> UVAccessMode -> ShowS
$cshowsPrec :: UVSlot -> UVAccessMode -> ShowS
Show, Bits UVAccessMode
Bits UVAccessMode
-> (UVAccessMode -> UVSlot)
-> (UVAccessMode -> UVSlot)
-> (UVAccessMode -> UVSlot)
-> FiniteBits UVAccessMode
UVAccessMode -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: UVAccessMode -> UVSlot
$ccountTrailingZeros :: UVAccessMode -> UVSlot
countLeadingZeros :: UVAccessMode -> UVSlot
$ccountLeadingZeros :: UVAccessMode -> UVSlot
finiteBitSize :: UVAccessMode -> UVSlot
$cfiniteBitSize :: UVAccessMode -> UVSlot
$cp1FiniteBits :: Bits UVAccessMode
FiniteBits, Eq UVAccessMode
UVAccessMode
Eq UVAccessMode
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> UVAccessMode
-> (UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> Bool)
-> (UVAccessMode -> Maybe UVSlot)
-> (UVAccessMode -> UVSlot)
-> (UVAccessMode -> Bool)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot -> UVAccessMode)
-> (UVAccessMode -> UVSlot)
-> Bits UVAccessMode
UVSlot -> UVAccessMode
UVAccessMode -> Bool
UVAccessMode -> UVSlot
UVAccessMode -> Maybe UVSlot
UVAccessMode -> UVAccessMode
UVAccessMode -> UVSlot -> Bool
UVAccessMode -> UVSlot -> UVAccessMode
UVAccessMode -> UVAccessMode -> UVAccessMode
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: UVAccessMode -> UVSlot
$cpopCount :: UVAccessMode -> UVSlot
rotateR :: UVAccessMode -> UVSlot -> UVAccessMode
$crotateR :: UVAccessMode -> UVSlot -> UVAccessMode
rotateL :: UVAccessMode -> UVSlot -> UVAccessMode
$crotateL :: UVAccessMode -> UVSlot -> UVAccessMode
unsafeShiftR :: UVAccessMode -> UVSlot -> UVAccessMode
$cunsafeShiftR :: UVAccessMode -> UVSlot -> UVAccessMode
shiftR :: UVAccessMode -> UVSlot -> UVAccessMode
$cshiftR :: UVAccessMode -> UVSlot -> UVAccessMode
unsafeShiftL :: UVAccessMode -> UVSlot -> UVAccessMode
$cunsafeShiftL :: UVAccessMode -> UVSlot -> UVAccessMode
shiftL :: UVAccessMode -> UVSlot -> UVAccessMode
$cshiftL :: UVAccessMode -> UVSlot -> UVAccessMode
isSigned :: UVAccessMode -> Bool
$cisSigned :: UVAccessMode -> Bool
bitSize :: UVAccessMode -> UVSlot
$cbitSize :: UVAccessMode -> UVSlot
bitSizeMaybe :: UVAccessMode -> Maybe UVSlot
$cbitSizeMaybe :: UVAccessMode -> Maybe UVSlot
testBit :: UVAccessMode -> UVSlot -> Bool
$ctestBit :: UVAccessMode -> UVSlot -> Bool
complementBit :: UVAccessMode -> UVSlot -> UVAccessMode
$ccomplementBit :: UVAccessMode -> UVSlot -> UVAccessMode
clearBit :: UVAccessMode -> UVSlot -> UVAccessMode
$cclearBit :: UVAccessMode -> UVSlot -> UVAccessMode
setBit :: UVAccessMode -> UVSlot -> UVAccessMode
$csetBit :: UVAccessMode -> UVSlot -> UVAccessMode
bit :: UVSlot -> UVAccessMode
$cbit :: UVSlot -> UVAccessMode
zeroBits :: UVAccessMode
$czeroBits :: UVAccessMode
rotate :: UVAccessMode -> UVSlot -> UVAccessMode
$crotate :: UVAccessMode -> UVSlot -> UVAccessMode
shift :: UVAccessMode -> UVSlot -> UVAccessMode
$cshift :: UVAccessMode -> UVSlot -> UVAccessMode
complement :: UVAccessMode -> UVAccessMode
$ccomplement :: UVAccessMode -> UVAccessMode
xor :: UVAccessMode -> UVAccessMode -> UVAccessMode
$cxor :: UVAccessMode -> UVAccessMode -> UVAccessMode
.|. :: UVAccessMode -> UVAccessMode -> UVAccessMode
$c.|. :: UVAccessMode -> UVAccessMode -> UVAccessMode
.&. :: UVAccessMode -> UVAccessMode -> UVAccessMode
$c.&. :: UVAccessMode -> UVAccessMode -> UVAccessMode
$cp1Bits :: Eq UVAccessMode
Bits, Ptr b -> UVSlot -> IO UVAccessMode
Ptr b -> UVSlot -> UVAccessMode -> IO ()
Ptr UVAccessMode -> IO UVAccessMode
Ptr UVAccessMode -> UVSlot -> IO UVAccessMode
Ptr UVAccessMode -> UVSlot -> UVAccessMode -> IO ()
Ptr UVAccessMode -> UVAccessMode -> IO ()
UVAccessMode -> UVSlot
(UVAccessMode -> UVSlot)
-> (UVAccessMode -> UVSlot)
-> (Ptr UVAccessMode -> UVSlot -> IO UVAccessMode)
-> (Ptr UVAccessMode -> UVSlot -> UVAccessMode -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVAccessMode)
-> (forall b. Ptr b -> UVSlot -> UVAccessMode -> IO ())
-> (Ptr UVAccessMode -> IO UVAccessMode)
-> (Ptr UVAccessMode -> UVAccessMode -> IO ())
-> Storable UVAccessMode
forall b. Ptr b -> UVSlot -> IO UVAccessMode
forall b. Ptr b -> UVSlot -> UVAccessMode -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVAccessMode -> UVAccessMode -> IO ()
$cpoke :: Ptr UVAccessMode -> UVAccessMode -> IO ()
peek :: Ptr UVAccessMode -> IO UVAccessMode
$cpeek :: Ptr UVAccessMode -> IO UVAccessMode
pokeByteOff :: Ptr b -> UVSlot -> UVAccessMode -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVAccessMode -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVAccessMode
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVAccessMode
pokeElemOff :: Ptr UVAccessMode -> UVSlot -> UVAccessMode -> IO ()
$cpokeElemOff :: Ptr UVAccessMode -> UVSlot -> UVAccessMode -> IO ()
peekElemOff :: Ptr UVAccessMode -> UVSlot -> IO UVAccessMode
$cpeekElemOff :: Ptr UVAccessMode -> UVSlot -> IO UVAccessMode
alignment :: UVAccessMode -> UVSlot
$calignment :: UVAccessMode -> UVSlot
sizeOf :: UVAccessMode -> UVSlot
$csizeOf :: UVAccessMode -> UVSlot
Storable, Integer -> UVAccessMode
UVAccessMode -> UVAccessMode
UVAccessMode -> UVAccessMode -> UVAccessMode
(UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode)
-> (UVAccessMode -> UVAccessMode)
-> (Integer -> UVAccessMode)
-> Num UVAccessMode
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> UVAccessMode
$cfromInteger :: Integer -> UVAccessMode
signum :: UVAccessMode -> UVAccessMode
$csignum :: UVAccessMode -> UVAccessMode
abs :: UVAccessMode -> UVAccessMode
$cabs :: UVAccessMode -> UVAccessMode
negate :: UVAccessMode -> UVAccessMode
$cnegate :: UVAccessMode -> UVAccessMode
* :: UVAccessMode -> UVAccessMode -> UVAccessMode
$c* :: UVAccessMode -> UVAccessMode -> UVAccessMode
- :: UVAccessMode -> UVAccessMode -> UVAccessMode
$c- :: UVAccessMode -> UVAccessMode -> UVAccessMode
+ :: UVAccessMode -> UVAccessMode -> UVAccessMode
$c+ :: UVAccessMode -> UVAccessMode -> UVAccessMode
Num)

pattern F_OK :: UVAccessMode
pattern $bF_OK :: UVAccessMode
$mF_OK :: forall r. UVAccessMode -> (Void# -> r) -> (Void# -> r) -> r
F_OK = UVAccessMode 0
{-# LINE 609 "Z/IO/UV/FFI.hsc" #-}
pattern R_OK :: UVAccessMode
pattern $bR_OK :: UVAccessMode
$mR_OK :: forall r. UVAccessMode -> (Void# -> r) -> (Void# -> r) -> r
R_OK = UVAccessMode 4
{-# LINE 611 "Z/IO/UV/FFI.hsc" #-}
pattern W_OK :: UVAccessMode
pattern $bW_OK :: UVAccessMode
$mW_OK :: forall r. UVAccessMode -> (Void# -> r) -> (Void# -> r) -> r
W_OK = UVAccessMode 2
{-# LINE 613 "Z/IO/UV/FFI.hsc" #-}
pattern X_OK :: UVAccessMode
pattern $bX_OK :: UVAccessMode
$mX_OK :: forall r. UVAccessMode -> (Void# -> r) -> (Void# -> r) -> r
X_OK = UVAccessMode 1
{-# LINE 615 "Z/IO/UV/FFI.hsc" #-}

data AccessResult = NoExistence | NoPermission | AccessOK deriving (UVSlot -> AccessResult -> ShowS
[AccessResult] -> ShowS
AccessResult -> String
(UVSlot -> AccessResult -> ShowS)
-> (AccessResult -> String)
-> ([AccessResult] -> ShowS)
-> Show AccessResult
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AccessResult] -> ShowS
$cshowList :: [AccessResult] -> ShowS
show :: AccessResult -> String
$cshow :: AccessResult -> String
showsPrec :: UVSlot -> AccessResult -> ShowS
$cshowsPrec :: UVSlot -> AccessResult -> ShowS
Show, AccessResult -> AccessResult -> Bool
(AccessResult -> AccessResult -> Bool)
-> (AccessResult -> AccessResult -> Bool) -> Eq AccessResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessResult -> AccessResult -> Bool
$c/= :: AccessResult -> AccessResult -> Bool
== :: AccessResult -> AccessResult -> Bool
$c== :: AccessResult -> AccessResult -> Bool
Eq, Eq AccessResult
Eq AccessResult
-> (AccessResult -> AccessResult -> Ordering)
-> (AccessResult -> AccessResult -> Bool)
-> (AccessResult -> AccessResult -> Bool)
-> (AccessResult -> AccessResult -> Bool)
-> (AccessResult -> AccessResult -> Bool)
-> (AccessResult -> AccessResult -> AccessResult)
-> (AccessResult -> AccessResult -> AccessResult)
-> Ord AccessResult
AccessResult -> AccessResult -> Bool
AccessResult -> AccessResult -> Ordering
AccessResult -> AccessResult -> AccessResult
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: AccessResult -> AccessResult -> AccessResult
$cmin :: AccessResult -> AccessResult -> AccessResult
max :: AccessResult -> AccessResult -> AccessResult
$cmax :: AccessResult -> AccessResult -> AccessResult
>= :: AccessResult -> AccessResult -> Bool
$c>= :: AccessResult -> AccessResult -> Bool
> :: AccessResult -> AccessResult -> Bool
$c> :: AccessResult -> AccessResult -> Bool
<= :: AccessResult -> AccessResult -> Bool
$c<= :: AccessResult -> AccessResult -> Bool
< :: AccessResult -> AccessResult -> Bool
$c< :: AccessResult -> AccessResult -> Bool
compare :: AccessResult -> AccessResult -> Ordering
$ccompare :: AccessResult -> AccessResult -> Ordering
$cp1Ord :: Eq AccessResult
Ord)

foreign import ccall unsafe hs_uv_fs_access :: CString -> UVAccessMode -> IO Int
foreign import ccall unsafe hs_uv_fs_access_threaded
    :: CString -> UVAccessMode -> Ptr UVLoop -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_fs_chmod :: CString -> FileMode -> IO Int
foreign import ccall unsafe hs_uv_fs_chmod_threaded
    :: CString -> FileMode -> Ptr UVLoop -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_fs_fchmod :: UVFD -> FileMode -> IO Int
foreign import ccall unsafe hs_uv_fs_fchmod_threaded
    :: UVFD -> FileMode -> Ptr UVLoop -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_fs_utime :: CString -> Double -> Double -> IO Int
foreign import ccall unsafe hs_uv_fs_utime_threaded
    :: CString -> Double -> Double -> Ptr UVLoop -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_fs_futime :: UVFD -> Double -> Double -> IO Int
foreign import ccall unsafe hs_uv_fs_futime_threaded
    :: UVFD -> Double -> Double -> Ptr UVLoop -> IO UVSlotUnSafe

newtype UVSymlinkFlag = UVSymlinkFlag CInt
    deriving (UVSymlinkFlag -> UVSymlinkFlag -> Bool
(UVSymlinkFlag -> UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSymlinkFlag -> Bool) -> Eq UVSymlinkFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c/= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
== :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c== :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
Eq, Eq UVSymlinkFlag
Eq UVSymlinkFlag
-> (UVSymlinkFlag -> UVSymlinkFlag -> Ordering)
-> (UVSymlinkFlag -> UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> Ord UVSymlinkFlag
UVSymlinkFlag -> UVSymlinkFlag -> Bool
UVSymlinkFlag -> UVSymlinkFlag -> Ordering
UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$cmin :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
max :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$cmax :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
>= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c>= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
> :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c> :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
<= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c<= :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
< :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
$c< :: UVSymlinkFlag -> UVSymlinkFlag -> Bool
compare :: UVSymlinkFlag -> UVSymlinkFlag -> Ordering
$ccompare :: UVSymlinkFlag -> UVSymlinkFlag -> Ordering
$cp1Ord :: Eq UVSymlinkFlag
Ord, ReadPrec [UVSymlinkFlag]
ReadPrec UVSymlinkFlag
UVSlot -> ReadS UVSymlinkFlag
ReadS [UVSymlinkFlag]
(UVSlot -> ReadS UVSymlinkFlag)
-> ReadS [UVSymlinkFlag]
-> ReadPrec UVSymlinkFlag
-> ReadPrec [UVSymlinkFlag]
-> Read UVSymlinkFlag
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVSymlinkFlag]
$creadListPrec :: ReadPrec [UVSymlinkFlag]
readPrec :: ReadPrec UVSymlinkFlag
$creadPrec :: ReadPrec UVSymlinkFlag
readList :: ReadS [UVSymlinkFlag]
$creadList :: ReadS [UVSymlinkFlag]
readsPrec :: UVSlot -> ReadS UVSymlinkFlag
$creadsPrec :: UVSlot -> ReadS UVSymlinkFlag
Read, UVSlot -> UVSymlinkFlag -> ShowS
[UVSymlinkFlag] -> ShowS
UVSymlinkFlag -> String
(UVSlot -> UVSymlinkFlag -> ShowS)
-> (UVSymlinkFlag -> String)
-> ([UVSymlinkFlag] -> ShowS)
-> Show UVSymlinkFlag
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVSymlinkFlag] -> ShowS
$cshowList :: [UVSymlinkFlag] -> ShowS
show :: UVSymlinkFlag -> String
$cshow :: UVSymlinkFlag -> String
showsPrec :: UVSlot -> UVSymlinkFlag -> ShowS
$cshowsPrec :: UVSlot -> UVSymlinkFlag -> ShowS
Show, Bits UVSymlinkFlag
Bits UVSymlinkFlag
-> (UVSymlinkFlag -> UVSlot)
-> (UVSymlinkFlag -> UVSlot)
-> (UVSymlinkFlag -> UVSlot)
-> FiniteBits UVSymlinkFlag
UVSymlinkFlag -> UVSlot
forall b.
Bits b
-> (b -> UVSlot) -> (b -> UVSlot) -> (b -> UVSlot) -> FiniteBits b
countTrailingZeros :: UVSymlinkFlag -> UVSlot
$ccountTrailingZeros :: UVSymlinkFlag -> UVSlot
countLeadingZeros :: UVSymlinkFlag -> UVSlot
$ccountLeadingZeros :: UVSymlinkFlag -> UVSlot
finiteBitSize :: UVSymlinkFlag -> UVSlot
$cfiniteBitSize :: UVSymlinkFlag -> UVSlot
$cp1FiniteBits :: Bits UVSymlinkFlag
FiniteBits, Eq UVSymlinkFlag
UVSymlinkFlag
Eq UVSymlinkFlag
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> UVSymlinkFlag
-> (UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> Bool)
-> (UVSymlinkFlag -> Maybe UVSlot)
-> (UVSymlinkFlag -> UVSlot)
-> (UVSymlinkFlag -> Bool)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSlot)
-> Bits UVSymlinkFlag
UVSlot -> UVSymlinkFlag
UVSymlinkFlag -> Bool
UVSymlinkFlag -> UVSlot
UVSymlinkFlag -> Maybe UVSlot
UVSymlinkFlag -> UVSymlinkFlag
UVSymlinkFlag -> UVSlot -> Bool
UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> a
-> (UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> Bool)
-> (a -> Maybe UVSlot)
-> (a -> UVSlot)
-> (a -> Bool)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot -> a)
-> (a -> UVSlot)
-> Bits a
popCount :: UVSymlinkFlag -> UVSlot
$cpopCount :: UVSymlinkFlag -> UVSlot
rotateR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$crotateR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
rotateL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$crotateL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
unsafeShiftR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cunsafeShiftR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
shiftR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cshiftR :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
unsafeShiftL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cunsafeShiftL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
shiftL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cshiftL :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
isSigned :: UVSymlinkFlag -> Bool
$cisSigned :: UVSymlinkFlag -> Bool
bitSize :: UVSymlinkFlag -> UVSlot
$cbitSize :: UVSymlinkFlag -> UVSlot
bitSizeMaybe :: UVSymlinkFlag -> Maybe UVSlot
$cbitSizeMaybe :: UVSymlinkFlag -> Maybe UVSlot
testBit :: UVSymlinkFlag -> UVSlot -> Bool
$ctestBit :: UVSymlinkFlag -> UVSlot -> Bool
complementBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$ccomplementBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
clearBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cclearBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
setBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$csetBit :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
bit :: UVSlot -> UVSymlinkFlag
$cbit :: UVSlot -> UVSymlinkFlag
zeroBits :: UVSymlinkFlag
$czeroBits :: UVSymlinkFlag
rotate :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$crotate :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
shift :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
$cshift :: UVSymlinkFlag -> UVSlot -> UVSymlinkFlag
complement :: UVSymlinkFlag -> UVSymlinkFlag
$ccomplement :: UVSymlinkFlag -> UVSymlinkFlag
xor :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$cxor :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
.|. :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$c.|. :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
.&. :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$c.&. :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$cp1Bits :: Eq UVSymlinkFlag
Bits, Ptr b -> UVSlot -> IO UVSymlinkFlag
Ptr b -> UVSlot -> UVSymlinkFlag -> IO ()
Ptr UVSymlinkFlag -> IO UVSymlinkFlag
Ptr UVSymlinkFlag -> UVSlot -> IO UVSymlinkFlag
Ptr UVSymlinkFlag -> UVSlot -> UVSymlinkFlag -> IO ()
Ptr UVSymlinkFlag -> UVSymlinkFlag -> IO ()
UVSymlinkFlag -> UVSlot
(UVSymlinkFlag -> UVSlot)
-> (UVSymlinkFlag -> UVSlot)
-> (Ptr UVSymlinkFlag -> UVSlot -> IO UVSymlinkFlag)
-> (Ptr UVSymlinkFlag -> UVSlot -> UVSymlinkFlag -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVSymlinkFlag)
-> (forall b. Ptr b -> UVSlot -> UVSymlinkFlag -> IO ())
-> (Ptr UVSymlinkFlag -> IO UVSymlinkFlag)
-> (Ptr UVSymlinkFlag -> UVSymlinkFlag -> IO ())
-> Storable UVSymlinkFlag
forall b. Ptr b -> UVSlot -> IO UVSymlinkFlag
forall b. Ptr b -> UVSlot -> UVSymlinkFlag -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVSymlinkFlag -> UVSymlinkFlag -> IO ()
$cpoke :: Ptr UVSymlinkFlag -> UVSymlinkFlag -> IO ()
peek :: Ptr UVSymlinkFlag -> IO UVSymlinkFlag
$cpeek :: Ptr UVSymlinkFlag -> IO UVSymlinkFlag
pokeByteOff :: Ptr b -> UVSlot -> UVSymlinkFlag -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVSymlinkFlag -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVSymlinkFlag
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVSymlinkFlag
pokeElemOff :: Ptr UVSymlinkFlag -> UVSlot -> UVSymlinkFlag -> IO ()
$cpokeElemOff :: Ptr UVSymlinkFlag -> UVSlot -> UVSymlinkFlag -> IO ()
peekElemOff :: Ptr UVSymlinkFlag -> UVSlot -> IO UVSymlinkFlag
$cpeekElemOff :: Ptr UVSymlinkFlag -> UVSlot -> IO UVSymlinkFlag
alignment :: UVSymlinkFlag -> UVSlot
$calignment :: UVSymlinkFlag -> UVSlot
sizeOf :: UVSymlinkFlag -> UVSlot
$csizeOf :: UVSymlinkFlag -> UVSlot
Storable, Integer -> UVSymlinkFlag
UVSymlinkFlag -> UVSymlinkFlag
UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
(UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag)
-> (UVSymlinkFlag -> UVSymlinkFlag)
-> (Integer -> UVSymlinkFlag)
-> Num UVSymlinkFlag
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> UVSymlinkFlag
$cfromInteger :: Integer -> UVSymlinkFlag
signum :: UVSymlinkFlag -> UVSymlinkFlag
$csignum :: UVSymlinkFlag -> UVSymlinkFlag
abs :: UVSymlinkFlag -> UVSymlinkFlag
$cabs :: UVSymlinkFlag -> UVSymlinkFlag
negate :: UVSymlinkFlag -> UVSymlinkFlag
$cnegate :: UVSymlinkFlag -> UVSymlinkFlag
* :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$c* :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
- :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$c- :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
+ :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
$c+ :: UVSymlinkFlag -> UVSymlinkFlag -> UVSymlinkFlag
Num)

pattern SYMLINK_DEFAULT :: UVSymlinkFlag
pattern $bSYMLINK_DEFAULT :: UVSymlinkFlag
$mSYMLINK_DEFAULT :: forall r. UVSymlinkFlag -> (Void# -> r) -> (Void# -> r) -> r
SYMLINK_DEFAULT = UVSymlinkFlag 0

pattern SYMLINK_DIR :: UVSymlinkFlag
pattern $bSYMLINK_DIR :: UVSymlinkFlag
$mSYMLINK_DIR :: forall r. UVSymlinkFlag -> (Void# -> r) -> (Void# -> r) -> r
SYMLINK_DIR = UVSymlinkFlag 1
{-# LINE 646 "Z/IO/UV/FFI.hsc" #-}

pattern SYMLINK_JUNCTION :: UVSymlinkFlag
pattern $bSYMLINK_JUNCTION :: UVSymlinkFlag
$mSYMLINK_JUNCTION :: forall r. UVSymlinkFlag -> (Void# -> r) -> (Void# -> r) -> r
SYMLINK_JUNCTION = UVSymlinkFlag 2
{-# LINE 649 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe hs_uv_fs_link :: CString -> CString -> IO Int
foreign import ccall unsafe hs_uv_fs_link_threaded
    :: CString -> CString -> Ptr UVLoop -> IO UVSlotUnSafe

foreign import ccall unsafe hs_uv_fs_symlink :: CString -> CString -> UVSymlinkFlag -> IO Int
foreign import ccall unsafe hs_uv_fs_symlink_threaded
    :: CString -> CString -> UVSymlinkFlag -> Ptr UVLoop -> IO UVSlotUnSafe

-- readlink and realpath share the same cleanup and callback
foreign import ccall unsafe hs_uv_fs_readlink_cleanup
    :: CString -> IO ()
foreign import ccall unsafe hs_uv_fs_readlink
    :: CString -> MBA# CString -> IO Int
foreign import ccall unsafe hs_uv_fs_realpath
    :: CString -> MBA# CString -> IO Int
foreign import ccall unsafe hs_uv_fs_readlink_extra_cleanup 
    :: Ptr CString -> IO ()
foreign import ccall unsafe hs_uv_fs_readlink_threaded
    :: CString -> Ptr CString -> Ptr UVLoop -> IO UVSlotUnSafe
foreign import ccall unsafe hs_uv_fs_realpath_threaded
    :: CString -> Ptr CString -> Ptr UVLoop -> IO UVSlotUnSafe

--------------------------------------------------------------------------------
-- misc

newtype UVHandleType = UVHandleType CInt deriving (UVHandleType -> UVHandleType -> Bool
(UVHandleType -> UVHandleType -> Bool)
-> (UVHandleType -> UVHandleType -> Bool) -> Eq UVHandleType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UVHandleType -> UVHandleType -> Bool
$c/= :: UVHandleType -> UVHandleType -> Bool
== :: UVHandleType -> UVHandleType -> Bool
$c== :: UVHandleType -> UVHandleType -> Bool
Eq, Eq UVHandleType
Eq UVHandleType
-> (UVHandleType -> UVHandleType -> Ordering)
-> (UVHandleType -> UVHandleType -> Bool)
-> (UVHandleType -> UVHandleType -> Bool)
-> (UVHandleType -> UVHandleType -> Bool)
-> (UVHandleType -> UVHandleType -> Bool)
-> (UVHandleType -> UVHandleType -> UVHandleType)
-> (UVHandleType -> UVHandleType -> UVHandleType)
-> Ord UVHandleType
UVHandleType -> UVHandleType -> Bool
UVHandleType -> UVHandleType -> Ordering
UVHandleType -> UVHandleType -> UVHandleType
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: UVHandleType -> UVHandleType -> UVHandleType
$cmin :: UVHandleType -> UVHandleType -> UVHandleType
max :: UVHandleType -> UVHandleType -> UVHandleType
$cmax :: UVHandleType -> UVHandleType -> UVHandleType
>= :: UVHandleType -> UVHandleType -> Bool
$c>= :: UVHandleType -> UVHandleType -> Bool
> :: UVHandleType -> UVHandleType -> Bool
$c> :: UVHandleType -> UVHandleType -> Bool
<= :: UVHandleType -> UVHandleType -> Bool
$c<= :: UVHandleType -> UVHandleType -> Bool
< :: UVHandleType -> UVHandleType -> Bool
$c< :: UVHandleType -> UVHandleType -> Bool
compare :: UVHandleType -> UVHandleType -> Ordering
$ccompare :: UVHandleType -> UVHandleType -> Ordering
$cp1Ord :: Eq UVHandleType
Ord, ReadPrec [UVHandleType]
ReadPrec UVHandleType
UVSlot -> ReadS UVHandleType
ReadS [UVHandleType]
(UVSlot -> ReadS UVHandleType)
-> ReadS [UVHandleType]
-> ReadPrec UVHandleType
-> ReadPrec [UVHandleType]
-> Read UVHandleType
forall a.
(UVSlot -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UVHandleType]
$creadListPrec :: ReadPrec [UVHandleType]
readPrec :: ReadPrec UVHandleType
$creadPrec :: ReadPrec UVHandleType
readList :: ReadS [UVHandleType]
$creadList :: ReadS [UVHandleType]
readsPrec :: UVSlot -> ReadS UVHandleType
$creadsPrec :: UVSlot -> ReadS UVHandleType
Read, UVSlot -> UVHandleType -> ShowS
[UVHandleType] -> ShowS
UVHandleType -> String
(UVSlot -> UVHandleType -> ShowS)
-> (UVHandleType -> String)
-> ([UVHandleType] -> ShowS)
-> Show UVHandleType
forall a.
(UVSlot -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UVHandleType] -> ShowS
$cshowList :: [UVHandleType] -> ShowS
show :: UVHandleType -> String
$cshow :: UVHandleType -> String
showsPrec :: UVSlot -> UVHandleType -> ShowS
$cshowsPrec :: UVSlot -> UVHandleType -> ShowS
Show, Ptr b -> UVSlot -> IO UVHandleType
Ptr b -> UVSlot -> UVHandleType -> IO ()
Ptr UVHandleType -> IO UVHandleType
Ptr UVHandleType -> UVSlot -> IO UVHandleType
Ptr UVHandleType -> UVSlot -> UVHandleType -> IO ()
Ptr UVHandleType -> UVHandleType -> IO ()
UVHandleType -> UVSlot
(UVHandleType -> UVSlot)
-> (UVHandleType -> UVSlot)
-> (Ptr UVHandleType -> UVSlot -> IO UVHandleType)
-> (Ptr UVHandleType -> UVSlot -> UVHandleType -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO UVHandleType)
-> (forall b. Ptr b -> UVSlot -> UVHandleType -> IO ())
-> (Ptr UVHandleType -> IO UVHandleType)
-> (Ptr UVHandleType -> UVHandleType -> IO ())
-> Storable UVHandleType
forall b. Ptr b -> UVSlot -> IO UVHandleType
forall b. Ptr b -> UVSlot -> UVHandleType -> IO ()
forall a.
(a -> UVSlot)
-> (a -> UVSlot)
-> (Ptr a -> UVSlot -> IO a)
-> (Ptr a -> UVSlot -> a -> IO ())
-> (forall b. Ptr b -> UVSlot -> IO a)
-> (forall b. Ptr b -> UVSlot -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr UVHandleType -> UVHandleType -> IO ()
$cpoke :: Ptr UVHandleType -> UVHandleType -> IO ()
peek :: Ptr UVHandleType -> IO UVHandleType
$cpeek :: Ptr UVHandleType -> IO UVHandleType
pokeByteOff :: Ptr b -> UVSlot -> UVHandleType -> IO ()
$cpokeByteOff :: forall b. Ptr b -> UVSlot -> UVHandleType -> IO ()
peekByteOff :: Ptr b -> UVSlot -> IO UVHandleType
$cpeekByteOff :: forall b. Ptr b -> UVSlot -> IO UVHandleType
pokeElemOff :: Ptr UVHandleType -> UVSlot -> UVHandleType -> IO ()
$cpokeElemOff :: Ptr UVHandleType -> UVSlot -> UVHandleType -> IO ()
peekElemOff :: Ptr UVHandleType -> UVSlot -> IO UVHandleType
$cpeekElemOff :: Ptr UVHandleType -> UVSlot -> IO UVHandleType
alignment :: UVHandleType -> UVSlot
$calignment :: UVHandleType -> UVSlot
sizeOf :: UVHandleType -> UVSlot
$csizeOf :: UVHandleType -> UVSlot
Storable)

pattern UV_UNKNOWN_HANDLE :: UVHandleType
pattern $bUV_UNKNOWN_HANDLE :: UVHandleType
$mUV_UNKNOWN_HANDLE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_UNKNOWN_HANDLE = UVHandleType 0
{-# LINE 679 "Z/IO/UV/FFI.hsc" #-}
pattern UV_ASYNC :: UVHandleType
pattern $bUV_ASYNC :: UVHandleType
$mUV_ASYNC :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_ASYNC = UVHandleType 1
{-# LINE 681 "Z/IO/UV/FFI.hsc" #-}
pattern UV_CHECK :: UVHandleType
pattern $bUV_CHECK :: UVHandleType
$mUV_CHECK :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_CHECK = UVHandleType 2
{-# LINE 683 "Z/IO/UV/FFI.hsc" #-}
pattern UV_FS_EVENT :: UVHandleType
pattern $bUV_FS_EVENT :: UVHandleType
$mUV_FS_EVENT :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_FS_EVENT = UVHandleType 3
{-# LINE 685 "Z/IO/UV/FFI.hsc" #-}
pattern UV_FS_POLL :: UVHandleType
pattern $bUV_FS_POLL :: UVHandleType
$mUV_FS_POLL :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_FS_POLL = UVHandleType 4
{-# LINE 687 "Z/IO/UV/FFI.hsc" #-}
pattern UV_HANDLE :: UVHandleType
pattern $bUV_HANDLE :: UVHandleType
$mUV_HANDLE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_HANDLE = UVHandleType 5
{-# LINE 689 "Z/IO/UV/FFI.hsc" #-}
pattern UV_IDLE :: UVHandleType
pattern $bUV_IDLE :: UVHandleType
$mUV_IDLE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_IDLE = UVHandleType 6
{-# LINE 691 "Z/IO/UV/FFI.hsc" #-}
pattern UV_NAMED_PIPE :: UVHandleType
pattern $bUV_NAMED_PIPE :: UVHandleType
$mUV_NAMED_PIPE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_NAMED_PIPE = UVHandleType 7
{-# LINE 693 "Z/IO/UV/FFI.hsc" #-}
pattern UV_POLL :: UVHandleType
pattern $bUV_POLL :: UVHandleType
$mUV_POLL :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_POLL = UVHandleType 8
{-# LINE 695 "Z/IO/UV/FFI.hsc" #-}
pattern UV_PREPARE :: UVHandleType
pattern $bUV_PREPARE :: UVHandleType
$mUV_PREPARE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_PREPARE = UVHandleType 9
{-# LINE 697 "Z/IO/UV/FFI.hsc" #-}
pattern UV_PROCESS :: UVHandleType
pattern $bUV_PROCESS :: UVHandleType
$mUV_PROCESS :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_PROCESS = UVHandleType 10
{-# LINE 699 "Z/IO/UV/FFI.hsc" #-}
pattern UV_STREAM :: UVHandleType
pattern $bUV_STREAM :: UVHandleType
$mUV_STREAM :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_STREAM = UVHandleType 11
{-# LINE 701 "Z/IO/UV/FFI.hsc" #-}
pattern UV_TCP :: UVHandleType
pattern $bUV_TCP :: UVHandleType
$mUV_TCP :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_TCP = UVHandleType 12
{-# LINE 703 "Z/IO/UV/FFI.hsc" #-}
pattern UV_TIMER :: UVHandleType
pattern $bUV_TIMER :: UVHandleType
$mUV_TIMER :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_TIMER = UVHandleType 13
{-# LINE 705 "Z/IO/UV/FFI.hsc" #-}
pattern UV_TTY :: UVHandleType
pattern $bUV_TTY :: UVHandleType
$mUV_TTY :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_TTY = UVHandleType 14
{-# LINE 707 "Z/IO/UV/FFI.hsc" #-}
pattern UV_UDP :: UVHandleType
pattern $bUV_UDP :: UVHandleType
$mUV_UDP :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_UDP = UVHandleType 15
{-# LINE 709 "Z/IO/UV/FFI.hsc" #-}
pattern UV_SIGNAL :: UVHandleType
pattern $bUV_SIGNAL :: UVHandleType
$mUV_SIGNAL :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_SIGNAL = UVHandleType 16
{-# LINE 711 "Z/IO/UV/FFI.hsc" #-}
pattern UV_FILE :: UVHandleType
pattern $bUV_FILE :: UVHandleType
$mUV_FILE :: forall r. UVHandleType -> (Void# -> r) -> (Void# -> r) -> r
UV_FILE = UVHandleType 17
{-# LINE 713 "Z/IO/UV/FFI.hsc" #-}

foreign import ccall unsafe uv_guess_handle :: UVFD -> IO UVHandleType