2017-12-07 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / libffi / man / ffi_prep_cif_var.3
blob7e19d0b070f17fed3f0890dd433e188b890d1466
1 .Dd January 25, 2011
2 .Dt ffi_prep_cif_var 3
3 .Sh NAME
4 .Nm ffi_prep_cif_var
5 .Nd Prepare a
6 .Nm ffi_cif
7 structure for use with
8 .Nm ffi_call
9 for variadic functions.
10 .Sh SYNOPSIS
11 .In ffi.h
12 .Ft ffi_status
13 .Fo ffi_prep_cif_var
14 .Fa "ffi_cif *cif"
15 .Fa "ffi_abi abi"
16 .Fa "unsigned int nfixedargs"
17 .Fa "unsigned int ntotalargs"
18 .Fa "ffi_type *rtype"
19 .Fa "ffi_type **atypes"
20 .Fc
21 .Sh DESCRIPTION
22 The
23 .Nm ffi_prep_cif_var
24 function prepares a
25 .Nm ffi_cif
26 structure for use with
27 .Nm ffi_call
28 for variadic functions.
29 .Fa abi
30 specifies a set of calling conventions to use.
31 .Fa atypes
32 is an array of
33 .Fa ntotalargs
34 pointers to
35 .Nm ffi_type
36 structs that describe the data type, size and alignment of each argument.
37 .Fa rtype
38 points to an
39 .Nm ffi_type
40 that describes the data type, size and alignment of the
41 return value.
42 .Fa nfixedargs
43 must contain the number of fixed (non-variadic) arguments.
44 Note that to call a non-variadic function
45 .Nm ffi_prep_cif
46 must be used.
47 .Sh RETURN VALUES
48 Upon successful completion,
49 .Nm ffi_prep_cif_var
50 returns
51 .Nm FFI_OK .
52 It will return
53 .Nm FFI_BAD_TYPEDEF
55 .Fa cif
57 .Nm NULL
59 .Fa atypes
61 .Fa rtype
62 is malformed. If
63 .Fa abi
64 does not refer to a valid ABI,
65 .Nm FFI_BAD_ABI
66 will be returned. Available ABIs are
67 defined in
68 .Nm <ffitarget.h>
70 .Sh SEE ALSO
71 .Xr ffi 3 ,
72 .Xr ffi_call 3 ,
73 .Xr ffi_prep_cif 3