.Dd January 25, 2011 | |
.Dt ffi_prep_cif_var 3 | |
.Sh NAME | |
.Nm ffi_prep_cif_var | |
.Nd Prepare a | |
.Nm ffi_cif | |
structure for use with | |
.Nm ffi_call | |
for variadic functions. | |
.Sh SYNOPSIS | |
.In ffi.h | |
.Ft ffi_status | |
.Fo ffi_prep_cif_var | |
.Fa "ffi_cif *cif" | |
.Fa "ffi_abi abi" | |
.Fa "unsigned int nfixedargs" | |
.Fa "unsigned int ntotalargs" | |
.Fa "ffi_type *rtype" | |
.Fa "ffi_type **atypes" | |
.Fc | |
.Sh DESCRIPTION | |
The | |
.Nm ffi_prep_cif_var | |
function prepares a | |
.Nm ffi_cif | |
structure for use with | |
.Nm ffi_call | |
for variadic functions. | |
.Fa abi | |
specifies a set of calling conventions to use. | |
.Fa atypes | |
is an array of | |
.Fa ntotalargs | |
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 | |
return value. | |
.Fa nfixedargs | |
must contain the number of fixed (non-variadic) arguments. | |
Note that to call a non-variadic function | |
.Nm ffi_prep_cif | |
must be used. | |
.Sh RETURN VALUES | |
Upon successful completion, | |
.Nm ffi_prep_cif_var | |
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 | |
.Nm <ffitarget.h> | |
. | |
.Sh SEE ALSO | |
.Xr ffi 3 , | |
.Xr ffi_call 3 , | |
.Xr ffi_prep_cif 3 | |