Ruby: ext/fiddle/libffi-3.2.1/include/ffi_common.h File Reference

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

Data Structures | Macros | Typedefs | Functions
ffi_common.h File Reference
`#include <fficonfig.h>`

Go to the source code of this file.

## Data Structures
struct | extended_cif

## Macros
#define | alloca __builtin_alloca
#define | MAYBE_UNUSED __attribute__((__unused__))
#define | memcpy(d, s, n) bcopy ((s), (d), (n))
#define | FFI_ASSERT(x)
#define | FFI_ASSERT_AT(x, f, l)
#define | FFI_ASSERT_VALID_TYPE(x)
#define | ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
#define | ALIGN_DOWN(v, a) (((size_t) (v)) & -a)
#define | LIKELY(x) __builtin_expect(!!(x),1)
#define | UNLIKELY(x) __builtin_expect((x)!=0,0)

## Typedefs
typedef unsigned char | UINT8
typedef signed char | SINT8
typedef unsigned short | UINT16
typedef signed short | SINT16
typedef unsigned int | UINT32
typedef signed int | SINT32
typedef unsigned __int64 | UINT64
typedef signed __int64 | SINT64
typedef float | FLOAT32

## Functions
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif)
ffi_status | ffi_prep_cif_machdep_var (ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs)

## Macro Definition Documentation

## ◆ ALIGN

#define ALIGN | ( |  | v,
|  |  | a
| ) |  | (((((size_t) (v))-1) | ((a)-1))+1)

Definition at line 77 of file ffi_common.h.

## ◆ ALIGN_DOWN

#define ALIGN_DOWN | ( |  | v,
|  |  | a
| ) |  | (((size_t) (v)) & -a)

Definition at line 78 of file ffi_common.h.

## ◆ alloca

#define alloca __builtin_alloca

Definition at line 27 of file ffi_common.h.

## ◆ FFI_ASSERT

#define FFI_ASSERT | ( |  | x | ) |

Definition at line 72 of file ffi_common.h.

## ◆ FFI_ASSERT_AT

#define FFI_ASSERT_AT | ( |  | x,
|  |  | f,
|  |  | l
| ) |  |

Definition at line 73 of file ffi_common.h.

## ◆ FFI_ASSERT_VALID_TYPE

#define FFI_ASSERT_VALID_TYPE | ( |  | x | ) |

Definition at line 74 of file ffi_common.h.

## ◆ LIKELY

#define LIKELY | ( |  | x | ) | __builtin_expect(!!(x),1)

Definition at line 125 of file ffi_common.h.

## ◆ MAYBE_UNUSED

#define MAYBE_UNUSED __attribute__((__unused__))

Definition at line 30 of file ffi_common.h.

## ◆ memcpy

#define memcpy | ( |  | d,
|  |  | s,
|  |  | n
| ) |  | bcopy ((s), (d), (n))

Definition at line 55 of file ffi_common.h.

## ◆ UNLIKELY

#define UNLIKELY | ( |  | x | ) | __builtin_expect((x)!=0,0)

Definition at line 126 of file ffi_common.h.

## Typedef Documentation

## ◆ FLOAT32

typedef float FLOAT32

Definition at line 120 of file ffi_common.h.

## ◆ SINT16

typedef signed short SINT16

Definition at line 98 of file ffi_common.h.

## ◆ SINT32

typedef signed int SINT32

Definition at line 100 of file ffi_common.h.

## ◆ SINT64

typedef signed __int64 SINT64

Definition at line 103 of file ffi_common.h.

## ◆ SINT8

typedef signed char SINT8

Definition at line 96 of file ffi_common.h.

## ◆ UINT16

typedef unsigned short UINT16

Definition at line 97 of file ffi_common.h.

## ◆ UINT32

typedef unsigned int UINT32

Definition at line 99 of file ffi_common.h.

## ◆ UINT64

typedef unsigned __int64 UINT64

Definition at line 102 of file ffi_common.h.

## ◆ UINT8

typedef unsigned char UINT8

Definition at line 95 of file ffi_common.h.

## Function Documentation

## ◆ ffi_prep_cif_machdep()

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

Definition at line 758 of file ffi.c.

References AARCH64_FFI_WITH_V, AARCH64_STACK_ALIGN, ALIGN, ASM_NEEDS_REGISTERS, CIF_FLAGS_CHAR, CIF_FLAGS_DINT, CIF_FLAGS_DOUBLE, CIF_FLAGS_FLOAT, CIF_FLAGS_INT, CIF_FLAGS_LDOUBLE, CIF_FLAGS_POINTER, CIF_FLAGS_SHORT, CIF_FLAGS_SINT16, CIF_FLAGS_SINT8, CIF_FLAGS_STRUCT1, CIF_FLAGS_STRUCT2, count, FFI390_RET_DOUBLE, FFI390_RET_FLOAT, FFI390_RET_INT32, FFI390_RET_INT64, FFI390_RET_STRUCT, FFI390_RET_VOID, FFI_ASSERT, FFI_ASSERT_VALID_TYPE, FFI_FLAG_BITS, FFI_IA64_TYPE_SMALL_STRUCT, FFI_N32, FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT, FFI_O32, FFI_O32_SOFT_FLOAT, ffi_prep_cif_linux64(), ffi_prep_cif_sysv(), FFI_SIZEOF_ARG, FFI_SYSV, FFI_TYPE_LONGDOUBLE, FFI_TYPE_MS_STRUCT, FFI_TYPE_SMALL_STRUCT_1B, FFI_TYPE_SMALL_STRUCT_2B, FFI_TYPE_SMALL_STRUCT_4B, FFI_TYPE_SMALLSTRUCT2, FFI_UNIX64, FFI_V9, FFI_VFP, FFIBFIN_RET_BYTE, FFIBFIN_RET_HALFWORD, FFIBFIN_RET_INT32, FFIBFIN_RET_INT64, FFIBFIN_RET_VOID, FLAG_FP_ARGUMENTS, FLAG_RETURNS_128BITS, FLAG_RETURNS_64BITS, FLAG_RETURNS_FP, FLAG_RETURNS_NOTHING, FLAG_RETURNS_STRUCT, FLAG_RETVAL_REFERENCE, RIMemo::flags, if(), int(), LINKAGE_AREA_GPRS, long(), MAX_FPRARGS, MAX_GPRARGS, NFREGARG, NGREGARG, NUM_FPR_ARG_REGISTERS, NUM_GPR_ARG_REGISTERS, offsetof, pass_struct_on_stack(), ptr, ROUND_SIZE, and STRUCT_VALUE_ADDRESS_WITH_ARG.

Referenced by ffi_prep_cif_core(), and ffi_prep_cif_machdep_var().

## ◆ ffi_prep_cif_machdep_var()

ffi_status ffi_prep_cif_machdep_var | ( | ffi_cif * | cif,
|  | unsigned int | nfixedargs,
|  | unsigned int | ntotalargs
| ) |  |

Definition at line 289 of file ffi.c.

References ffi_prep_cif_machdep(), FFI_SYSV, and FFI_VFP.

Referenced by ffi_prep_cif_core().