{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnliftedFFITypes #-}
module Lz4.Internal
( requiredBufferSize
, c_hs_compress_HC
, c_hs_decompress_safe
) where
import GHC.Exts (ByteArray#, MutableByteArray#)
requiredBufferSize :: Int -> Int
{-# inline requiredBufferSize #-}
requiredBufferSize :: Int -> Int
requiredBufferSize Int
s = Int
s Int -> Int -> Int
forall a. Num a => a -> a -> a
+ (Int -> Int -> Int
forall a. Integral a => a -> a -> a
div Int
s Int
255) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
16
foreign import ccall unsafe "hs_compress_HC"
c_hs_compress_HC ::
ByteArray# ->
Int ->
MutableByteArray# s ->
Int ->
Int ->
Int ->
Int ->
IO Int
foreign import ccall unsafe "hs_decompress_safe"
c_hs_decompress_safe ::
ByteArray#
-> Int
-> MutableByteArray# s
-> Int
-> Int
-> Int
-> IO Int