{-# LINE 1 "src/Data/Conduit/BZlib/Internal.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}




module Data.Conduit.BZlib.Internal 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 9 "src/Data/Conduit/BZlib/Internal.hsc" #-}

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

{-# LINE 11 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_FLUSH = 1
c'BZ_FLUSH :: (Num a) => a

{-# LINE 12 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_FINISH = 2
c'BZ_FINISH :: (Num a) => a

{-# LINE 13 "src/Data/Conduit/BZlib/Internal.hsc" #-}

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

{-# LINE 15 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_RUN_OK = 1
c'BZ_RUN_OK :: (Num a) => a

{-# LINE 16 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_FLUSH_OK = 2
c'BZ_FLUSH_OK :: (Num a) => a

{-# LINE 17 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_FINISH_OK = 3
c'BZ_FINISH_OK :: (Num a) => a

{-# LINE 18 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_STREAM_END = 4
c'BZ_STREAM_END :: (Num a) => a

{-# LINE 19 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_SEQUENCE_ERROR = -1
c'BZ_SEQUENCE_ERROR :: (Num a) => a

{-# LINE 20 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_PARAM_ERROR = -2
c'BZ_PARAM_ERROR :: (Num a) => a

{-# LINE 21 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_MEM_ERROR = -3
c'BZ_MEM_ERROR :: (Num a) => a

{-# LINE 22 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_DATA_ERROR = -4
c'BZ_DATA_ERROR :: (Num a) => a

{-# LINE 23 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_DATA_ERROR_MAGIC = -5
c'BZ_DATA_ERROR_MAGIC :: (Num a) => a

{-# LINE 24 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_IO_ERROR = -6
c'BZ_IO_ERROR :: (Num a) => a

{-# LINE 25 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_UNEXPECTED_EOF = -7
c'BZ_UNEXPECTED_EOF :: (Num a) => a

{-# LINE 26 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_OUTBUFF_FULL = -8
c'BZ_OUTBUFF_FULL :: (Num a) => a

{-# LINE 27 "src/Data/Conduit/BZlib/Internal.hsc" #-}
c'BZ_CONFIG_ERROR = -9
c'BZ_CONFIG_ERROR :: (Num a) => a

{-# LINE 28 "src/Data/Conduit/BZlib/Internal.hsc" #-}


{-# LINE 30 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 31 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 32 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 33 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 34 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 35 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 36 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 37 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 38 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 39 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 40 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 41 "src/Data/Conduit/BZlib/Internal.hsc" #-}

{-# LINE 42 "src/Data/Conduit/BZlib/Internal.hsc" #-}
data C'bz_stream = C'bz_stream{
  c'bz_stream'next_in :: Ptr CChar,
  c'bz_stream'avail_in :: CUInt,
  c'bz_stream'total_in_lo32 :: CUInt,
  c'bz_stream'total_in_hi32 :: CUInt,
  c'bz_stream'next_out :: Ptr CChar,
  c'bz_stream'avail_out :: CUInt,
  c'bz_stream'total_out_lo32 :: CUInt,
  c'bz_stream'total_out_hi32 :: CUInt,
  c'bz_stream'state :: Ptr (),
  c'bz_stream'bzalloc :: Ptr (),
  c'bz_stream'bzfree :: Ptr (),
  c'bz_stream'opaque :: Ptr ()
} deriving (Eq,Show)
p'bz_stream'next_in p = plusPtr p 0
p'bz_stream'next_in :: Ptr (C'bz_stream) -> Ptr (Ptr CChar)
p'bz_stream'avail_in p = plusPtr p 8
p'bz_stream'avail_in :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'total_in_lo32 p = plusPtr p 12
p'bz_stream'total_in_lo32 :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'total_in_hi32 p = plusPtr p 16
p'bz_stream'total_in_hi32 :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'next_out p = plusPtr p 24
p'bz_stream'next_out :: Ptr (C'bz_stream) -> Ptr (Ptr CChar)
p'bz_stream'avail_out p = plusPtr p 32
p'bz_stream'avail_out :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'total_out_lo32 p = plusPtr p 36
p'bz_stream'total_out_lo32 :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'total_out_hi32 p = plusPtr p 40
p'bz_stream'total_out_hi32 :: Ptr (C'bz_stream) -> Ptr (CUInt)
p'bz_stream'state p = plusPtr p 48
p'bz_stream'state :: Ptr (C'bz_stream) -> Ptr (Ptr ())
p'bz_stream'bzalloc p = plusPtr p 56
p'bz_stream'bzalloc :: Ptr (C'bz_stream) -> Ptr (Ptr ())
p'bz_stream'bzfree p = plusPtr p 64
p'bz_stream'bzfree :: Ptr (C'bz_stream) -> Ptr (Ptr ())
p'bz_stream'opaque p = plusPtr p 72
p'bz_stream'opaque :: Ptr (C'bz_stream) -> Ptr (Ptr ())
instance Storable C'bz_stream where
  sizeOf _ = 80
  alignment _ = 8
  peek _p = do
    v0 <- peekByteOff _p 0
    v1 <- peekByteOff _p 8
    v2 <- peekByteOff _p 12
    v3 <- peekByteOff _p 16
    v4 <- peekByteOff _p 24
    v5 <- peekByteOff _p 32
    v6 <- peekByteOff _p 36
    v7 <- peekByteOff _p 40
    v8 <- peekByteOff _p 48
    v9 <- peekByteOff _p 56
    v10 <- peekByteOff _p 64
    v11 <- peekByteOff _p 72
    return $ C'bz_stream v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
  poke _p (C'bz_stream v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11) = do
    pokeByteOff _p 0 v0
    pokeByteOff _p 8 v1
    pokeByteOff _p 12 v2
    pokeByteOff _p 16 v3
    pokeByteOff _p 24 v4
    pokeByteOff _p 32 v5
    pokeByteOff _p 36 v6
    pokeByteOff _p 40 v7
    pokeByteOff _p 48 v8
    pokeByteOff _p 56 v9
    pokeByteOff _p 64 v10
    pokeByteOff _p 72 v11
    return ()

{-# LINE 43 "src/Data/Conduit/BZlib/Internal.hsc" #-}

foreign import ccall "BZ2_bzCompressInit" c'BZ2_bzCompressInit
  :: Ptr C'bz_stream -> CInt -> CInt -> CInt -> IO CInt
foreign import ccall "&BZ2_bzCompressInit" p'BZ2_bzCompressInit
  :: FunPtr (Ptr C'bz_stream -> CInt -> CInt -> CInt -> IO CInt)

{-# LINE 45 "src/Data/Conduit/BZlib/Internal.hsc" #-}
foreign import ccall "BZ2_bzCompress" c'BZ2_bzCompress
  :: Ptr C'bz_stream -> CInt -> IO CInt
foreign import ccall "&BZ2_bzCompress" p'BZ2_bzCompress
  :: FunPtr (Ptr C'bz_stream -> CInt -> IO CInt)

{-# LINE 46 "src/Data/Conduit/BZlib/Internal.hsc" #-}
foreign import ccall "BZ2_bzCompressEnd" c'BZ2_bzCompressEnd
  :: Ptr C'bz_stream -> IO CInt
foreign import ccall "&BZ2_bzCompressEnd" p'BZ2_bzCompressEnd
  :: FunPtr (Ptr C'bz_stream -> IO CInt)

{-# LINE 47 "src/Data/Conduit/BZlib/Internal.hsc" #-}

foreign import ccall "BZ2_bzDecompressInit" c'BZ2_bzDecompressInit
  :: Ptr C'bz_stream -> CInt -> CInt -> IO CInt
foreign import ccall "&BZ2_bzDecompressInit" p'BZ2_bzDecompressInit
  :: FunPtr (Ptr C'bz_stream -> CInt -> CInt -> IO CInt)

{-# LINE 49 "src/Data/Conduit/BZlib/Internal.hsc" #-}
foreign import ccall "BZ2_bzDecompress" c'BZ2_bzDecompress
  :: Ptr C'bz_stream -> IO CInt
foreign import ccall "&BZ2_bzDecompress" p'BZ2_bzDecompress
  :: FunPtr (Ptr C'bz_stream -> IO CInt)

{-# LINE 50 "src/Data/Conduit/BZlib/Internal.hsc" #-}
foreign import ccall "BZ2_bzDecompressEnd" c'BZ2_bzDecompressEnd
  :: Ptr C'bz_stream -> IO CInt
foreign import ccall "&BZ2_bzDecompressEnd" p'BZ2_bzDecompressEnd
  :: FunPtr (Ptr C'bz_stream -> IO CInt)

{-# LINE 51 "src/Data/Conduit/BZlib/Internal.hsc" #-}