module Bindings.APR.Global.Mutex 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
import Bindings.APR.ErrNo
import Bindings.APR.Pools
import Bindings.APR.Proc.Mutex
data C'apr_global_mutex_t = C'apr_global_mutex_t
foreign import ccall "inline_apr_global_mutex_create" c'apr_global_mutex_create
:: Ptr (Ptr C'apr_global_mutex_t) -> Ptr CChar -> C'apr_lockmech_e -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_child_init" c'apr_global_mutex_child_init
:: Ptr (Ptr C'apr_global_mutex_t) -> Ptr CChar -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_lock" c'apr_global_mutex_lock
:: Ptr C'apr_global_mutex_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_trylock" c'apr_global_mutex_trylock
:: Ptr C'apr_global_mutex_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_unlock" c'apr_global_mutex_unlock
:: Ptr C'apr_global_mutex_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_destroy" c'apr_global_mutex_destroy
:: Ptr C'apr_global_mutex_t -> IO C'apr_status_t
foreign import ccall "inline_apr_global_mutex_pool_get" c'apr_global_mutex_pool_get
:: Ptr C'apr_global_mutex_t -> IO (Ptr C'apr_pool_t)