1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| .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
| return value. Note that to call a variadic function
| .Nm ffi_prep_cif_var
| must be used instead.
| .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
| .Nm <ffitarget.h> .
| .Sh SEE ALSO
| .Xr ffi 3 ,
| .Xr ffi_call 3 ,
| .Xr ffi_prep_cif_var 3
|
|