Up

module Ffi

: sig
#
module type CLOSURE_PROPERTIES = sig
#
val record : Obj.t -> Obj.t -> int

record c v links the lifetimes of c and v, ensuring that v is not collected while c is still live. The return value is a key that can be used to retrieve v while v is still live.

#
val retrieve : int -> Obj.t

retrieve v retrieves a value using a key returned by record, or raises Not_found if v is no longer live.

end
#
module Make : functor (Closure_properties : CLOSURE_PROPERTIES) -> sig

Dynamic function calls based on libffi

#
val function_of_pointer : ?name:string -> abi:Libffi_abi.abi -> check_errno:bool -> ('a -> 'b) Static.fn -> unit Static.ptr -> 'a -> 'b

Build an OCaml function from a type specification and a pointer to a C function.

#
val pointer_of_function : abi:Libffi_abi.abi -> ('a -> 'b) Static.fn -> ('a -> 'b) -> unit Static.ptr

Build an C function from a type specification and an OCaml function.

The C function pointer returned is callable as long as the OCaml function value is live.

end
end