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

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

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

module Bindings.APR.Pools 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/Pools.hsc" #-}
import Bindings.APR
import Bindings.APR.Allocator.Types
import Bindings.APR.ErrNo

data C'apr_pool_t = C'apr_pool_t

{-# LINE 11 "Bindings/APR/Pools.hsc" #-}

c'APR_POOL_DEBUG = 0
c'APR_POOL_DEBUG :: (Num a) => a

{-# LINE 13 "Bindings/APR/Pools.hsc" #-}

type C'apr_abortfunc_t = FunPtr (CInt -> IO CInt)
foreign import ccall "wrapper" mk'apr_abortfunc_t
  :: (CInt -> IO CInt) -> IO C'apr_abortfunc_t
foreign import ccall "dynamic" mK'apr_abortfunc_t
  :: C'apr_abortfunc_t -> (CInt -> IO CInt)

{-# LINE 15 "Bindings/APR/Pools.hsc" #-}

foreign import ccall "apr_pool_initialize" c'apr_pool_initialize
  :: IO C'apr_status_t
foreign import ccall "&apr_pool_initialize" p'apr_pool_initialize
  :: FunPtr (IO C'apr_status_t)

{-# LINE 17 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_terminate" c'apr_pool_terminate
  :: IO ()
foreign import ccall "&apr_pool_terminate" p'apr_pool_terminate
  :: FunPtr (IO ())

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


{-# LINE 30 "Bindings/APR/Pools.hsc" #-}

foreign import ccall "apr_pool_create_ex" c'apr_pool_create_ex
  :: Ptr (Ptr C'apr_pool_t) -> Ptr C'apr_pool_t -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t
foreign import ccall "&apr_pool_create_ex" p'apr_pool_create_ex
  :: FunPtr (Ptr (Ptr C'apr_pool_t) -> Ptr C'apr_pool_t -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t)

{-# LINE 32 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_create_core_ex" c'apr_pool_create_core_ex
  :: Ptr (Ptr C'apr_pool_t) -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t
foreign import ccall "&apr_pool_create_core_ex" p'apr_pool_create_core_ex
  :: FunPtr (Ptr (Ptr C'apr_pool_t) -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t)

{-# LINE 33 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_create_unmanaged_ex" c'apr_pool_create_unmanaged_ex
  :: Ptr (Ptr C'apr_pool_t) -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t
foreign import ccall "&apr_pool_create_unmanaged_ex" p'apr_pool_create_unmanaged_ex
  :: FunPtr (Ptr (Ptr C'apr_pool_t) -> C'apr_abortfunc_t -> Ptr C'apr_allocator_t -> IO C'apr_status_t)

{-# LINE 34 "Bindings/APR/Pools.hsc" #-}


{-# LINE 36 "Bindings/APR/Pools.hsc" #-}

foreign import ccall "inline_apr_pool_create" c'apr_pool_create
  :: Ptr (Ptr C'apr_pool_t) -> Ptr C'apr_pool_t -> IO C'apr_status_t

{-# LINE 38 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "inline_apr_pool_create_core" c'apr_pool_create_core
  :: Ptr (Ptr C'apr_pool_t) -> IO C'apr_status_t

{-# LINE 39 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "inline_apr_pool_create_unmanaged" c'apr_pool_create_unmanaged
  :: Ptr (Ptr C'apr_pool_t) -> IO C'apr_status_t

{-# LINE 40 "Bindings/APR/Pools.hsc" #-}

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

{-# LINE 42 "Bindings/APR/Pools.hsc" #-}


{-# LINE 47 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_clear" c'apr_pool_clear
  :: Ptr C'apr_pool_t -> IO ()
foreign import ccall "&apr_pool_clear" p'apr_pool_clear
  :: FunPtr (Ptr C'apr_pool_t -> IO ())

{-# LINE 48 "Bindings/APR/Pools.hsc" #-}

{-# LINE 49 "Bindings/APR/Pools.hsc" #-}


{-# LINE 54 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_destroy" c'apr_pool_destroy
  :: Ptr C'apr_pool_t -> IO ()
foreign import ccall "&apr_pool_destroy" p'apr_pool_destroy
  :: FunPtr (Ptr C'apr_pool_t -> IO ())

{-# LINE 55 "Bindings/APR/Pools.hsc" #-}

{-# LINE 56 "Bindings/APR/Pools.hsc" #-}


{-# LINE 61 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_palloc" c'apr_palloc
  :: Ptr C'apr_pool_t -> C'apr_size_t -> IO (Ptr ())
foreign import ccall "&apr_palloc" p'apr_palloc
  :: FunPtr (Ptr C'apr_pool_t -> C'apr_size_t -> IO (Ptr ()))

{-# LINE 62 "Bindings/APR/Pools.hsc" #-}

{-# LINE 63 "Bindings/APR/Pools.hsc" #-}

foreign import ccall "inline_apr_pcalloc" c'apr_pcalloc
  :: Ptr C'apr_pool_t -> C'apr_size_t -> IO (Ptr ())

{-# LINE 65 "Bindings/APR/Pools.hsc" #-}

{-# LINE 68 "Bindings/APR/Pools.hsc" #-}

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

{-# LINE 70 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_abort_get" c'apr_pool_abort_get
  :: Ptr C'apr_pool_t -> IO C'apr_abortfunc_t
foreign import ccall "&apr_pool_abort_get" p'apr_pool_abort_get
  :: FunPtr (Ptr C'apr_pool_t -> IO C'apr_abortfunc_t)

{-# LINE 71 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_parent_get" c'apr_pool_parent_get
  :: Ptr C'apr_pool_t -> IO (Ptr C'apr_pool_t)
foreign import ccall "&apr_pool_parent_get" p'apr_pool_parent_get
  :: FunPtr (Ptr C'apr_pool_t -> IO (Ptr C'apr_pool_t))

{-# LINE 72 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_is_ancestor" c'apr_pool_is_ancestor
  :: Ptr C'apr_pool_t -> Ptr C'apr_pool_t -> IO CInt
foreign import ccall "&apr_pool_is_ancestor" p'apr_pool_is_ancestor
  :: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_pool_t -> IO CInt)

{-# LINE 73 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_tag" c'apr_pool_tag
  :: Ptr C'apr_pool_t -> Ptr CChar -> IO ()
foreign import ccall "&apr_pool_tag" p'apr_pool_tag
  :: FunPtr (Ptr C'apr_pool_t -> Ptr CChar -> IO ())

{-# LINE 74 "Bindings/APR/Pools.hsc" #-}

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

{-# LINE 76 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_userdata_setn" c'apr_pool_userdata_setn
  :: Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO C'apr_status_t) -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_pool_userdata_setn" p'apr_pool_userdata_setn
  :: FunPtr (Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO C'apr_status_t) -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 77 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_userdata_get" c'apr_pool_userdata_get
  :: Ptr (Ptr ()) -> Ptr CChar -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_pool_userdata_get" p'apr_pool_userdata_get
  :: FunPtr (Ptr (Ptr ()) -> Ptr CChar -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 78 "Bindings/APR/Pools.hsc" #-}

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

{-# LINE 80 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_pre_cleanup_register" c'apr_pool_pre_cleanup_register
  :: Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ()
foreign import ccall "&apr_pool_pre_cleanup_register" p'apr_pool_pre_cleanup_register
  :: FunPtr (Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ())

{-# LINE 81 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_cleanup_kill" c'apr_pool_cleanup_kill
  :: Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ()
foreign import ccall "&apr_pool_cleanup_kill" p'apr_pool_cleanup_kill
  :: FunPtr (Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ())

{-# LINE 82 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_child_cleanup_set" c'apr_pool_child_cleanup_set
  :: Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ()
foreign import ccall "&apr_pool_child_cleanup_set" p'apr_pool_child_cleanup_set
  :: FunPtr (Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO ())

{-# LINE 83 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_cleanup_run" c'apr_pool_cleanup_run
  :: Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO C'apr_status_t
foreign import ccall "&apr_pool_cleanup_run" p'apr_pool_cleanup_run
  :: FunPtr (Ptr C'apr_pool_t -> Ptr () -> FunPtr (Ptr () -> IO C'apr_status_t) -> IO C'apr_status_t)

{-# LINE 84 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_cleanup_null" c'apr_pool_cleanup_null
  :: Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_pool_cleanup_null" p'apr_pool_cleanup_null
  :: FunPtr (Ptr () -> IO C'apr_status_t)

{-# LINE 85 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "apr_pool_cleanup_for_exec" c'apr_pool_cleanup_for_exec
  :: Ptr () -> IO ()
foreign import ccall "&apr_pool_cleanup_for_exec" p'apr_pool_cleanup_for_exec
  :: FunPtr (Ptr () -> IO ())

{-# LINE 86 "Bindings/APR/Pools.hsc" #-}


{-# LINE 93 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "inline_apr_pool_join" c'apr_pool_join
  :: Ptr C'apr_pool_t -> Ptr C'apr_pool_t -> IO ()

{-# LINE 94 "Bindings/APR/Pools.hsc" #-}
foreign import ccall "inline_apr_pool_lock" c'apr_pool_lock
  :: Ptr C'apr_pool_t -> CInt -> IO ()

{-# LINE 95 "Bindings/APR/Pools.hsc" #-}

{-# LINE 96 "Bindings/APR/Pools.hsc" #-}