Ruby
2.4.2p198(2017-09-14revision59899)
|
Go to the source code of this file.
Macros | |
#define | FFI_INIT_TRAMPOLINE(TRAMP, FUN, CTX) |
Functions | |
static int | vfp_type_p (ffi_type *) |
static void | layout_vfp_args (ffi_cif *) |
int | ffi_prep_args_SYSV (char *stack, extended_cif *ecif, float *vfp_space) |
int | ffi_prep_args_VFP (char *stack, extended_cif *ecif, float *vfp_space) |
static char * | ffi_align (ffi_type **p_arg, char *argp) |
static size_t | ffi_put_arg (ffi_type **arg_type, void **arg, char *stack) |
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif) |
ffi_status | ffi_prep_cif_machdep_var (ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) |
void | ffi_call_SYSV (void(*fn)(void), extended_cif *, unsigned, unsigned, unsigned *) |
void | ffi_call_VFP (void(*fn)(void), extended_cif *, unsigned, unsigned, unsigned *) |
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue) |
static void | ffi_prep_incoming_args_SYSV (char *stack, void **ret, void **args, ffi_cif *cif, float *vfp_stack) |
private members More... | |
static void | ffi_prep_incoming_args_VFP (char *stack, void **ret, void **args, ffi_cif *cif, float *vfp_stack) |
void | ffi_closure_SYSV (ffi_closure *) |
void | ffi_closure_VFP (ffi_closure *) |
unsigned int FFI_HIDDEN | ffi_closure_inner (ffi_closure *closure, void **respp, void *args, void *vfp_args) |
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc) |
static int | rec_vfp_type_p (ffi_type *t, int *elt, int *elnum) |
static int | place_vfp_arg (ffi_cif *cif, ffi_type *t) |
Variables | |
unsigned int | ffi_arm_trampoline [3] |
#define FFI_INIT_TRAMPOLINE | ( | TRAMP, | |
FUN, | |||
CTX | |||
) |
Definition at line 754 of file ffi.c.
Referenced by ffi_prep_closure_loc().
|
static |
Definition at line 43 of file ffi.c.
References ALIGN.
Referenced by ffi_prep_args_SYSV(), ffi_prep_args_VFP(), ffi_prep_incoming_args_SYSV(), and ffi_prep_incoming_args_VFP().
void ffi_call | ( | ffi_cif * | cif, |
void(*)(void) | fn, | ||
void * | rvalue, | ||
void ** | avalue | ||
) |
Definition at line 304 of file ffi.c.
References alloca(), extended_cif::avalue, extended_cif::cif, FFI_ASSERT, ffi_call_SYSV(), ffi_call_VFP(), ffi_closure_SYSV(), ffi_closure_VFP(), FFI_HIDDEN, ffi_prep_incoming_args_SYSV(), ffi_prep_incoming_args_VFP(), FFI_SYSV, FFI_TYPE_STRUCT_VFP_DOUBLE, FFI_TYPE_STRUCT_VFP_FLOAT, FFI_VFP, memcpy, NULL, and extended_cif::rvalue.
void ffi_call_SYSV | ( | void(*)(void) | fn, |
extended_cif * | , | ||
unsigned | , | ||
unsigned | , | ||
unsigned * | |||
) |
void ffi_call_VFP | ( | void(*)(void) | fn, |
extended_cif * | , | ||
unsigned | , | ||
unsigned | , | ||
unsigned * | |||
) |
Referenced by ffi_call(), and ffi_prep_cif_machdep_var().
unsigned int FFI_HIDDEN ffi_closure_inner | ( | ffi_closure * | closure, |
void ** | respp, | ||
void * | args, | ||
void * | vfp_args | ||
) |
Definition at line 381 of file ffi.c.
References alloca(), ffi_prep_incoming_args_SYSV(), ffi_prep_incoming_args_VFP(), and FFI_VFP.
void ffi_closure_VFP | ( | ffi_closure * | ) |
Referenced by ffi_call(), and ffi_prep_closure_loc().
int ffi_prep_args_SYSV | ( | char * | stack, |
extended_cif * | ecif, | ||
float * | vfp_space | ||
) |
Definition at line 128 of file ffi.c.
References extended_cif::avalue, extended_cif::cif, ffi_align(), ffi_put_arg(), and extended_cif::rvalue.
int ffi_prep_args_VFP | ( | char * | stack, |
extended_cif * | ecif, | ||
float * | vfp_space | ||
) |
Definition at line 155 of file ffi.c.
References extended_cif::avalue, extended_cif::cif, ffi_align(), FFI_ASSERT, ffi_put_arg(), FFI_VFP, extended_cif::rvalue, size, and vfp_type_p().
ffi_status ffi_prep_cif_machdep | ( | ffi_cif * | cif | ) |
Definition at line 234 of file ffi.c.
References FFI_VFP, layout_vfp_args(), and vfp_type_p().
ffi_status ffi_prep_cif_machdep_var | ( | ffi_cif * | cif, |
unsigned int nfixedargs | , | ||
unsigned int ntotalargs | |||
) |
Definition at line 289 of file ffi.c.
References ffi_call_SYSV(), ffi_call_VFP(), ffi_prep_cif_machdep(), FFI_SYSV, and FFI_VFP.
Referenced by ffi_prep_cif_machdep().
ffi_status ffi_prep_closure_loc | ( | ffi_closure * | closure, |
ffi_cif * | cif, | ||
void(*)(ffi_cif *, void *, void **, void *) | fun, | ||
void * | user_data, | ||
void * | codeloc | ||
) |
Definition at line 773 of file ffi.c.
References ffi_closure_SYSV(), ffi_closure_VFP(), FFI_INIT_TRAMPOLINE, FFI_SYSV, FFI_VFP, and NULL.
|
static |
private members
Definition at line 408 of file ffi.c.
References ffi_align().
Referenced by ffi_call(), and ffi_closure_inner().
|
static |
Definition at line 449 of file ffi.c.
References calloc, FALSE, ffi_align(), ffi_arm_trampoline, FFI_ASSERT, FFI_TRAMPOLINE_SIZE, FFI_VFP, free(), malloc, NULL, size, and vfp_type_p().
Referenced by ffi_call(), and ffi_closure_inner().
|
static |
Definition at line 69 of file ffi.c.
References FFI_ASSERT, and memcpy.
Referenced by ffi_prep_args_SYSV(), and ffi_prep_args_VFP().
|
static |
Definition at line 914 of file ffi.c.
References place_vfp_arg(), and vfp_type_p().
Referenced by ffi_prep_cif_machdep().
|
static |
Definition at line 872 of file ffi.c.
References FFI_TYPE_STRUCT_VFP_FLOAT.
Referenced by layout_vfp_args().
|
static |
Definition at line 809 of file ffi.c.
References FFI_TYPE_STRUCT_VFP_DOUBLE, and FFI_TYPE_STRUCT_VFP_FLOAT.
Referenced by vfp_type_p().
|
static |
Definition at line 853 of file ffi.c.
References FFI_TYPE_STRUCT_VFP_DOUBLE, FFI_TYPE_STRUCT_VFP_FLOAT, and rec_vfp_type_p().
Referenced by ffi_prep_args_VFP(), ffi_prep_cif_machdep(), ffi_prep_incoming_args_VFP(), and layout_vfp_args().
unsigned int ffi_arm_trampoline[3] |
Referenced by ffi_prep_incoming_args_VFP().