Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

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

Go to the source code of this file.

## Macros
#define | FFI_TYPE_STRUCT_REGS FFI_TYPE_LAST

## Functions
void | ffi_call_SYSV (void *rvalue, unsigned rsize, unsigned flags, void(*fn)(void), unsigned nbytes, extended_cif *)
void | ffi_closure_SYSV (void)
void | ffi_prep_args (extended_cif *ecif, unsigned char *stack)
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
void | ffi_trampoline ()
void | ffi_cacheflush (void *start, void *end)
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
long FFI_HIDDEN | ffi_closure_SYSV_inner (ffi_closure *closure, void **values, void *rvalue)

## Macro Definition Documentation

## ◆ FFI_TYPE_STRUCT_REGS

#define FFI_TYPE_STRUCT_REGS FFI_TYPE_LAST

Definition at line 48 of file ffi.c.

## Function Documentation

## ◆ ffi_cacheflush()

void ffi_cacheflush | ( | void * | start,
|  | void * | end
| ) |  |

Referenced by ffi_prep_closure_loc().

## ◆ ffi_call()

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

Definition at line 190 of file ffi.c.

References ALIGN, 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 * | rvalue,
|  | unsigned | rsize,
|  | unsigned | flags,
|  | void(*)(void) | fn,
|  | unsigned | nbytes,
|  | extended_cif * |
| ) |  |

## ◆ ffi_closure_SYSV()

void ffi_closure_SYSV | ( | void |  | ) |

Definition at line 53 of file ffi.c.

References ALIGN.

## ◆ ffi_closure_SYSV_inner()

long FFI_HIDDEN ffi_closure_SYSV_inner | ( | ffi_closure * | closure,
|  | void ** | values,
|  | void * | rvalue
| ) |  |

Definition at line 251 of file ffi.c.

References alloca, FFI_REGISTER_NARGS, FFI_SYSV, and i.

## ◆ ffi_prep_args()

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

Definition at line 97 of file ffi.c.

References extended_cif::avalue, extended_cif::cif, f, FFI_ASSERT, FFI_REGISTER_NARGS, i, long, memcpy(), ptr, extended_cif::rvalue, size, and v.

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

References ffi_cacheflush(), ffi_closure_SYSV(), ffi_trampoline(), FFI_TRAMPOLINE_SIZE, int, and memcpy().

## ◆ ffi_trampoline()

void ffi_trampoline | ( |  | ) |

Referenced by ffi_prep_closure_loc().