Ruby
2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)
|
Go to the documentation of this file.
35 #if HAVE_LONG_DOUBLE_VARIANT
40 # if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
74 ffi_call(ffi_cif *cif,
void (*fn)(
void),
void *rvalue,
void **avalue)
85 unsigned long smst_buffer[8];
96 else if (!rvalue && cif->rtype->type == FFI_TYPE_STRUCT)
106 if (rvalue && ecif.
rvalue == smst_buffer)
108 unsigned int rsize = cif->rtype->size;
109 #ifndef __LITTLE_ENDIAN__
114 memcpy (rvalue, (
char *) smst_buffer + 4 - rsize, rsize);
121 memcpy (rvalue, (
char *) smst_buffer + 8 - rsize, rsize);
124 memcpy (rvalue, smst_buffer, rsize);
132 void (*fun) (ffi_cif *,
void *,
void **,
void *),
137 return ffi_prep_closure_loc_linux64 (closure, cif, fun, user_data, codeloc);
void ffi_call_SYSV(unsigned(*)(struct call_context *context, unsigned char *, extended_cif *), struct call_context *context, extended_cif *, size_t, void(*fn)(void))
const UINT64 ffi_template_tramp_tile[] FFI_HIDDEN
ffi_status FFI_HIDDEN ffi_prep_cif_linux64_var(ffi_cif *, unsigned int, unsigned int)
ffi_status FFI_HIDDEN ffi_prep_cif_sysv(ffi_cif *)
ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
ffi_status FFI_HIDDEN ffi_prep_closure_loc_sysv(ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
ffi_status FFI_HIDDEN ffi_prep_cif_linux64(ffi_cif *)
void ffi_call(ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
void FFI_HIDDEN ffi_prep_types_linux64(ffi_abi)
ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
void FFI_HIDDEN ffi_call_LINUX64(extended_cif *, unsigned long, unsigned long, unsigned long *, void(*)(void))
void FFI_HIDDEN ffi_prep_types_sysv(ffi_abi)
ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs)