Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Functions
ffi.c File Reference
`#include <ffi.h>`
`#include <ffi_common.h>`
`#include <stdlib.h>`

Go to the source code of this file.

## Functions
void * | ffi_prep_args (char *stack, extended_cif *ecif)
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif)
void | ffi_call_EABI (void *(*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void(*fn)(void))
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
void | ffi_closure_eabi (unsigned arg1, unsigned arg2, unsigned arg3, unsigned arg4, unsigned arg5, unsigned arg6)
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
| ) |  |

Definition at line 132 of file ffi.c.

References alloca, extended_cif::avalue, extended_cif::cif, FFI_ASSERT, ffi_call_EABI(), FFI_EABI, ffi_prep_args(), NULL, and extended_cif::rvalue.

## ◆ ffi_call_EABI()

void ffi_call_EABI | ( | void * | *)(char *, extended_cif *,
|  | extended_cif * | ,
|  | unsigned | ,
|  | unsigned | ,
|  | unsigned * | ,
|  | void(*)(void) | fn
| ) |  |

Referenced by ffi_call().

## ◆ ffi_closure_eabi()

void ffi_closure_eabi | ( | unsigned | arg1,
|  | unsigned | arg2,
|  | unsigned | arg3,
|  | unsigned | arg4,
|  | unsigned | arg5,
|  | unsigned | arg6
| ) |  |

Definition at line 166 of file ffi.c.

References __asm__, alloca, i, and ptr.

Referenced by ffi_prep_closure_loc().

## ◆ ffi_prep_args()

void* ffi_prep_args | ( | char * | stack,
|  | extended_cif * | ecif
| ) |  |

Definition at line 37 of file ffi.c.

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

## ◆ ffi_prep_cif_machdep()

ffi_status ffi_prep_cif_machdep | ( | ffi_cif * | cif | ) |

Definition at line 114 of file ffi.c.

References ALIGN.

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

References __asm__, ffi_closure_eabi(), FFI_TRAMPOLINE_SIZE, i, and long.