{-# LINE 1 "Bindings/APR/Thread/Cond.hsc" #-}

{-# LINE 2 "Bindings/APR/Thread/Cond.hsc" #-}

{-# LINE 3 "Bindings/APR/Thread/Cond.hsc" #-}

module Bindings.APR.Thread.Cond where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 6 "Bindings/APR/Thread/Cond.hsc" #-}
import Bindings.APR.ErrNo
import Bindings.APR.Pools
import Bindings.APR.Thread.Mutex
import Bindings.APR.Time


{-# LINE 12 "Bindings/APR/Thread/Cond.hsc" #-}

data C'apr_thread_cond_t = C'apr_thread_cond_t

{-# LINE 14 "Bindings/APR/Thread/Cond.hsc" #-}

foreign import ccall "apr_thread_cond_create" c'apr_thread_cond_create
  :: Ptr (Ptr C'apr_thread_cond_t) -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_create" p'apr_thread_cond_create
  :: FunPtr (Ptr (Ptr C'apr_thread_cond_t) -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 16 "Bindings/APR/Thread/Cond.hsc" #-}
foreign import ccall "apr_thread_cond_wait" c'apr_thread_cond_wait
  :: Ptr C'apr_thread_cond_t -> Ptr C'apr_thread_mutex_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_wait" p'apr_thread_cond_wait
  :: FunPtr (Ptr C'apr_thread_cond_t -> Ptr C'apr_thread_mutex_t -> IO C'apr_status_t)

{-# LINE 17 "Bindings/APR/Thread/Cond.hsc" #-}
foreign import ccall "apr_thread_cond_timedwait" c'apr_thread_cond_timedwait
  :: Ptr C'apr_thread_cond_t -> Ptr C'apr_thread_mutex_t -> C'apr_interval_time_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_timedwait" p'apr_thread_cond_timedwait
  :: FunPtr (Ptr C'apr_thread_cond_t -> Ptr C'apr_thread_mutex_t -> C'apr_interval_time_t -> IO C'apr_status_t)

{-# LINE 18 "Bindings/APR/Thread/Cond.hsc" #-}
foreign import ccall "apr_thread_cond_signal" c'apr_thread_cond_signal
  :: Ptr C'apr_thread_cond_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_signal" p'apr_thread_cond_signal
  :: FunPtr (Ptr C'apr_thread_cond_t -> IO C'apr_status_t)

{-# LINE 19 "Bindings/APR/Thread/Cond.hsc" #-}
foreign import ccall "apr_thread_cond_broadcast" c'apr_thread_cond_broadcast
  :: Ptr C'apr_thread_cond_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_broadcast" p'apr_thread_cond_broadcast
  :: FunPtr (Ptr C'apr_thread_cond_t -> IO C'apr_status_t)

{-# LINE 20 "Bindings/APR/Thread/Cond.hsc" #-}
foreign import ccall "apr_thread_cond_destroy" c'apr_thread_cond_destroy
  :: Ptr C'apr_thread_cond_t -> IO C'apr_status_t
foreign import ccall "&apr_thread_cond_destroy" p'apr_thread_cond_destroy
  :: FunPtr (Ptr C'apr_thread_cond_t -> IO C'apr_status_t)

{-# LINE 21 "Bindings/APR/Thread/Cond.hsc" #-}

foreign import ccall "apr_thread_cond_pool_get" c'apr_thread_cond_pool_get
  :: Ptr C'apr_thread_cond_t -> IO (Ptr C'apr_pool_t)
foreign import ccall "&apr_thread_cond_pool_get" p'apr_thread_cond_pool_get
  :: FunPtr (Ptr C'apr_thread_cond_t -> IO (Ptr C'apr_pool_t))

{-# LINE 23 "Bindings/APR/Thread/Cond.hsc" #-}


{-# LINE 25 "Bindings/APR/Thread/Cond.hsc" #-}