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

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

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

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

data C'apr_dbm_t = C'apr_dbm_t

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

data C'apr_datum_t = C'apr_datum_t{
{-# LINE 14 "Bindings/APR/DBM.hsc" #-}

  c'apr_datum_t'dptr :: Ptr CChar
{-# LINE 15 "Bindings/APR/DBM.hsc" #-}
,
  c'apr_datum_t'dsize :: C'apr_size_t
{-# LINE 16 "Bindings/APR/DBM.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'apr_datum_t where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'apr_datum_t v0 v1
  poke p (C'apr_datum_t v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 17 "Bindings/APR/DBM.hsc" #-}

c'APR_DBM_READONLY = 1
c'APR_DBM_READONLY :: (Num a) => a

{-# LINE 19 "Bindings/APR/DBM.hsc" #-}
c'APR_DBM_READWRITE = 2
c'APR_DBM_READWRITE :: (Num a) => a

{-# LINE 20 "Bindings/APR/DBM.hsc" #-}
c'APR_DBM_RWCREATE = 3
c'APR_DBM_RWCREATE :: (Num a) => a

{-# LINE 21 "Bindings/APR/DBM.hsc" #-}
c'APR_DBM_RWTRUNC = 4
c'APR_DBM_RWTRUNC :: (Num a) => a

{-# LINE 22 "Bindings/APR/DBM.hsc" #-}

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

{-# LINE 24 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "apr_dbm_open" c'apr_dbm_open
  :: Ptr (Ptr C'apr_dbm_t) -> Ptr CChar -> C'apr_int32_t -> C'apr_fileperms_t -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_dbm_open" p'apr_dbm_open
  :: FunPtr (Ptr (Ptr C'apr_dbm_t) -> Ptr CChar -> C'apr_int32_t -> C'apr_fileperms_t -> Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 25 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "apr_dbm_close" c'apr_dbm_close
  :: Ptr C'apr_dbm_t -> IO ()
foreign import ccall "&apr_dbm_close" p'apr_dbm_close
  :: FunPtr (Ptr C'apr_dbm_t -> IO ())

{-# LINE 26 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "inline_apr_dbm_fetch" c'apr_dbm_fetch
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> Ptr C'apr_datum_t -> IO C'apr_status_t

{-# LINE 27 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "inline_apr_dbm_store" c'apr_dbm_store
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> Ptr C'apr_datum_t -> IO C'apr_status_t

{-# LINE 28 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "inline_apr_dbm_delete" c'apr_dbm_delete
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO C'apr_status_t

{-# LINE 29 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "inline_apr_dbm_exists" c'apr_dbm_exists
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO CInt

{-# LINE 30 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "apr_dbm_firstkey" c'apr_dbm_firstkey
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO C'apr_status_t
foreign import ccall "&apr_dbm_firstkey" p'apr_dbm_firstkey
  :: FunPtr (Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO C'apr_status_t)

{-# LINE 31 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "apr_dbm_nextkey" c'apr_dbm_nextkey
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO C'apr_status_t
foreign import ccall "&apr_dbm_nextkey" p'apr_dbm_nextkey
  :: FunPtr (Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO C'apr_status_t)

{-# LINE 32 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "inline_apr_dbm_freedatum" c'apr_dbm_freedatum
  :: Ptr C'apr_dbm_t -> Ptr C'apr_datum_t -> IO ()

{-# LINE 33 "Bindings/APR/DBM.hsc" #-}
foreign import ccall "apr_dbm_geterror" c'apr_dbm_geterror
  :: Ptr C'apr_dbm_t -> Ptr CInt -> Ptr CChar -> C'apr_size_t -> IO (Ptr CChar)
foreign import ccall "&apr_dbm_geterror" p'apr_dbm_geterror
  :: FunPtr (Ptr C'apr_dbm_t -> Ptr CInt -> Ptr CChar -> C'apr_size_t -> IO (Ptr CChar))

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

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

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