Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Macros | Functions
ffi_sysv.c File Reference
`#include "ffi.h"`
`#include "ffi_common.h"`
`#include "ffi_powerpc.h"`

Go to the source code of this file.

## Macros
#define | ASM_NEEDS_REGISTERS 4
#define | NUM_GPR_ARG_REGISTERS 8
#define | NUM_FPR_ARG_REGISTERS 8
#define | MIN_CACHE_LINE_SIZE 8

## Functions
ffi_status FFI_HIDDEN | ffi_prep_cif_sysv (ffi_cif *cif)
void FFI_HIDDEN | ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack)
ffi_status FFI_HIDDEN | ffi_prep_closure_loc_sysv (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, ffi_dblfl *pfr, unsigned long *pst)

## Macro Definition Documentation

## ◆ ASM_NEEDS_REGISTERS

#define ASM_NEEDS_REGISTERS 4

Definition at line 39 of file ffi_sysv.c.

## ◆ MIN_CACHE_LINE_SIZE

#define MIN_CACHE_LINE_SIZE 8

Definition at line 629 of file ffi_sysv.c.

## ◆ NUM_FPR_ARG_REGISTERS

#define NUM_FPR_ARG_REGISTERS 8

Definition at line 41 of file ffi_sysv.c.

## ◆ NUM_GPR_ARG_REGISTERS

#define NUM_GPR_ARG_REGISTERS 8

Definition at line 40 of file ffi_sysv.c.

## Function Documentation

## ◆ ffi_closure_helper_SYSV()

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

Definition at line 685 of file ffi_sysv.c.

References alloca, i, and size.

## ◆ ffi_prep_args_SYSV()

void FFI_HIDDEN ffi_prep_args_SYSV | ( | extended_cif * | ecif,
|  | unsigned *const | stack
| ) |  |

Definition at line 350 of file ffi_sysv.c.

References ASM_NEEDS_REGISTERS, extended_cif::avalue, extended_cif::cif, f, FFI_ASSERT, FLAG_FP_ARGUMENTS, FLAG_RETVAL_REFERENCE, i, long, NUM_FPR_ARG_REGISTERS, NUM_GPR_ARG_REGISTERS, ptr, extended_cif::rvalue, and v.

## ◆ ffi_prep_cif_sysv()

ffi_status FFI_HIDDEN ffi_prep_cif_sysv | ( | ffi_cif * | cif | ) |

Definition at line 290 of file ffi_sysv.c.

References FFI_COMPAT_GCC_SYSV, FFI_COMPAT_LINUX, FFI_COMPAT_LINUX_SOFT_FLOAT, FFI_COMPAT_SYSV, FFI_SYSV, FFI_SYSV_IBM_LONG_DOUBLE, FFI_SYSV_LONG_DOUBLE_128, FFI_SYSV_SOFT_FLOAT, FFI_SYSV_STRUCT_RET, and FLAG_COMPAT.

Referenced by ffi_prep_cif_machdep(), and ffi_prep_cif_machdep_var().

## ◆ ffi_prep_closure_loc_sysv()

ffi_status FFI_HIDDEN ffi_prep_closure_loc_sysv | ( | ffi_closure * | closure,
|  | ffi_cif * | cif,
|  | void(*)(ffi_cif *, void *, void **, void *) | fun,
|  | void * | user_data,
|  | void * | codeloc
| ) |  |

Definition at line 644 of file ffi_sysv.c.

References ffi_closure_SYSV(), FFI_LAST_ABI, and FFI_SYSV.

Referenced by ffi_prep_closure_loc().