{-# LANGUAGE CPP #-} {-# LANGUAGE InterruptibleFFI #-} {-# LANGUAGE Trustworthy #-} module Lukko.Internal.FillBytes (fillBytes) where #if MIN_VERSION_base(4,8,0) import Foreign.Marshal.Utils (fillBytes) #else import Data.Word (Word8) import Foreign.C.Types (CInt (..), CSize (..)) import Foreign.Ptr (Ptr (..)) #endif #if !MIN_VERSION_base(4,8,0) fillBytes :: Ptr a -> Word8 -> Int -> IO () fillBytes dest char size = do _ <- memset dest (fromIntegral char) (fromIntegral size) return () foreign import ccall unsafe "string.h" memset :: Ptr a -> CInt -> CSize -> IO (Ptr a) #endif