| Safe Haskell | None | 
|---|---|
| Language | Haskell98 | 
System.Posix.DynamicLinker.Template
Documentation
Arguments
| :: Name | Name of the data type  | 
| -> Callconv | Calling convention: CCall or StdCall  | 
| -> Name | Name of the function used to transform symbol names  | 
| -> Q [Dec] | 
Generate dynamic linking FFI methods for each field in the first parameter
Constructors
| CCall | |
| StdCall | |
| CApi | |
| Prim | |
| JavaScript | 
A value of type  is a pointer to a function callable
 from foreign code.  The type FunPtr aa will normally be a foreign type,
 a function type with zero or more arguments where
- the argument types are marshallable foreign types,
   i.e. 
Char,Int,Double,Float,Bool,Int8,Int16,Int32,Int64,Word8,Word16,Word32,Word64,,Ptra,FunPtraor a renaming of any of these usingStablePtranewtype. - the return type is either a marshallable foreign type or has the form
   
whereIOttis a marshallable foreign type or(). 
A value of type  may be a pointer to a foreign function,
 either returned by another foreign function or imported with a
 a static address import likeFunPtr a
foreign import ccall "stdlib.h &free" p_free :: FunPtr (Ptr a -> IO ())
or a pointer to a Haskell function created using a wrapper stub
 declared to produce a FunPtr of the correct type.  For example:
type Compare = Int -> Int -> Bool foreign import ccall "wrapper" mkCompare :: Compare -> IO (FunPtr Compare)
Calls to wrapper stubs like mkCompare allocate storage, which
 should be released with freeHaskellFunPtr when no
 longer required.
To convert FunPtr values to corresponding Haskell functions, one
 can define a dynamic stub for the specific foreign type, e.g.
type IntFunction = CInt -> IO () foreign import ccall "dynamic" mkFun :: FunPtr IntFunction -> IntFunction