-- | See <http://sourceware.org/libffi>.

module Bindings.Libffi (

    -- * The basics

    ffi_prep_cif,
    ffi_call,
    Ffi_cif,
    Ffi_status,
    _FFI_OK,
    _FFI_BAD_TYPEDEF,
    _FFI_BAD_ABI,

    -- * Types

    -- ** Primitive Types

    ffi_type_void,
    ffi_type_uint8,
    ffi_type_sint8,
    ffi_type_uint16,
    ffi_type_sint16,
    ffi_type_uint32,
    ffi_type_sint32,
    ffi_type_uint64,
    ffi_type_sint64,
    ffi_type_float,
    ffi_type_double,
    ffi_type_uchar,
    ffi_type_schar,
    ffi_type_ushort,
    ffi_type_sshort,
    ffi_type_uint,
    ffi_type_sint,
    ffi_type_ulong,
    ffi_type_slong,
    ffi_type_pointer,

    -- ** Structures

    Ffi_type,

    -- * Multiple ABIs

    Ffi_abi,
    _FFI_FIRST_ABI,
    _FFI_DEFAULT_ABI,

    -- * The Closure API

    _FFI_CLOSURES,
    ffi_closure_alloc,
    ffi_closure_free,
    ffi_prep_closure_loc,
    Ffi_closure

 ) where

import LibffiConstants
import LibffiTypes
import LibffiFunctions