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

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

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

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

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

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

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

c'APR_ASCII_BLANK = 32
c'APR_ASCII_BLANK :: (Num a) => a

{-# LINE 14 "Bindings/APR/General.hsc" #-}
c'APR_ASCII_CR = 13
c'APR_ASCII_CR :: (Num a) => a

{-# LINE 15 "Bindings/APR/General.hsc" #-}
c'APR_ASCII_LF = 10
c'APR_ASCII_LF :: (Num a) => a

{-# LINE 16 "Bindings/APR/General.hsc" #-}
c'APR_ASCII_TAB = 9
c'APR_ASCII_TAB :: (Num a) => a

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

type C'apr_signum_t = CInt

{-# LINE 19 "Bindings/APR/General.hsc" #-}

-- It's impossible to wrap around APR_OFFSET() and APR_OFFSET_OF().

foreign import ccall "inline_strcasecmp" c'strcasecmp
  :: Ptr CChar -> Ptr CChar -> IO CInt

{-# LINE 23 "Bindings/APR/General.hsc" #-}
foreign import ccall "inline_strncasecmp" c'strncasecmp
  :: Ptr CChar -> Ptr CChar -> CSize -> IO CInt

{-# LINE 24 "Bindings/APR/General.hsc" #-}

-- What's the correct type for these macros?
foreign import ccall "inline_APR_ALIGN" c'APR_ALIGN
  :: C'apr_uint64_t -> C'apr_uint64_t -> IO C'apr_uint64_t

{-# LINE 27 "Bindings/APR/General.hsc" #-}
foreign import ccall "inline_APR_ALIGN_DEFAULT" c'APR_ALIGN_DEFAULT
  :: C'apr_uint64_t -> IO C'apr_uint64_t

{-# LINE 28 "Bindings/APR/General.hsc" #-}

foreign import ccall "inline_memmove" c'memmove
  :: Ptr () -> Ptr () -> CSize -> IO (Ptr ())

{-# LINE 30 "Bindings/APR/General.hsc" #-}
foreign import ccall "inline_memchr" c'memchr
  :: Ptr () -> CInt -> CSize -> IO (Ptr ())

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

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

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

{-# LINE 34 "Bindings/APR/General.hsc" #-}
foreign import ccall "apr_terminate" c'apr_terminate
  :: IO ()
foreign import ccall "&apr_terminate" p'apr_terminate
  :: FunPtr (IO ())

{-# LINE 35 "Bindings/APR/General.hsc" #-}
foreign import ccall "apr_terminate2" c'apr_terminate2
  :: IO ()
foreign import ccall "&apr_terminate2" p'apr_terminate2
  :: FunPtr (IO ())

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


{-# LINE 38 "Bindings/APR/General.hsc" #-}
foreign import ccall "apr_generate_random_bytes" c'apr_generate_random_bytes
  :: Ptr CUChar -> C'apr_size_t -> IO C'apr_status_t
foreign import ccall "&apr_generate_random_bytes" p'apr_generate_random_bytes
  :: FunPtr (Ptr CUChar -> C'apr_size_t -> IO C'apr_status_t)

{-# LINE 39 "Bindings/APR/General.hsc" #-}

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