2009-06-09 12:21:19 +02:00
|
|
|
.Dd February 15, 2008
|
|
|
|
.Dt ffi_prep_cif 3
|
|
|
|
.Sh NAME
|
|
|
|
.Nm ffi_prep_cif
|
|
|
|
.Nd Prepare a
|
|
|
|
.Nm ffi_cif
|
|
|
|
structure for use with
|
|
|
|
.Nm ffi_call
|
|
|
|
.
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.In ffi.h
|
|
|
|
.Ft ffi_status
|
|
|
|
.Fo ffi_prep_cif
|
|
|
|
.Fa "ffi_cif *cif"
|
|
|
|
.Fa "ffi_abi abi"
|
|
|
|
.Fa "unsigned int nargs"
|
|
|
|
.Fa "ffi_type *rtype"
|
|
|
|
.Fa "ffi_type **atypes"
|
|
|
|
.Fc
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm ffi_prep_cif
|
|
|
|
function prepares a
|
|
|
|
.Nm ffi_cif
|
|
|
|
structure for use with
|
|
|
|
.Nm ffi_call
|
|
|
|
.
|
|
|
|
.Fa abi
|
|
|
|
specifies a set of calling conventions to use.
|
|
|
|
.Fa atypes
|
|
|
|
is an array of
|
|
|
|
.Fa nargs
|
|
|
|
pointers to
|
|
|
|
.Nm ffi_type
|
|
|
|
structs that describe the data type, size and alignment of each argument.
|
|
|
|
.Fa rtype
|
|
|
|
points to an
|
|
|
|
.Nm ffi_type
|
|
|
|
that describes the data type, size and alignment of the
|
2012-03-04 22:11:09 +01:00
|
|
|
return value. Note that to call a variadic function
|
|
|
|
.Nm ffi_prep_cif_var
|
|
|
|
must be used instead.
|
2009-06-09 12:21:19 +02:00
|
|
|
.Sh RETURN VALUES
|
|
|
|
Upon successful completion,
|
|
|
|
.Nm ffi_prep_cif
|
|
|
|
returns
|
|
|
|
.Nm FFI_OK .
|
|
|
|
It will return
|
|
|
|
.Nm FFI_BAD_TYPEDEF
|
|
|
|
if
|
|
|
|
.Fa cif
|
|
|
|
is
|
|
|
|
.Nm NULL
|
|
|
|
or
|
|
|
|
.Fa atypes
|
|
|
|
or
|
|
|
|
.Fa rtype
|
|
|
|
is malformed. If
|
|
|
|
.Fa abi
|
|
|
|
does not refer to a valid ABI,
|
|
|
|
.Nm FFI_BAD_ABI
|
|
|
|
will be returned. Available ABIs are
|
|
|
|
defined in
|
2015-01-12 17:19:59 +01:00
|
|
|
.Nm <ffitarget.h> .
|
2009-06-09 12:21:19 +02:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr ffi 3 ,
|
2012-03-04 22:11:09 +01:00
|
|
|
.Xr ffi_call 3 ,
|
|
|
|
.Xr ffi_prep_cif_var 3
|