Ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a25176072e02db9254f0e0c84c805cd)
Macros | Functions
ffi.c File Reference
#include <ffi.h>
#include <ffi_common.h>
#include <stdlib.h>
#include <stdio.h>

Go to the source code of this file.

Macros

#define MAX_GPRARGS   3
 
#define FFIBFIN_RET_VOID   0
 
#define FFIBFIN_RET_BYTE   1
 
#define FFIBFIN_RET_HALFWORD   2
 
#define FFIBFIN_RET_INT64   3
 
#define FFIBFIN_RET_INT32   4
 

Functions

void ffi_prep_args (unsigned char *, extended_cif *)
 
void ffi_call_SYSV (unsigned, extended_cif *, void(*)(unsigned char *, extended_cif *), unsigned, void *, void(*fn)(void))
 
ffi_status ffi_prep_cif_machdep (ffi_cif *cif)
 
void ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
 

Macro Definition Documentation

◆ FFIBFIN_RET_BYTE

#define FFIBFIN_RET_BYTE   1

Definition at line 40 of file ffi.c.

◆ FFIBFIN_RET_HALFWORD

#define FFIBFIN_RET_HALFWORD   2

Definition at line 41 of file ffi.c.

◆ FFIBFIN_RET_INT32

#define FFIBFIN_RET_INT32   4

Definition at line 43 of file ffi.c.

◆ FFIBFIN_RET_INT64

#define FFIBFIN_RET_INT64   3

Definition at line 42 of file ffi.c.

◆ FFIBFIN_RET_VOID

#define FFIBFIN_RET_VOID   0

Definition at line 39 of file ffi.c.

◆ MAX_GPRARGS

#define MAX_GPRARGS   3

Definition at line 34 of file ffi.c.

Function Documentation

◆ ffi_call()

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

◆ ffi_call_SYSV()

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

◆ ffi_prep_args()

static void ffi_prep_args ( unsigned char stack,
extended_cif ecif 
)

Definition at line 144 of file ffi.c.

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

◆ ffi_prep_cif_machdep()

ffi_status ffi_prep_cif_machdep ( ffi_cif *  cif)