29 #define LIBFFI_HIDE_BASIC_TYPES
36 #define FFI_TYPEDEF(name, type, id, maybe_const)\
37 struct struct_align_##name { \
41 maybe_const ffi_type ffi_type_##name = { \
43 offsetof(struct struct_align_##name, x), \
47 #define FFI_COMPLEX_TYPEDEF(name, type, maybe_const) \
48 static ffi_type *ffi_elements_complex_##name [2] = { \
49 (ffi_type *)(&ffi_type_##name), NULL \
51 struct struct_align_complex_##name { \
55 maybe_const ffi_type ffi_type_complex_##name = { \
56 sizeof(_Complex type), \
57 offsetof(struct struct_align_complex_##name, x), \
59 (ffi_type **)ffi_elements_complex_##name \
64 1, 1, FFI_TYPE_VOID,
NULL
69 FFI_TYPEDEF(uint16, UINT16, FFI_TYPE_UINT16,
const);
70 FFI_TYPEDEF(sint16, SINT16, FFI_TYPE_SINT16,
const);
71 FFI_TYPEDEF(uint32, UINT32, FFI_TYPE_UINT32,
const);
72 FFI_TYPEDEF(sint32, SINT32, FFI_TYPE_SINT32,
const);
73 FFI_TYPEDEF(uint64, UINT64, FFI_TYPE_UINT64,
const);
74 FFI_TYPEDEF(sint64, SINT64, FFI_TYPE_SINT64,
const);
76 FFI_TYPEDEF(pointer,
void*, FFI_TYPE_POINTER,
const);
79 FFI_TYPEDEF(
double,
double, FFI_TYPE_DOUBLE,
const);
81 #if !defined HAVE_LONG_DOUBLE_VARIANT || defined __alpha__
82 #define FFI_LDBL_CONST const
84 #define FFI_LDBL_CONST
92 # if defined(__LONG_DOUBLE_128__) && FFI_TYPE_LONGDOUBLE != 4
93 # error FFI_TYPE_LONGDOUBLE out of date
95 const ffi_type ffi_type_longdouble = { 16, 16, 4,
NULL };
96 #elif FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
100 #ifdef FFI_TARGET_HAS_COMPLEX_TYPE
103 #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE