Home | History | Annotate | Download | only in alpha

Lines Matching full:cif

48 ffi_prep_cif_machdep(ffi_cif *cif)
50 /* Adjust cif->bytes to represent a minimum 6 words for the temporary
52 if (cif->bytes < 6*FFI_SIZEOF_ARG)
53 cif->bytes = 6*FFI_SIZEOF_ARG;
56 switch (cif->rtype->type)
61 cif->flags = cif->rtype->type;
66 cif->flags = FFI_TYPE_STRUCT;
70 cif->flags = FFI_TYPE_INT;
79 ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
87 if (rvalue == NULL && cif->flags == FFI_TYPE_STRUCT)
88 rvalue = alloca(cif->rtype->size);
92 argp = stack = alloca(cif->bytes + 4*FFI_SIZEOF_ARG);
94 if (cif->flags == FFI_TYPE_STRUCT)
98 avn = cif->nargs;
99 arg_types = cif->arg_types;
168 ffi_call_osf(stack, cif->bytes, cif->flags, rvalue, fn);
174 ffi_cif* cif,
188 closure->cif = cif;
207 ffi_cif *cif;
212 cif = closure->cif;
213 avalue = alloca(cif->nargs * sizeof(void *));
219 if (cif->flags == FFI_TYPE_STRUCT)
226 avn = cif->nargs;
227 arg_types = cif->arg_types;
280 closure->fun (cif, rvalue, avalue, closure->user_data);
283 return cif->rtype->type;