2 Purpose: Check structures.
5 Originator: From the original ffitest.c */
15 static test_structure_5
struct5(test_structure_5 ts1
, test_structure_5 ts2
)
26 ffi_type
*args
[MAX_ARGS
];
27 void *values
[MAX_ARGS
];
29 ffi_type
*ts5_type_elements
[3];
31 ts5_type
.alignment
= 0;
32 ts5_type
.type
= FFI_TYPE_STRUCT
;
33 ts5_type
.elements
= ts5_type_elements
;
34 ts5_type_elements
[0] = &ffi_type_schar
;
35 ts5_type_elements
[1] = &ffi_type_schar
;
36 ts5_type_elements
[2] = NULL
;
38 test_structure_5 ts5_arg1
, ts5_arg2
;
40 /* This is a hack to get a properly aligned result buffer */
41 test_structure_5
*ts5_result
=
42 (test_structure_5
*) malloc (sizeof(test_structure_5
));
46 values
[0] = &ts5_arg1
;
47 values
[1] = &ts5_arg2
;
49 /* Initialize the cif */
50 CHECK(ffi_prep_cif(&cif
, FFI_DEFAULT_ABI
, 2, &ts5_type
, args
) == FFI_OK
);
57 ffi_call (&cif
, FFI_FN(struct5
), ts5_result
, values
);
59 CHECK(ts5_result
->c1
== 7);
60 CHECK(ts5_result
->c2
== 3);