{- | This is the only module that normal users should need to import. As an example, allocate 1GB of memory, zero it, and crash: @ import System.Posix.DynamicLinker import Foreign.Ptr import Foreign.LibFFI main = do malloc <- dlsym Default \"malloc\" memset <- dlsym Default \"memset\" p <- callFFI malloc (retPtr retVoid) [argCSize (2^30)] callFFI memset (retPtr retVoid) [argPtr p, argCInt 0, argCSize (2^30)] callFFI memset (retPtr retVoid) [argPtr nullPtr, argCInt 0, argCSize 1] @ -} module Foreign.LibFFI (Arg ,RetType ,callFFI ,withRetType ,module Foreign.LibFFI.Types ) where import Foreign.LibFFI.Base import Foreign.LibFFI.Types