Modified arm/sysv.S to remove directives not allowed by clang.
[libffi.git] / man / ffi_prep_cif.3
1 .Dd February 15, 2008
2 .Dt ffi_prep_cif 3
3 .Sh NAME
4 .Nm ffi_prep_cif
5 .Nd Prepare a
6 .Nm ffi_cif
7 structure for use with
8 .Nm ffi_call 
9 .
10 .Sh SYNOPSIS
11 .In ffi.h
12 .Ft ffi_status
13 .Fo ffi_prep_cif
14 .Fa "ffi_cif *cif"
15 .Fa "ffi_abi abi"
16 .Fa "unsigned int nargs"
17 .Fa "ffi_type *rtype"
18 .Fa "ffi_type **atypes"
19 .Fc
20 .Sh DESCRIPTION
21 The
22 .Nm ffi_prep_cif
23 function prepares a
24 .Nm ffi_cif
25 structure for use with 
26 .Nm ffi_call
27 .
28 .Fa abi
29 specifies a set of calling conventions to use.
30 .Fa atypes
31 is an array of
32 .Fa nargs
33 pointers to
34 .Nm ffi_type
35 structs that describe the data type, size and alignment of each argument.
36 .Fa rtype
37 points to an
38 .Nm ffi_type
39 that describes the data type, size and alignment of the
40 return value. Note that to call a variadic function
41 .Nm ffi_prep_cif_var
42 must be used instead.
43 .Sh RETURN VALUES
44 Upon successful completion,
45 .Nm ffi_prep_cif
46 returns
47 .Nm FFI_OK .
48 It will return
49 .Nm FFI_BAD_TYPEDEF
50 if
51 .Fa cif
52 is
53 .Nm NULL
54 or
55 .Fa atypes
56 or
57 .Fa rtype
58 is malformed. If
59 .Fa abi
60 does not refer to a valid ABI,
61 .Nm FFI_BAD_ABI
62 will be returned. Available ABIs are
63 defined in
64 .Nm <ffitarget.h> .
65 .Sh SEE ALSO
66 .Xr ffi 3 ,
67 .Xr ffi_call 3 ,
68 .Xr ffi_prep_cif_var 3