{-# LINE 1 "Bindings/APR/Proc/Mutex.hsc" #-}

{-# LINE 2 "Bindings/APR/Proc/Mutex.hsc" #-}

{-# LINE 3 "Bindings/APR/Proc/Mutex.hsc" #-}

module Bindings.APR.Proc.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

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

type C'apr_lockmech_e = CUInt

{-# LINE 10 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_FCNTL = 0
c'APR_LOCK_FCNTL :: (Num a) => a

{-# LINE 11 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_FLOCK = 1
c'APR_LOCK_FLOCK :: (Num a) => a

{-# LINE 12 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_SYSVSEM = 2
c'APR_LOCK_SYSVSEM :: (Num a) => a

{-# LINE 13 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_PROC_PTHREAD = 3
c'APR_LOCK_PROC_PTHREAD :: (Num a) => a

{-# LINE 14 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_POSIXSEM = 4
c'APR_LOCK_POSIXSEM :: (Num a) => a

{-# LINE 15 "Bindings/APR/Proc/Mutex.hsc" #-}
c'APR_LOCK_DEFAULT = 5
c'APR_LOCK_DEFAULT :: (Num a) => a

{-# LINE 16 "Bindings/APR/Proc/Mutex.hsc" #-}

data C'apr_proc_mutex_t = C'apr_proc_mutex_t

{-# LINE 18 "Bindings/APR/Proc/Mutex.hsc" #-}

foreign import ccall "apr_proc_mutex_create" c'apr_proc_mutex_create
  :: Ptr (Ptr C'apr_proc_mutex_t) -> Ptr CChar -> C'apr_lockmech_e -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_create" p'apr_proc_mutex_create
  :: FunPtr (Ptr (Ptr C'apr_proc_mutex_t) -> Ptr CChar -> C'apr_lockmech_e -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 20 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_child_init" c'apr_proc_mutex_child_init
  :: Ptr (Ptr C'apr_proc_mutex_t) -> Ptr CChar -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_child_init" p'apr_proc_mutex_child_init
  :: FunPtr (Ptr (Ptr C'apr_proc_mutex_t) -> Ptr CChar -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 21 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_lock" c'apr_proc_mutex_lock
  :: Ptr C'apr_proc_mutex_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_lock" p'apr_proc_mutex_lock
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO C'apr_status_t)

{-# LINE 22 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_trylock" c'apr_proc_mutex_trylock
  :: Ptr C'apr_proc_mutex_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_trylock" p'apr_proc_mutex_trylock
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO C'apr_status_t)

{-# LINE 23 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_unlock" c'apr_proc_mutex_unlock
  :: Ptr C'apr_proc_mutex_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_unlock" p'apr_proc_mutex_unlock
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO C'apr_status_t)

{-# LINE 24 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_destroy" c'apr_proc_mutex_destroy
  :: Ptr C'apr_proc_mutex_t -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_destroy" p'apr_proc_mutex_destroy
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO C'apr_status_t)

{-# LINE 25 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_cleanup" c'apr_proc_mutex_cleanup
  :: Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_proc_mutex_cleanup" p'apr_proc_mutex_cleanup
  :: FunPtr (Ptr () -> IO C'apr_status_t)

{-# LINE 26 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_lockfile" c'apr_proc_mutex_lockfile
  :: Ptr C'apr_proc_mutex_t -> IO (Ptr CChar)
foreign import ccall "&apr_proc_mutex_lockfile" p'apr_proc_mutex_lockfile
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO (Ptr CChar))

{-# LINE 27 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_name" c'apr_proc_mutex_name
  :: Ptr C'apr_proc_mutex_t -> IO (Ptr CChar)
foreign import ccall "&apr_proc_mutex_name" p'apr_proc_mutex_name
  :: FunPtr (Ptr C'apr_proc_mutex_t -> IO (Ptr CChar))

{-# LINE 28 "Bindings/APR/Proc/Mutex.hsc" #-}
foreign import ccall "apr_proc_mutex_defname" c'apr_proc_mutex_defname
  :: IO (Ptr CChar)
foreign import ccall "&apr_proc_mutex_defname" p'apr_proc_mutex_defname
  :: FunPtr (IO (Ptr CChar))

{-# LINE 29 "Bindings/APR/Proc/Mutex.hsc" #-}

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

{-# LINE 31 "Bindings/APR/Proc/Mutex.hsc" #-}