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