Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

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

Go to the source code of this file.

## Macros
#define | NGREGARG 4
#define | STRUCT_VALUE_ADDRESS_WITH_ARG 0
#define | OFS_INT8 3
#define | OFS_INT16 2

## Functions
void | ffi_prep_args (char *stack, extended_cif *ecif)
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif)
void | ffi_call_SYSV (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_SYSV (void)
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
int | ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, unsigned long *pgr, unsigned long *pfr, unsigned long *pst)

## Macro Definition Documentation

## ◆ NGREGARG

#define NGREGARG 4

Definition at line 33 of file ffi.c.

## ◆ OFS_INT16

#define OFS_INT16 2

Definition at line 510 of file ffi.c.

## ◆ OFS_INT8

#define OFS_INT8 3

Definition at line 509 of file ffi.c.

## ◆ STRUCT_VALUE_ADDRESS_WITH_ARG

#define STRUCT_VALUE_ADDRESS_WITH_ARG 0

Definition at line 41 of file ffi.c.

## Function Documentation

## ◆ ffi_call()

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

Definition at line 412 of file ffi.c.

References extended_cif::avalue, and extended_cif::cif.

## ◆ ffi_call_SYSV()

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

## ◆ ffi_closure_helper_SYSV()

int ffi_closure_helper_SYSV | ( | ffi_closure * | closure,
|  | void * | rvalue,
|  | unsigned long * | pgr,
|  | unsigned long * | pfr,
|  | unsigned long * | pst
| ) |  |

Definition at line 514 of file ffi.c.

References alloca, FFI_ASSERT, i, int, n, NFREGARG, NGREGARG, OFS_INT16, OFS_INT8, and STRUCT_VALUE_ADDRESS_WITH_ARG.

## ◆ ffi_closure_SYSV()

void ffi_closure_SYSV | ( | void |  | ) |

Definition at line 53 of file ffi.c.

## ◆ ffi_prep_args()

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

Definition at line 111 of file ffi.c.

References i.

## ◆ ffi_prep_cif_machdep()

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

Definition at line 322 of file ffi.c.

References i, n, and size.

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

References FFI_SYSV.