Ruby: ext/fiddle/libffi-3.2.1/src/cris/ffi.c File Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

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

Go to the source code of this file.

## Macros
#define | STACK_ARG_SIZE(x) ALIGN(x, FFI_SIZEOF_ARG)

## Functions
int | ffi_prep_args (char *stack, extended_cif *ecif)
ffi_status FFI_HIDDEN | ffi_prep_cif_core (ffi_cif *cif, ffi_abi abi, unsigned int isvariadic, unsigned int nfixedargs, unsigned int ntotalargs, ffi_type *rtype, ffi_type **atypes)
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif)
void | ffi_call_SYSV (int(*)(char *, extended_cif *), extended_cif *, unsigned, unsigned, unsigned *, void(*fn)()) __attribute__((__visibility__("hidden")))
void | ffi_call (ffi_cif *cif, void(*fn)(), void *rvalue, void **avalue)
const char ffi_cris_trampoline_template[] | __attribute__ ((__visibility__("hidden")))
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)

## Macro Definition Documentation

## ◆ STACK_ARG_SIZE

#define STACK_ARG_SIZE | ( |  | x | ) | ALIGN(x, FFI_SIZEOF_ARG)

Definition at line 32 of file ffi.c.

## Function Documentation

## ◆ __attribute__()

const char ffi_cris_trampoline_template[] __attribute__ | ( | (__visibility__("hidden")) |  | ) |

## ◆ ffi_call()

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

Definition at line 246 of file ffi.c.

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

## ◆ ffi_call_SYSV()

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

## ◆ ffi_prep_args()

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

Definition at line 70 of file ffi.c.

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

## ◆ ffi_prep_cif_core()

ffi_status FFI_HIDDEN ffi_prep_cif_core | ( | ffi_cif * | cif,
|  | ffi_abi | abi,
|  | unsigned int | isvariadic,
|  | unsigned int | nfixedargs,
|  | unsigned int | ntotalargs,
|  | ffi_type * | rtype,
|  | ffi_type ** | atypes
| ) |  |

Definition at line 157 of file ffi.c.

References ALIGN, FFI_ASSERT, FFI_ASSERT_VALID_TYPE, FFI_FIRST_ABI, FFI_LAST_ABI, ffi_prep_cif_machdep(), NULL, ptr, and STACK_ARG_SIZE.

## ◆ ffi_prep_cif_machdep()

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

Definition at line 219 of file ffi.c.

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

References FFI_ASSERT, FFI_CRIS_TRAMPOLINE_CODE_PART_SIZE, FFI_SYSV, and memcpy.