libffi-0.1: A binding to libffi

Safe HaskellNone
LanguageHaskell98

Foreign.LibFFI.Base

Description

This module defines the basic libffi machinery. You will need this to create support for new ffi types.

Documentation

newtype Arg Source

Constructors

Arg 

Fields

unArg :: IO (Ptr CType, Ptr CValue, IO ())
 

customPointerArg :: (a -> IO (Ptr b)) -> (Ptr b -> IO ()) -> a -> Arg Source

data RetType a Source

Constructors

RetType (Ptr CType) ((Ptr CValue -> IO ()) -> IO a) 

Instances

withRetType :: (a -> IO b) -> RetType a -> RetType b Source

callFFI :: FunPtr a -> RetType b -> [Arg] -> IO b Source