Home | History | Annotate | Download | only in pa

Lines Matching full:cif

152   p_arg = ecif->cif->arg_types;
155 for (i = 0; i < ecif->cif->nargs; i++)
276 static void ffi_size_stack_pa32(ffi_cif *cif)
282 for (ptr = cif->arg_types, i = 0; i < cif->nargs; ptr++, i++)
309 cif->bytes = MIN_STACK_SIZE; /* min stack size */
311 cif->bytes = 64 + ROUND_UP((z - 6) * sizeof(UINT32), MIN_STACK_SIZE);
313 debug(3, "Calculated stack size is %u bytes\n", cif->bytes);
316 /* Perform machine dependent cif processing. */
317 ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
320 switch (cif->rtype->type)
325 cif->flags = (unsigned) cif->rtype->type;
331 cif->flags = FFI_TYPE_STRUCT;
341 cif->flags = ffi_struct_type(cif->rtype);
346 cif->flags = FFI_TYPE_UINT64;
350 cif->flags = FFI_TYPE_INT;
356 switch (cif->abi)
359 ffi_size_stack_pa32(cif);
374 void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
378 ecif.cif = cif;
386 && (cif->rtype->type == FFI_TYPE_STRUCT
387 || cif->rtype->type == FFI_TYPE_LONGDOUBLE))
389 && cif->rtype->type == FFI_TYPE_STRUCT)
392 ecif.rvalue = alloca(cif->rtype->size);
398 switch (cif->abi)
401 debug(3, "Calling ffi_call_pa32: ecif=%p, bytes=%u, flags=%u, rvalue=%p, fn=%p\n", &ecif, cif->bytes, cif->flags, ecif.rvalue, (void *)fn);
402 ffi_call_pa32(ffi_prep_args_pa32, &ecif, cif->bytes,
403 cif->flags, ecif.rvalue, fn);
414 the stack, and we need to fill them into a cif structure and invoke
419 ffi_cif *cif;
429 cif = closure->cif;
432 if (cif->flags == FFI_TYPE_STRUCT)
437 avalue = (void **)alloca(cif->nargs * FFI_SIZEOF_ARG);
438 avn = cif->nargs;
439 p_arg = cif->arg_types;
523 (closure->fun) (cif, rvalue, avalue, closure->user_data);
529 switch (cif->flags)
570 tmp += 4 - cif->rtype->size;
571 memcpy((void*)tmp, &ret[0], cif->rtype->size);
583 switch (cif->flags)
604 debug(0, "assert with cif->flags: %d\n",cif->flags);
612 cif specifies the argument and result types for fun.
613 The cif must already be prep'ed. */
619 ffi_cif* cif,
629 FFI_ASSERT (cif->abi == FFI_PA32);
703 closure->cif = cif;