Lines Matching refs:cif
61 if (ecif->cif->rtype->type == FFI_TYPE_STRUCT in ffi_prep_args()
62 && !ecif->cif->flags) in ffi_prep_args()
69 for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; in ffi_prep_args()
122 ffi_prep_cif_machdep (ffi_cif *cif) in ffi_prep_cif_machdep() argument
125 switch (cif->rtype->type) in ffi_prep_cif_machdep()
128 cif->flags = 0; in ffi_prep_cif_machdep()
132 if (cif->rtype->elements[0]->type == FFI_TYPE_STRUCT && in ffi_prep_cif_machdep()
133 cif->rtype->elements[1]) in ffi_prep_cif_machdep()
135 cif->flags = 0; in ffi_prep_cif_machdep()
139 if (cif->rtype->size == sizeof (char)) in ffi_prep_cif_machdep()
140 cif->flags = CIF_FLAGS_CHAR; in ffi_prep_cif_machdep()
141 else if (cif->rtype->size == sizeof (short)) in ffi_prep_cif_machdep()
142 cif->flags = CIF_FLAGS_SHORT; in ffi_prep_cif_machdep()
143 else if (cif->rtype->size == sizeof (int)) in ffi_prep_cif_machdep()
144 cif->flags = CIF_FLAGS_INT; in ffi_prep_cif_machdep()
145 else if (cif->rtype->size == 2 * sizeof (int)) in ffi_prep_cif_machdep()
146 cif->flags = CIF_FLAGS_DINT; in ffi_prep_cif_machdep()
148 cif->flags = 0; in ffi_prep_cif_machdep()
152 if (cif->rtype->size <= sizeof (int)) in ffi_prep_cif_machdep()
153 cif->flags = CIF_FLAGS_INT; in ffi_prep_cif_machdep()
155 cif->flags = CIF_FLAGS_DINT; in ffi_prep_cif_machdep()
163 ffi_call (ffi_cif *cif, void (*fn) (), void *rvalue, void **avalue) in ffi_call() argument
167 ecif.cif = cif; in ffi_call()
174 && cif->rtype->type == FFI_TYPE_STRUCT in ffi_call()
175 && cif->flags == 0) in ffi_call()
176 ecif.rvalue = alloca (cif->rtype->size); in ffi_call()
180 switch (cif->abi) in ffi_call()
183 ffi_call_elfbsd (&ecif, cif->bytes, cif->flags, ecif.rvalue, fn); in ffi_call()
201 ffi_prep_closure_elfbsd (ffi_cif *cif, void **avalue, char *stackp) in ffi_prep_closure_elfbsd() argument
209 for (i = cif->nargs, p_arg = cif->arg_types; i != 0; i--, p_arg++) in ffi_prep_closure_elfbsd()
228 ffi_cif *cif; in ffi_closure_elfbsd_inner() local
231 cif = closure->cif; in ffi_closure_elfbsd_inner()
232 arg_area = (void **) alloca (cif->nargs * sizeof (void *)); in ffi_closure_elfbsd_inner()
234 ffi_prep_closure_elfbsd (cif, arg_area, stack); in ffi_closure_elfbsd_inner()
236 (closure->fun) (cif, resp, arg_area, closure->user_data); in ffi_closure_elfbsd_inner()
238 return cif->flags; in ffi_closure_elfbsd_inner()
242 ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, in ffi_prep_closure_loc() argument
249 FFI_ASSERT (cif->abi == FFI_ELFBSD); in ffi_prep_closure_loc()
259 if (cif->rtype->type == FFI_TYPE_STRUCT in ffi_prep_closure_loc()
260 && !cif->flags) in ffi_prep_closure_loc()
271 closure->cif = cif; in ffi_prep_closure_loc()