t is, in most cases, RET points to an object of exactly the size of the type specified when CIF was constructed. However, integral types narrower than the system register size are widened. In these cases your program may assume that RET points to an 'ffi_arg' object. ARGS A vector of pointers to memory holding the arguments to the function. USER_DATA The same USER_DATA that was passed to 'ffi_prep_closure_loc'. 'ffi_prep_closure_loc' will return 'FFI_OK' if everything went ok, and one of the other 'ffi_status' values on error. After calling 'ffi_prep_closure_loc', you can cast CODELOC to the appropriate pointer-to-function type. You may see old code referring to 'ffi_prep_closure'. This function is deprecated, as it cannot handle the need for separate writable and executable addresses.