2 Purpose: Check structures.
5 Originator: From the original ffitest.c */
15 static test_structure_3 ABI_ATTR
struct3(test_structure_3 ts
)
25 ffi_type
*args
[MAX_ARGS
];
26 void *values
[MAX_ARGS
];
29 ffi_type
*ts3_type_elements
[2];
31 test_structure_3 ts3_arg
;
32 test_structure_3
*ts3_result
=
33 (test_structure_3
*) malloc (sizeof(test_structure_3
));
36 ts3_type
.alignment
= 0;
37 ts3_type
.type
= FFI_TYPE_STRUCT
;
38 ts3_type
.elements
= ts3_type_elements
;
39 ts3_type_elements
[0] = &ffi_type_sint
;
40 ts3_type_elements
[1] = NULL
;
45 /* Initialize the cif */
46 CHECK(ffi_prep_cif(&cif
, ABI_NUM
, 1,
47 &ts3_type
, args
) == FFI_OK
);
50 compare_value
= ts3_arg
.si
;
52 ffi_call(&cif
, FFI_FN(struct3
), ts3_result
, values
);
54 printf ("%d %d\n", ts3_result
->si
, -(compare_value
*2));
56 CHECK(ts3_result
->si
== -(compare_value
*2));