xref: /aosp_15_r20/external/libffi/man/ffi_prep_cif_var.3 (revision 1fd5a2e1d639cd1ddf29dd0c484c123bbd850c21)
1*1fd5a2e1SPrashanth Swaminathan.Dd January 25, 2011
2*1fd5a2e1SPrashanth Swaminathan.Dt ffi_prep_cif_var 3
3*1fd5a2e1SPrashanth Swaminathan.Sh NAME
4*1fd5a2e1SPrashanth Swaminathan.Nm ffi_prep_cif_var
5*1fd5a2e1SPrashanth Swaminathan.Nd Prepare a
6*1fd5a2e1SPrashanth Swaminathan.Nm ffi_cif
7*1fd5a2e1SPrashanth Swaminathanstructure for use with
8*1fd5a2e1SPrashanth Swaminathan.Nm ffi_call
9*1fd5a2e1SPrashanth Swaminathanfor variadic functions.
10*1fd5a2e1SPrashanth Swaminathan.Sh SYNOPSIS
11*1fd5a2e1SPrashanth Swaminathan.In ffi.h
12*1fd5a2e1SPrashanth Swaminathan.Ft ffi_status
13*1fd5a2e1SPrashanth Swaminathan.Fo ffi_prep_cif_var
14*1fd5a2e1SPrashanth Swaminathan.Fa "ffi_cif *cif"
15*1fd5a2e1SPrashanth Swaminathan.Fa "ffi_abi abi"
16*1fd5a2e1SPrashanth Swaminathan.Fa "unsigned int nfixedargs"
17*1fd5a2e1SPrashanth Swaminathan.Fa "unsigned int ntotalargs"
18*1fd5a2e1SPrashanth Swaminathan.Fa "ffi_type *rtype"
19*1fd5a2e1SPrashanth Swaminathan.Fa "ffi_type **atypes"
20*1fd5a2e1SPrashanth Swaminathan.Fc
21*1fd5a2e1SPrashanth Swaminathan.Sh DESCRIPTION
22*1fd5a2e1SPrashanth SwaminathanThe
23*1fd5a2e1SPrashanth Swaminathan.Nm ffi_prep_cif_var
24*1fd5a2e1SPrashanth Swaminathanfunction prepares a
25*1fd5a2e1SPrashanth Swaminathan.Nm ffi_cif
26*1fd5a2e1SPrashanth Swaminathanstructure for use with
27*1fd5a2e1SPrashanth Swaminathan.Nm ffi_call
28*1fd5a2e1SPrashanth Swaminathanfor variadic functions.
29*1fd5a2e1SPrashanth Swaminathan.Fa abi
30*1fd5a2e1SPrashanth Swaminathanspecifies a set of calling conventions to use.
31*1fd5a2e1SPrashanth Swaminathan.Fa atypes
32*1fd5a2e1SPrashanth Swaminathanis an array of
33*1fd5a2e1SPrashanth Swaminathan.Fa ntotalargs
34*1fd5a2e1SPrashanth Swaminathanpointers to
35*1fd5a2e1SPrashanth Swaminathan.Nm ffi_type
36*1fd5a2e1SPrashanth Swaminathanstructs that describe the data type, size and alignment of each argument.
37*1fd5a2e1SPrashanth Swaminathan.Fa rtype
38*1fd5a2e1SPrashanth Swaminathanpoints to an
39*1fd5a2e1SPrashanth Swaminathan.Nm ffi_type
40*1fd5a2e1SPrashanth Swaminathanthat describes the data type, size and alignment of the
41*1fd5a2e1SPrashanth Swaminathanreturn value.
42*1fd5a2e1SPrashanth Swaminathan.Fa nfixedargs
43*1fd5a2e1SPrashanth Swaminathanmust contain the number of fixed (non-variadic) arguments.
44*1fd5a2e1SPrashanth SwaminathanNote that to call a non-variadic function
45*1fd5a2e1SPrashanth Swaminathan.Nm ffi_prep_cif
46*1fd5a2e1SPrashanth Swaminathanmust be used.
47*1fd5a2e1SPrashanth Swaminathan.Sh RETURN VALUES
48*1fd5a2e1SPrashanth SwaminathanUpon successful completion,
49*1fd5a2e1SPrashanth Swaminathan.Nm ffi_prep_cif_var
50*1fd5a2e1SPrashanth Swaminathanreturns
51*1fd5a2e1SPrashanth Swaminathan.Nm FFI_OK .
52*1fd5a2e1SPrashanth SwaminathanIt will return
53*1fd5a2e1SPrashanth Swaminathan.Nm FFI_BAD_TYPEDEF
54*1fd5a2e1SPrashanth Swaminathanif
55*1fd5a2e1SPrashanth Swaminathan.Fa cif
56*1fd5a2e1SPrashanth Swaminathanis
57*1fd5a2e1SPrashanth Swaminathan.Nm NULL
58*1fd5a2e1SPrashanth Swaminathanor
59*1fd5a2e1SPrashanth Swaminathan.Fa atypes
60*1fd5a2e1SPrashanth Swaminathanor
61*1fd5a2e1SPrashanth Swaminathan.Fa rtype
62*1fd5a2e1SPrashanth Swaminathanis malformed. If
63*1fd5a2e1SPrashanth Swaminathan.Fa abi
64*1fd5a2e1SPrashanth Swaminathandoes not refer to a valid ABI,
65*1fd5a2e1SPrashanth Swaminathan.Nm FFI_BAD_ABI
66*1fd5a2e1SPrashanth Swaminathanwill be returned. Available ABIs are
67*1fd5a2e1SPrashanth Swaminathandefined in
68*1fd5a2e1SPrashanth Swaminathan.Nm <ffitarget.h>
69*1fd5a2e1SPrashanth Swaminathan.
70*1fd5a2e1SPrashanth Swaminathan.Sh SEE ALSO
71*1fd5a2e1SPrashanth Swaminathan.Xr ffi 3 ,
72*1fd5a2e1SPrashanth Swaminathan.Xr ffi_call 3 ,
73*1fd5a2e1SPrashanth Swaminathan.Xr ffi_prep_cif 3
74