#include <ffi.h>
#include <ffi_common.h>
#include <stdlib.h>
Go to the source code of this file.
|
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) |
|
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) |
|
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) |
|
◆ FFI_INIT_TRAMPOLINE
#define FFI_INIT_TRAMPOLINE |
( |
|
TRAMP, |
|
|
|
FUN, |
|
|
|
CTX |
|
) |
| |
Value:({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
unsigned int __fun = (
unsigned int)(FUN); \
unsigned int __ctx = (
unsigned int)(CTX); \
unsigned char *insns = (unsigned char *)(CTX); \
*(unsigned int*) &__tramp[12] = __ctx; \
*(unsigned int*) &__tramp[16] = __fun; \
__clear_cache((&__tramp[0]), (&__tramp[19])); \
__clear_cache(insns, insns + 3 * sizeof (unsigned int)); \
\
})
unsigned int ffi_arm_trampoline[3]
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
Definition at line 754 of file ffi.c.
◆ ffi_call()
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_SYSV, FFI_TYPE_STRUCT_VFP_DOUBLE, FFI_TYPE_STRUCT_VFP_FLOAT, FFI_VFP, memcpy, NULL, and extended_cif::rvalue.
◆ ffi_call_SYSV()
void ffi_call_SYSV |
( |
void(*)(void) |
fn, |
|
|
extended_cif * |
, |
|
|
unsigned |
, |
|
|
unsigned |
, |
|
|
unsigned * |
|
|
) |
| |
◆ ffi_call_VFP()
void ffi_call_VFP |
( |
void(*)(void) |
fn, |
|
|
extended_cif * |
, |
|
|
unsigned |
, |
|
|
unsigned |
, |
|
|
unsigned * |
|
|
) |
| |
◆ ffi_closure_inner()
unsigned int FFI_HIDDEN ffi_closure_inner |
( |
ffi_closure * |
closure, |
|
|
void ** |
respp, |
|
|
void * |
args, |
|
|
void * |
vfp_args |
|
) |
| |
◆ ffi_closure_SYSV()
void ffi_closure_SYSV |
( |
ffi_closure * |
| ) |
|
◆ ffi_closure_VFP()
void ffi_closure_VFP |
( |
ffi_closure * |
| ) |
|
◆ ffi_prep_args_SYSV()
int ffi_prep_args_SYSV |
( |
char * |
stack, |
|
|
extended_cif * |
ecif, |
|
|
float * |
vfp_space |
|
) |
| |
◆ ffi_prep_args_VFP()
int ffi_prep_args_VFP |
( |
char * |
stack, |
|
|
extended_cif * |
ecif, |
|
|
float * |
vfp_space |
|
) |
| |
◆ ffi_prep_cif_machdep()
ffi_status ffi_prep_cif_machdep |
( |
ffi_cif * |
cif | ) |
|
◆ ffi_prep_cif_machdep_var()
ffi_status ffi_prep_cif_machdep_var |
( |
ffi_cif * |
cif, |
|
|
unsigned int nfixedargs nfixedargs |
, |
|
|
unsigned int ntotalargs ntotalargs |
|
|
) |
| |
◆ ffi_prep_closure_loc()
ffi_status ffi_prep_closure_loc |
( |
ffi_closure * |
closure, |
|
|
ffi_cif * |
cif, |
|
|
void(*)(ffi_cif *, void *, void **, void *) |
fun, |
|
|
void * |
user_data, |
|
|
void * |
codeloc |
|
) |
| |
◆ ffi_arm_trampoline
unsigned int ffi_arm_trampoline[3] |
|
extern |