Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
Macros | Functions
ffi.c File Reference
#include <ffi.h>
#include <ffi_common.h>

Go to the source code of this file.

Macros

#define STACK_ARG_SIZE(x)   ALIGN(x, FFI_SIZEOF_ARG)
 

Functions

int ffi_prep_args (char *stack, extended_cif *ecif)
 
ffi_status FFI_HIDDEN ffi_prep_cif_core (ffi_cif *cif, ffi_abi abi, unsigned int isvariadic, unsigned int nfixedargs, unsigned int ntotalargs, ffi_type *rtype, ffi_type **atypes)
 
ffi_status ffi_prep_cif_machdep (ffi_cif *cif)
 
void ffi_call_SYSV (int(*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void(*fn)()) __attribute__((__visibility__("hidden")))
 
void ffi_call (ffi_cif *cif, void(*fn)(), void *rvalue, void **avalue)
 
const char ffi_cris_trampoline_template[] __attribute__ ((__visibility__("hidden")))
 
ffi_status ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
 

Macro Definition Documentation

◆ STACK_ARG_SIZE

#define STACK_ARG_SIZE (   x)    ALIGN(x, FFI_SIZEOF_ARG)

Definition at line 32 of file ffi.c.

Function Documentation

◆ __attribute__()

const char ffi_cris_trampoline_template[] __attribute__ ( (__visibility__("hidden"))  )

◆ ffi_call()

void ffi_call ( ffi_cif *  cif,
void(*)()  fn,
void *  rvalue,
void **  avalue 
)

◆ ffi_call_SYSV()

void ffi_call_SYSV ( int(*)(char *, extended_cif *)  ,
extended_cif ,
unsigned  ,
unsigned  ,
unsigned *  ,
void(*)()  fn 
)

◆ ffi_prep_args()

int ffi_prep_args ( char *  stack,
extended_cif ecif 
)

Definition at line 70 of file ffi.c.

References extended_cif::avalue, extended_cif::cif, FFI_ASSERT, int(), and memcpy.

◆ ffi_prep_cif_core()

ffi_status FFI_HIDDEN ffi_prep_cif_core ( ffi_cif *  cif,
ffi_abi  abi,
unsigned int  isvariadic,
unsigned int  nfixedargs,
unsigned int  ntotalargs,
ffi_type *  rtype,
ffi_type **  atypes 
)

◆ ffi_prep_cif_machdep()

ffi_status ffi_prep_cif_machdep ( ffi_cif *  cif)

Definition at line 219 of file ffi.c.

◆ 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 
)

Definition at line 367 of file ffi.c.

References FFI_ASSERT, FFI_CRIS_TRAMPOLINE_CODE_PART_SIZE, FFI_SYSV, and memcpy.