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

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

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

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

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

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

foreign import ccall "apr_atomic_read32" c'apr_atomic_read32
  :: Ptr C'apr_uint32_t -> IO C'apr_uint32_t
foreign import ccall "&apr_atomic_read32" p'apr_atomic_read32
  :: FunPtr (Ptr C'apr_uint32_t -> IO C'apr_uint32_t)

{-# LINE 13 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_set32" c'apr_atomic_set32
  :: Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO ()
foreign import ccall "&apr_atomic_set32" p'apr_atomic_set32
  :: FunPtr (Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO ())

{-# LINE 14 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_add32" c'apr_atomic_add32
  :: Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t
foreign import ccall "&apr_atomic_add32" p'apr_atomic_add32
  :: FunPtr (Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t)

{-# LINE 15 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_sub32" c'apr_atomic_sub32
  :: Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO ()
foreign import ccall "&apr_atomic_sub32" p'apr_atomic_sub32
  :: FunPtr (Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO ())

{-# LINE 16 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_inc32" c'apr_atomic_inc32
  :: Ptr C'apr_uint32_t -> IO C'apr_uint32_t
foreign import ccall "&apr_atomic_inc32" p'apr_atomic_inc32
  :: FunPtr (Ptr C'apr_uint32_t -> IO C'apr_uint32_t)

{-# LINE 17 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_dec32" c'apr_atomic_dec32
  :: Ptr C'apr_uint32_t -> IO CInt
foreign import ccall "&apr_atomic_dec32" p'apr_atomic_dec32
  :: FunPtr (Ptr C'apr_uint32_t -> IO CInt)

{-# LINE 18 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_cas32" c'apr_atomic_cas32
  :: Ptr C'apr_uint32_t -> C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t
foreign import ccall "&apr_atomic_cas32" p'apr_atomic_cas32
  :: FunPtr (Ptr C'apr_uint32_t -> C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t)

{-# LINE 19 "Bindings/APR/Atomic.hsc" #-}
foreign import ccall "apr_atomic_xchg32" c'apr_atomic_xchg32
  :: Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t
foreign import ccall "&apr_atomic_xchg32" p'apr_atomic_xchg32
  :: FunPtr (Ptr C'apr_uint32_t -> C'apr_uint32_t -> IO C'apr_uint32_t)

{-# LINE 20 "Bindings/APR/Atomic.hsc" #-}

foreign import ccall "apr_atomic_casptr" c'apr_atomic_casptr
  :: Ptr (Ptr ()) -> Ptr () -> Ptr () -> IO (Ptr ())
foreign import ccall "&apr_atomic_casptr" p'apr_atomic_casptr
  :: FunPtr (Ptr (Ptr ()) -> Ptr () -> Ptr () -> IO (Ptr ()))

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

{-# LINE 23 "Bindings/APR/Atomic.hsc" #-}