Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

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

Go to the source code of this file.

## Macros
#define | MIN(a, b) (((a) < (b)) ? (a) : (b))

## Functions
unsigned int | ffi_prep_args (char *stack, extended_cif *ecif)
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif)
void | ffi_call_SYSV (void(*fn)(void), extended_cif *, unsigned, unsigned, double *)
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
void | ffi_closure_SYSV (ffi_closure *)
void | ffi_init_trampoline (unsigned char *__tramp, unsigned int __fun, unsigned int __ctx)
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
unsigned int | ffi_closure_SYSV_inner (ffi_closure *closure, void **respp, void *args, void *vfp_args)

## Variables
unsigned int | ffi_metag_trampoline [10]

## Macro Definition Documentation

## ◆ MIN

#define MIN | ( |  | a,
|  |  | b
| ) |  | (((a) < (b)) ? (a) : (b))

Definition at line 30 of file ffi.c.

## Function Documentation

## ◆ ffi_call()

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

Definition at line 173 of file ffi.c.

References alloca, extended_cif::avalue, extended_cif::cif, FFI_ASSERT, ffi_call_SYSV(), FFI_SYSV, memcpy(), NULL, and extended_cif::rvalue.

## ◆ ffi_call_SYSV()

void ffi_call_SYSV | ( | void(*)(void) | fn,
|  | extended_cif * | ,
|  | unsigned | ,
|  | unsigned | ,
|  | double * |
| ) |  |

## ◆ 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,
|  | void * | vfp_args
| ) |  |

Definition at line 268 of file ffi.c.

References alloca.

## ◆ ffi_init_trampoline()

void ffi_init_trampoline | ( | unsigned char * | __tramp,
|  | unsigned int | __fun,
|  | unsigned int | __ctx
| ) |  |

Definition at line 227 of file ffi.c.

References ffi_metag_trampoline, and memcpy().

Referenced by ffi_prep_closure_loc().

## ◆ ffi_prep_args()

unsigned int ffi_prep_args | ( | char * | stack,
|  | extended_cif * | ecif
| ) |  |

Definition at line 37 of file ffi.c.

References ALIGN, ALIGN_DOWN, extended_cif::avalue, extended_cif::cif, FFI_ASSERT, i, int, memcpy(), MIN, and extended_cif::rvalue.

## ◆ ffi_prep_cif_machdep()

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

Definition at line 100 of file ffi.c.

References ALIGN, FFI_ASSERT_VALID_TYPE, i, ptr, and unsigned.

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

References ffi_closure_SYSV(), ffi_init_trampoline(), FFI_SYSV, NULL, and void.

## Variable Documentation

## ◆ ffi_metag_trampoline

unsigned int ffi_metag_trampoline[10]

Referenced by ffi_init_trampoline().