Home | History | Annotate | Download | only in sh

Lines Matching defs:cif

127   if (return_type (ecif->cif->rtype) == FFI_TYPE_STRUCT)
138 avn = ecif->cif->nargs;
141 for (i = 0, p_arg = ecif->cif->arg_types; i < avn; i++, p_arg++, p_argv++)
230 for (i = 0, p_arg = ecif->cif->arg_types; i < avn; i++, p_arg++, p_argv++)
321 /* Perform machine dependent cif processing */
322 ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
332 cif->flags = 0;
334 greg = ((return_type (cif->rtype) == FFI_TYPE_STRUCT) &&
338 for (i = j = 0; i < cif->nargs && j < 12; i++)
340 type = (cif->arg_types)[i]->type;
347 cif->flags += ((cif->arg_types)[i]->type) << (2 * j);
356 cif->flags += ((cif->arg_types)[i]->type) << (2 * j);
361 size = (cif->arg_types)[i]->size;
367 cif->flags += FFI_TYPE_INT << (2 * j++);
372 for (i = j = 0; i < cif->nargs && j < 4; i++)
374 size = (cif->arg_types)[i]->size;
382 cif->flags += FFI_TYPE_INT << (2 * j++);
387 switch (cif->rtype->type)
390 cif->flags += (unsigned) (return_type (cif->rtype)) << 24;
398 cif->flags += (unsigned) cif->rtype->type << 24;
402 cif->flags += FFI_TYPE_INT << 24;
412 void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
417 ecif.cif = cif;
423 if (cif->rtype->type == FFI_TYPE_STRUCT
424 && return_type (cif->rtype) != FFI_TYPE_STRUCT)
427 (cif->rtype->type == FFI_TYPE_STRUCT))
429 ecif.rvalue = alloca(cif->rtype->size);
434 switch (cif->abi)
437 ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, cif->flags, ecif.rvalue,
446 && cif->rtype->type == FFI_TYPE_STRUCT
447 && return_type (cif->rtype) != FFI_TYPE_STRUCT)
448 memcpy (rvalue, &trvalue, cif->rtype->size);
458 ffi_cif* cif,
466 FFI_ASSERT (cif->abi == FFI_GCC_SYSV);
470 insn = (return_type (cif->rtype) == FFI_TYPE_STRUCT
484 closure->cif = cif;
524 ffi_cif *cif;
526 cif = closure->cif;
527 avalue = alloca(cif->nargs * sizeof(void *));
531 if (cif->rtype->type == FFI_TYPE_STRUCT && STRUCT_VALUE_ADDRESS_WITH_ARG)
539 cif = closure->cif;
541 avn = cif->nargs;
544 for (i = 0, p_arg = cif->arg_types; i < avn; i++, p_arg++)
629 for (i = 0, p_arg = cif->arg_types; i < avn; i++, p_arg++)
712 (closure->fun) (cif, rvalue, avalue, closure->user_data);
715 return return_type (cif->rtype);