Ruby  2.4.2p198(2017-09-14revision59899)
Functions
ffi.c File Reference
#include <ffi.h>
#include <ffi_common.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <asm/unistd.h>
Include dependency graph for ffi.c:

Go to the source code of this file.

Functions

void ffi_call_SYSV (void(*)(char *, extended_cif *), extended_cif *, unsigned int, unsigned int, unsigned int *, unsigned int, void(*fn)(void))
 
void ffi_closure_SYSV (ffi_closure *)
 
unsigned int pass_struct_on_stack (ffi_type *type)
 
void ffi_prep_args (char *stack, extended_cif *ecif)
 
ffi_status ffi_prep_cif_machdep (ffi_cif *cif)
 
void ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
 
static void ffi_prep_incoming_args_SYSV (char *stack, void **rvalue, void **avalue, ffi_cif *cif)
 
unsigned int ffi_closure_SYSV_inner (ffi_closure *closure, void **respp, void *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)
 

Function Documentation

◆ ffi_call()

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

◆ ffi_call_SYSV()

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

◆ ffi_closure_SYSV()

void ffi_closure_SYSV ( ffi_closure *  )

Definition at line 420 of file ffi.c.

◆ ffi_closure_SYSV_inner()

unsigned int ffi_closure_SYSV_inner ( ffi_closure *  closure,
void **  respp,
void *  args 
)

Definition at line 367 of file ffi.c.

References alloca(), ffi_prep_incoming_args_SYSV(), and size.

◆ ffi_prep_args()

void ffi_prep_args ( char *  stack,
extended_cif ecif 
)

◆ ffi_prep_cif_machdep()

ffi_status ffi_prep_cif_machdep ( ffi_cif *  cif)

Definition at line 177 of file ffi.c.

References pass_struct_on_stack().

◆ 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 394 of file ffi.c.

References ffi_closure_SYSV(), ffi_closure_SYSV_inner(), and FFI_SYSV.

◆ ffi_prep_incoming_args_SYSV()

static void ffi_prep_incoming_args_SYSV ( char *  stack,
void **  rvalue,
void **  avalue,
ffi_cif *  cif 
)
static

Definition at line 269 of file ffi.c.

References NULL, and pass_struct_on_stack().

Referenced by ffi_closure_SYSV_inner().

◆ pass_struct_on_stack()

unsigned int pass_struct_on_stack ( ffi_type *  type)

Definition at line 43 of file ffi.c.

Referenced by ffi_prep_args(), ffi_prep_cif_machdep(), and ffi_prep_incoming_args_SYSV().