-static ffi_type **psi_ffi_struct_type_elements(struct psi_decl_struct *strct) {
- size_t i = 0, argc, nels = 0, offset = 0, maxalign = 0, last_arg_pos = -1;
- ffi_type **tmp, **els;
- struct psi_decl_arg *darg;
-
- argc = psi_plist_count(strct->args);
- els = calloc(argc + 1, sizeof(*els));
-
- while (psi_plist_get(strct->args, i++, &darg)) {
- ffi_type *type;
- size_t padding;
-
- if (darg->layout->pos == last_arg_pos) {
- /* skip bit fields */
- continue;
- }
- last_arg_pos = darg->layout->pos;
+static void psi_ffi_callback(ffi_cif *sig, void *result, void **args, void *data)
+{
+ struct psi_ffi_callback_info *cb_info = data;
+ struct psi_call_frame_callback cb_data;