AtlatestRepositorysigil-ffi

sigil-ffi / tree / nativeffi-trampolines.c

1/*
2 * FFI Trampolines - Generated by scripts/generate-ffi-trampolines.sgl
3 *
4 * DO NOT EDIT — regenerate with:
5 * sigil run scripts/generate-ffi-trampolines.sgl > packages/sigil-ffi/native/ffi-trampolines.c
6 */
7
8#include <stdint.h>
9#include <stddef.h>
11void ffi_trampoline__v(void *fn)
13 ((void(*)())fn)();
16intptr_t ffi_trampoline__i(void *fn)
18 return ((intptr_t(*)())fn)();
21double ffi_trampoline__d(void *fn)
23 return ((double(*)())fn)();
26void ffi_trampoline_i_v(void *fn, intptr_t a0)
28 ((void(*)(intptr_t))fn)(a0);
31intptr_t ffi_trampoline_i_i(void *fn, intptr_t a0)
33 return ((intptr_t(*)(intptr_t))fn)(a0);
36double ffi_trampoline_i_d(void *fn, intptr_t a0)
38 return ((double(*)(intptr_t))fn)(a0);
41void ffi_trampoline_ii_v(void *fn, intptr_t a0, intptr_t a1)
43 ((void(*)(intptr_t, intptr_t))fn)(a0, a1);
46intptr_t ffi_trampoline_ii_i(void *fn, intptr_t a0, intptr_t a1)
48 return ((intptr_t(*)(intptr_t, intptr_t))fn)(a0, a1);
51double ffi_trampoline_ii_d(void *fn, intptr_t a0, intptr_t a1)
53 return ((double(*)(intptr_t, intptr_t))fn)(a0, a1);
56void ffi_trampoline_iii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)
58 ((void(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);
61intptr_t ffi_trampoline_iii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)
63 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);
66double ffi_trampoline_iii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)
68 return ((double(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);
71void ffi_trampoline_iiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)
73 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
76intptr_t ffi_trampoline_iiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)
78 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
81double ffi_trampoline_iiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)
83 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
86void ffi_trampoline_iiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
88 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
91intptr_t ffi_trampoline_iiiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
93 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
96double ffi_trampoline_iiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
98 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
101void ffi_trampoline_iiiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5)
103 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
106intptr_t ffi_trampoline_iiiiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5)
108 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
111double ffi_trampoline_iiiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5)
113 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
116void ffi_trampoline_iiiiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6)
118 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6);
121intptr_t ffi_trampoline_iiiiiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6)
123 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6);
126double ffi_trampoline_iiiiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6)
128 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6);
131void ffi_trampoline_iiiiiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6, intptr_t a7)
133 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6, a7);
136intptr_t ffi_trampoline_iiiiiiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6, intptr_t a7)
138 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6, a7);
141double ffi_trampoline_iiiiiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5, intptr_t a6, intptr_t a7)
143 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6, a7);
146void ffi_trampoline_d_v(void *fn, double a0)
148 ((void(*)(double))fn)(a0);
151intptr_t ffi_trampoline_d_i(void *fn, double a0)
153 return ((intptr_t(*)(double))fn)(a0);
156double ffi_trampoline_d_d(void *fn, double a0)
158 return ((double(*)(double))fn)(a0);
161void ffi_trampoline_dd_v(void *fn, double a0, double a1)
163 ((void(*)(double, double))fn)(a0, a1);
166intptr_t ffi_trampoline_dd_i(void *fn, double a0, double a1)
168 return ((intptr_t(*)(double, double))fn)(a0, a1);
171double ffi_trampoline_dd_d(void *fn, double a0, double a1)
173 return ((double(*)(double, double))fn)(a0, a1);
176void ffi_trampoline_ddd_v(void *fn, double a0, double a1, double a2)
178 ((void(*)(double, double, double))fn)(a0, a1, a2);
181intptr_t ffi_trampoline_ddd_i(void *fn, double a0, double a1, double a2)
183 return ((intptr_t(*)(double, double, double))fn)(a0, a1, a2);
186double ffi_trampoline_ddd_d(void *fn, double a0, double a1, double a2)
188 return ((double(*)(double, double, double))fn)(a0, a1, a2);
191void ffi_trampoline_dddd_v(void *fn, double a0, double a1, double a2, double a3)
193 ((void(*)(double, double, double, double))fn)(a0, a1, a2, a3);
196intptr_t ffi_trampoline_dddd_i(void *fn, double a0, double a1, double a2, double a3)
198 return ((intptr_t(*)(double, double, double, double))fn)(a0, a1, a2, a3);
201double ffi_trampoline_dddd_d(void *fn, double a0, double a1, double a2, double a3)
203 return ((double(*)(double, double, double, double))fn)(a0, a1, a2, a3);
206void ffi_trampoline_ddddd_v(void *fn, double a0, double a1, double a2, double a3, double a4)
208 ((void(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);
211intptr_t ffi_trampoline_ddddd_i(void *fn, double a0, double a1, double a2, double a3, double a4)
213 return ((intptr_t(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);
216double ffi_trampoline_ddddd_d(void *fn, double a0, double a1, double a2, double a3, double a4)
218 return ((double(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);
221void ffi_trampoline_dddddd_v(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)
223 ((void(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
226intptr_t ffi_trampoline_dddddd_i(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)
228 return ((intptr_t(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
231double ffi_trampoline_dddddd_d(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)
233 return ((double(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
236void ffi_trampoline_f_v(void *fn, float a0)
238 ((void(*)(float))fn)(a0);
241intptr_t ffi_trampoline_f_i(void *fn, float a0)
243 return ((intptr_t(*)(float))fn)(a0);
246float ffi_trampoline_f_f(void *fn, float a0)
248 return ((float(*)(float))fn)(a0);
251void ffi_trampoline_ff_v(void *fn, float a0, float a1)
253 ((void(*)(float, float))fn)(a0, a1);
256intptr_t ffi_trampoline_ff_i(void *fn, float a0, float a1)
258 return ((intptr_t(*)(float, float))fn)(a0, a1);
261float ffi_trampoline_ff_f(void *fn, float a0, float a1)
263 return ((float(*)(float, float))fn)(a0, a1);
266void ffi_trampoline_fff_v(void *fn, float a0, float a1, float a2)
268 ((void(*)(float, float, float))fn)(a0, a1, a2);
271intptr_t ffi_trampoline_fff_i(void *fn, float a0, float a1, float a2)
273 return ((intptr_t(*)(float, float, float))fn)(a0, a1, a2);
276float ffi_trampoline_fff_f(void *fn, float a0, float a1, float a2)
278 return ((float(*)(float, float, float))fn)(a0, a1, a2);
281void ffi_trampoline_ffff_v(void *fn, float a0, float a1, float a2, float a3)
283 ((void(*)(float, float, float, float))fn)(a0, a1, a2, a3);
286intptr_t ffi_trampoline_ffff_i(void *fn, float a0, float a1, float a2, float a3)
288 return ((intptr_t(*)(float, float, float, float))fn)(a0, a1, a2, a3);
291float ffi_trampoline_ffff_f(void *fn, float a0, float a1, float a2, float a3)
293 return ((float(*)(float, float, float, float))fn)(a0, a1, a2, a3);
296void ffi_trampoline_id_v(void *fn, intptr_t a0, double a1)
298 ((void(*)(intptr_t, double))fn)(a0, a1);
301intptr_t ffi_trampoline_id_i(void *fn, intptr_t a0, double a1)
303 return ((intptr_t(*)(intptr_t, double))fn)(a0, a1);
306double ffi_trampoline_id_d(void *fn, intptr_t a0, double a1)
308 return ((double(*)(intptr_t, double))fn)(a0, a1);
311void ffi_trampoline_di_v(void *fn, double a0, intptr_t a1)
313 ((void(*)(double, intptr_t))fn)(a0, a1);
316intptr_t ffi_trampoline_di_i(void *fn, double a0, intptr_t a1)
318 return ((intptr_t(*)(double, intptr_t))fn)(a0, a1);
321double ffi_trampoline_di_d(void *fn, double a0, intptr_t a1)
323 return ((double(*)(double, intptr_t))fn)(a0, a1);
326void ffi_trampoline_iid_v(void *fn, intptr_t a0, intptr_t a1, double a2)
328 ((void(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);
331intptr_t ffi_trampoline_iid_i(void *fn, intptr_t a0, intptr_t a1, double a2)
333 return ((intptr_t(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);
336double ffi_trampoline_iid_d(void *fn, intptr_t a0, intptr_t a1, double a2)
338 return ((double(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);
341void ffi_trampoline_idi_v(void *fn, intptr_t a0, double a1, intptr_t a2)
343 ((void(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);
346intptr_t ffi_trampoline_idi_i(void *fn, intptr_t a0, double a1, intptr_t a2)
348 return ((intptr_t(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);
351double ffi_trampoline_idi_d(void *fn, intptr_t a0, double a1, intptr_t a2)
353 return ((double(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);
356void ffi_trampoline_dii_v(void *fn, double a0, intptr_t a1, intptr_t a2)
358 ((void(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);
361intptr_t ffi_trampoline_dii_i(void *fn, double a0, intptr_t a1, intptr_t a2)
363 return ((intptr_t(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);
366double ffi_trampoline_dii_d(void *fn, double a0, intptr_t a1, intptr_t a2)
368 return ((double(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);
371void ffi_trampoline_idd_v(void *fn, intptr_t a0, double a1, double a2)
373 ((void(*)(intptr_t, double, double))fn)(a0, a1, a2);
376intptr_t ffi_trampoline_idd_i(void *fn, intptr_t a0, double a1, double a2)
378 return ((intptr_t(*)(intptr_t, double, double))fn)(a0, a1, a2);
381double ffi_trampoline_idd_d(void *fn, intptr_t a0, double a1, double a2)
383 return ((double(*)(intptr_t, double, double))fn)(a0, a1, a2);
386void ffi_trampoline_did_v(void *fn, double a0, intptr_t a1, double a2)
388 ((void(*)(double, intptr_t, double))fn)(a0, a1, a2);
391intptr_t ffi_trampoline_did_i(void *fn, double a0, intptr_t a1, double a2)
393 return ((intptr_t(*)(double, intptr_t, double))fn)(a0, a1, a2);
396double ffi_trampoline_did_d(void *fn, double a0, intptr_t a1, double a2)
398 return ((double(*)(double, intptr_t, double))fn)(a0, a1, a2);
401void ffi_trampoline_ddi_v(void *fn, double a0, double a1, intptr_t a2)
403 ((void(*)(double, double, intptr_t))fn)(a0, a1, a2);
406intptr_t ffi_trampoline_ddi_i(void *fn, double a0, double a1, intptr_t a2)
408 return ((intptr_t(*)(double, double, intptr_t))fn)(a0, a1, a2);
411double ffi_trampoline_ddi_d(void *fn, double a0, double a1, intptr_t a2)
413 return ((double(*)(double, double, intptr_t))fn)(a0, a1, a2);
416void ffi_trampoline_iiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)
418 ((void(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
421intptr_t ffi_trampoline_iiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)
423 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
426double ffi_trampoline_iiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)
428 return ((double(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
431void ffi_trampoline_iidi_v(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)
433 ((void(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);
436intptr_t ffi_trampoline_iidi_i(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)
438 return ((intptr_t(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);
441double ffi_trampoline_iidi_d(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)
443 return ((double(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);
446void ffi_trampoline_idii_v(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)
448 ((void(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
451intptr_t ffi_trampoline_idii_i(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)
453 return ((intptr_t(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
456double ffi_trampoline_idii_d(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)
458 return ((double(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
461void ffi_trampoline_diii_v(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)
463 ((void(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
466intptr_t ffi_trampoline_diii_i(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)
468 return ((intptr_t(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
471double ffi_trampoline_diii_d(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)
473 return ((double(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
476void ffi_trampoline_iidd_v(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)
478 ((void(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);
481intptr_t ffi_trampoline_iidd_i(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)
483 return ((intptr_t(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);
486double ffi_trampoline_iidd_d(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)
488 return ((double(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);
491void ffi_trampoline_idid_v(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)
493 ((void(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);
496intptr_t ffi_trampoline_idid_i(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)
498 return ((intptr_t(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);
501double ffi_trampoline_idid_d(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)
503 return ((double(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);
506void ffi_trampoline_diid_v(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)
508 ((void(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
511intptr_t ffi_trampoline_diid_i(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)
513 return ((intptr_t(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
516double ffi_trampoline_diid_d(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)
518 return ((double(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);
521void ffi_trampoline_iddd_v(void *fn, intptr_t a0, double a1, double a2, double a3)
523 ((void(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);
526intptr_t ffi_trampoline_iddd_i(void *fn, intptr_t a0, double a1, double a2, double a3)
528 return ((intptr_t(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);
531double ffi_trampoline_iddd_d(void *fn, intptr_t a0, double a1, double a2, double a3)
533 return ((double(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);
536void ffi_trampoline_iiiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)
538 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
541intptr_t ffi_trampoline_iiiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)
543 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
546double ffi_trampoline_iiiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)
548 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
551void ffi_trampoline_iiidi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)
553 ((void(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);
556intptr_t ffi_trampoline_iiidi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)
558 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);
561double ffi_trampoline_iiidi_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)
563 return ((double(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);
566void ffi_trampoline_iidii_v(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)
568 ((void(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
571intptr_t ffi_trampoline_iidii_i(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)
573 return ((intptr_t(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
576double ffi_trampoline_iidii_d(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)
578 return ((double(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
581void ffi_trampoline_idiid_v(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)
583 ((void(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
586intptr_t ffi_trampoline_idiid_i(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)
588 return ((intptr_t(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
591double ffi_trampoline_idiid_d(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)
593 return ((double(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);
596void ffi_trampoline_diiii_v(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
598 ((void(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
601intptr_t ffi_trampoline_diiii_i(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
603 return ((intptr_t(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
606double ffi_trampoline_diiii_d(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
608 return ((double(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);
611void ffi_trampoline_idddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)
613 ((void(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);
616intptr_t ffi_trampoline_idddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)
618 return ((intptr_t(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);
621double ffi_trampoline_idddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)
623 return ((double(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);
626void ffi_trampoline_iiiiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)
628 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);
631intptr_t ffi_trampoline_iiiiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)
633 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);
636double ffi_trampoline_iiiiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)
638 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);
641void ffi_trampoline_iiiidi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)
643 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
646intptr_t ffi_trampoline_iiiidi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)
648 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
651double ffi_trampoline_iiiidi_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)
653 return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);
656void ffi_trampoline_iddddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)
658 ((void(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
661intptr_t ffi_trampoline_iddddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)
663 return ((intptr_t(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
666double ffi_trampoline_iddddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)
668 return ((double(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);
671void ffi_trampoline_idddddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)
673 ((void(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);
676intptr_t ffi_trampoline_idddddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)
678 return ((intptr_t(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);
681double ffi_trampoline_idddddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)
683 return ((double(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);
686void ffi_trampoline_if_v(void *fn, intptr_t a0, float a1)
688 ((void(*)(intptr_t, float))fn)(a0, a1);
691intptr_t ffi_trampoline_if_i(void *fn, intptr_t a0, float a1)
693 return ((intptr_t(*)(intptr_t, float))fn)(a0, a1);
696float ffi_trampoline_if_f(void *fn, intptr_t a0, float a1)
698 return ((float(*)(intptr_t, float))fn)(a0, a1);
701void ffi_trampoline_fi_v(void *fn, float a0, intptr_t a1)
703 ((void(*)(float, intptr_t))fn)(a0, a1);
706intptr_t ffi_trampoline_fi_i(void *fn, float a0, intptr_t a1)
708 return ((intptr_t(*)(float, intptr_t))fn)(a0, a1);
711float ffi_trampoline_fi_f(void *fn, float a0, intptr_t a1)
713 return ((float(*)(float, intptr_t))fn)(a0, a1);
716void ffi_trampoline_iif_v(void *fn, intptr_t a0, intptr_t a1, float a2)
718 ((void(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);
721intptr_t ffi_trampoline_iif_i(void *fn, intptr_t a0, intptr_t a1, float a2)
723 return ((intptr_t(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);
726float ffi_trampoline_iif_f(void *fn, intptr_t a0, intptr_t a1, float a2)
728 return ((float(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);
731void ffi_trampoline_ifi_v(void *fn, intptr_t a0, float a1, intptr_t a2)
733 ((void(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);
736intptr_t ffi_trampoline_ifi_i(void *fn, intptr_t a0, float a1, intptr_t a2)
738 return ((intptr_t(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);
741float ffi_trampoline_ifi_f(void *fn, intptr_t a0, float a1, intptr_t a2)
743 return ((float(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);
746void ffi_trampoline_fii_v(void *fn, float a0, intptr_t a1, intptr_t a2)
748 ((void(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);
751intptr_t ffi_trampoline_fii_i(void *fn, float a0, intptr_t a1, intptr_t a2)
753 return ((intptr_t(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);
756float ffi_trampoline_fii_f(void *fn, float a0, intptr_t a1, intptr_t a2)
758 return ((float(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);
761void ffi_trampoline_iff_v(void *fn, intptr_t a0, float a1, float a2)
763 ((void(*)(intptr_t, float, float))fn)(a0, a1, a2);
766intptr_t ffi_trampoline_iff_i(void *fn, intptr_t a0, float a1, float a2)
768 return ((intptr_t(*)(intptr_t, float, float))fn)(a0, a1, a2);
771float ffi_trampoline_iff_f(void *fn, intptr_t a0, float a1, float a2)
773 return ((float(*)(intptr_t, float, float))fn)(a0, a1, a2);
776void ffi_trampoline_fif_v(void *fn, float a0, intptr_t a1, float a2)
778 ((void(*)(float, intptr_t, float))fn)(a0, a1, a2);
781intptr_t ffi_trampoline_fif_i(void *fn, float a0, intptr_t a1, float a2)
783 return ((intptr_t(*)(float, intptr_t, float))fn)(a0, a1, a2);
786float ffi_trampoline_fif_f(void *fn, float a0, intptr_t a1, float a2)
788 return ((float(*)(float, intptr_t, float))fn)(a0, a1, a2);
791void ffi_trampoline_ffi_v(void *fn, float a0, float a1, intptr_t a2)
793 ((void(*)(float, float, intptr_t))fn)(a0, a1, a2);
796intptr_t ffi_trampoline_ffi_i(void *fn, float a0, float a1, intptr_t a2)
798 return ((intptr_t(*)(float, float, intptr_t))fn)(a0, a1, a2);
801float ffi_trampoline_ffi_f(void *fn, float a0, float a1, intptr_t a2)
803 return ((float(*)(float, float, intptr_t))fn)(a0, a1, a2);
806void ffi_trampoline_iiif_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)
808 ((void(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);
811intptr_t ffi_trampoline_iiif_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)
813 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);
816float ffi_trampoline_iiif_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)
818 return ((float(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);
821void ffi_trampoline_iifi_v(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)
823 ((void(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);
826intptr_t ffi_trampoline_iifi_i(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)
828 return ((intptr_t(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);
831float ffi_trampoline_iifi_f(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)
833 return ((float(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);
836void ffi_trampoline_ifii_v(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)
838 ((void(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
841intptr_t ffi_trampoline_ifii_i(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)
843 return ((intptr_t(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
846float ffi_trampoline_ifii_f(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)
848 return ((float(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
851void ffi_trampoline_fiii_v(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)
853 ((void(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
856intptr_t ffi_trampoline_fiii_i(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)
858 return ((intptr_t(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
861float ffi_trampoline_fiii_f(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)
863 return ((float(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);
866void ffi_trampoline_iiiif_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)
868 ((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);
871intptr_t ffi_trampoline_iiiif_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)
873 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);
876float ffi_trampoline_iiiif_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)
878 return ((float(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);
881void ffi_trampoline_iiifi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)
883 ((void(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);
886intptr_t ffi_trampoline_iiifi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)
888 return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);
891float ffi_trampoline_iiifi_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)
893 return ((float(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);
896/* Trampoline lookup table — sorted by signature for binary search */
897typedef struct {
898 const char *signature;
899 void *trampoline;
900} FfiTrampoline;
902const FfiTrampoline ffi_trampoline_table[] = {
903 { "_d", (void *)ffi_trampoline__d },
904 { "_i", (void *)ffi_trampoline__i },
905 { "_v", (void *)ffi_trampoline__v },
906 { "d_d", (void *)ffi_trampoline_d_d },
907 { "d_i", (void *)ffi_trampoline_d_i },
908 { "d_v", (void *)ffi_trampoline_d_v },
909 { "dd_d", (void *)ffi_trampoline_dd_d },
910 { "dd_i", (void *)ffi_trampoline_dd_i },
911 { "dd_v", (void *)ffi_trampoline_dd_v },
912 { "ddd_d", (void *)ffi_trampoline_ddd_d },
913 { "ddd_i", (void *)ffi_trampoline_ddd_i },
914 { "ddd_v", (void *)ffi_trampoline_ddd_v },
915 { "dddd_d", (void *)ffi_trampoline_dddd_d },
916 { "dddd_i", (void *)ffi_trampoline_dddd_i },
917 { "dddd_v", (void *)ffi_trampoline_dddd_v },
918 { "ddddd_d", (void *)ffi_trampoline_ddddd_d },
919 { "ddddd_i", (void *)ffi_trampoline_ddddd_i },
920 { "ddddd_v", (void *)ffi_trampoline_ddddd_v },
921 { "dddddd_d", (void *)ffi_trampoline_dddddd_d },
922 { "dddddd_i", (void *)ffi_trampoline_dddddd_i },
923 { "dddddd_v", (void *)ffi_trampoline_dddddd_v },
924 { "ddi_d", (void *)ffi_trampoline_ddi_d },
925 { "ddi_i", (void *)ffi_trampoline_ddi_i },
926 { "ddi_v", (void *)ffi_trampoline_ddi_v },
927 { "di_d", (void *)ffi_trampoline_di_d },
928 { "di_i", (void *)ffi_trampoline_di_i },
929 { "di_v", (void *)ffi_trampoline_di_v },
930 { "did_d", (void *)ffi_trampoline_did_d },
931 { "did_i", (void *)ffi_trampoline_did_i },
932 { "did_v", (void *)ffi_trampoline_did_v },
933 { "dii_d", (void *)ffi_trampoline_dii_d },
934 { "dii_i", (void *)ffi_trampoline_dii_i },
935 { "dii_v", (void *)ffi_trampoline_dii_v },
936 { "diid_d", (void *)ffi_trampoline_diid_d },
937 { "diid_i", (void *)ffi_trampoline_diid_i },
938 { "diid_v", (void *)ffi_trampoline_diid_v },
939 { "diii_d", (void *)ffi_trampoline_diii_d },
940 { "diii_i", (void *)ffi_trampoline_diii_i },
941 { "diii_v", (void *)ffi_trampoline_diii_v },
942 { "diiii_d", (void *)ffi_trampoline_diiii_d },
943 { "diiii_i", (void *)ffi_trampoline_diiii_i },
944 { "diiii_v", (void *)ffi_trampoline_diiii_v },
945 { "f_f", (void *)ffi_trampoline_f_f },
946 { "f_i", (void *)ffi_trampoline_f_i },
947 { "f_v", (void *)ffi_trampoline_f_v },
948 { "ff_f", (void *)ffi_trampoline_ff_f },
949 { "ff_i", (void *)ffi_trampoline_ff_i },
950 { "ff_v", (void *)ffi_trampoline_ff_v },
951 { "fff_f", (void *)ffi_trampoline_fff_f },
952 { "fff_i", (void *)ffi_trampoline_fff_i },
953 { "fff_v", (void *)ffi_trampoline_fff_v },
954 { "ffff_f", (void *)ffi_trampoline_ffff_f },
955 { "ffff_i", (void *)ffi_trampoline_ffff_i },
956 { "ffff_v", (void *)ffi_trampoline_ffff_v },
957 { "ffi_f", (void *)ffi_trampoline_ffi_f },
958 { "ffi_i", (void *)ffi_trampoline_ffi_i },
959 { "ffi_v", (void *)ffi_trampoline_ffi_v },
960 { "fi_f", (void *)ffi_trampoline_fi_f },
961 { "fi_i", (void *)ffi_trampoline_fi_i },
962 { "fi_v", (void *)ffi_trampoline_fi_v },
963 { "fif_f", (void *)ffi_trampoline_fif_f },
964 { "fif_i", (void *)ffi_trampoline_fif_i },
965 { "fif_v", (void *)ffi_trampoline_fif_v },
966 { "fii_f", (void *)ffi_trampoline_fii_f },
967 { "fii_i", (void *)ffi_trampoline_fii_i },
968 { "fii_v", (void *)ffi_trampoline_fii_v },
969 { "fiii_f", (void *)ffi_trampoline_fiii_f },
970 { "fiii_i", (void *)ffi_trampoline_fiii_i },
971 { "fiii_v", (void *)ffi_trampoline_fiii_v },
972 { "i_d", (void *)ffi_trampoline_i_d },
973 { "i_i", (void *)ffi_trampoline_i_i },
974 { "i_v", (void *)ffi_trampoline_i_v },
975 { "id_d", (void *)ffi_trampoline_id_d },
976 { "id_i", (void *)ffi_trampoline_id_i },
977 { "id_v", (void *)ffi_trampoline_id_v },
978 { "idd_d", (void *)ffi_trampoline_idd_d },
979 { "idd_i", (void *)ffi_trampoline_idd_i },
980 { "idd_v", (void *)ffi_trampoline_idd_v },
981 { "iddd_d", (void *)ffi_trampoline_iddd_d },
982 { "iddd_i", (void *)ffi_trampoline_iddd_i },
983 { "iddd_v", (void *)ffi_trampoline_iddd_v },
984 { "idddd_d", (void *)ffi_trampoline_idddd_d },
985 { "idddd_i", (void *)ffi_trampoline_idddd_i },
986 { "idddd_v", (void *)ffi_trampoline_idddd_v },
987 { "iddddd_d", (void *)ffi_trampoline_iddddd_d },
988 { "iddddd_i", (void *)ffi_trampoline_iddddd_i },
989 { "iddddd_v", (void *)ffi_trampoline_iddddd_v },
990 { "idddddd_d", (void *)ffi_trampoline_idddddd_d },
991 { "idddddd_i", (void *)ffi_trampoline_idddddd_i },
992 { "idddddd_v", (void *)ffi_trampoline_idddddd_v },
993 { "idi_d", (void *)ffi_trampoline_idi_d },
994 { "idi_i", (void *)ffi_trampoline_idi_i },
995 { "idi_v", (void *)ffi_trampoline_idi_v },
996 { "idid_d", (void *)ffi_trampoline_idid_d },
997 { "idid_i", (void *)ffi_trampoline_idid_i },
998 { "idid_v", (void *)ffi_trampoline_idid_v },
999 { "idii_d", (void *)ffi_trampoline_idii_d },
1000 { "idii_i", (void *)ffi_trampoline_idii_i },
1001 { "idii_v", (void *)ffi_trampoline_idii_v },
1002 { "idiid_d", (void *)ffi_trampoline_idiid_d },
1003 { "idiid_i", (void *)ffi_trampoline_idiid_i },
1004 { "idiid_v", (void *)ffi_trampoline_idiid_v },
1005 { "if_f", (void *)ffi_trampoline_if_f },
1006 { "if_i", (void *)ffi_trampoline_if_i },
1007 { "if_v", (void *)ffi_trampoline_if_v },
1008 { "iff_f", (void *)ffi_trampoline_iff_f },
1009 { "iff_i", (void *)ffi_trampoline_iff_i },
1010 { "iff_v", (void *)ffi_trampoline_iff_v },
1011 { "ifi_f", (void *)ffi_trampoline_ifi_f },
1012 { "ifi_i", (void *)ffi_trampoline_ifi_i },
1013 { "ifi_v", (void *)ffi_trampoline_ifi_v },
1014 { "ifii_f", (void *)ffi_trampoline_ifii_f },
1015 { "ifii_i", (void *)ffi_trampoline_ifii_i },
1016 { "ifii_v", (void *)ffi_trampoline_ifii_v },
1017 { "ii_d", (void *)ffi_trampoline_ii_d },
1018 { "ii_i", (void *)ffi_trampoline_ii_i },
1019 { "ii_v", (void *)ffi_trampoline_ii_v },
1020 { "iid_d", (void *)ffi_trampoline_iid_d },
1021 { "iid_i", (void *)ffi_trampoline_iid_i },
1022 { "iid_v", (void *)ffi_trampoline_iid_v },
1023 { "iidd_d", (void *)ffi_trampoline_iidd_d },
1024 { "iidd_i", (void *)ffi_trampoline_iidd_i },
1025 { "iidd_v", (void *)ffi_trampoline_iidd_v },
1026 { "iidi_d", (void *)ffi_trampoline_iidi_d },
1027 { "iidi_i", (void *)ffi_trampoline_iidi_i },
1028 { "iidi_v", (void *)ffi_trampoline_iidi_v },
1029 { "iidii_d", (void *)ffi_trampoline_iidii_d },
1030 { "iidii_i", (void *)ffi_trampoline_iidii_i },
1031 { "iidii_v", (void *)ffi_trampoline_iidii_v },
1032 { "iif_f", (void *)ffi_trampoline_iif_f },
1033 { "iif_i", (void *)ffi_trampoline_iif_i },
1034 { "iif_v", (void *)ffi_trampoline_iif_v },
1035 { "iifi_f", (void *)ffi_trampoline_iifi_f },
1036 { "iifi_i", (void *)ffi_trampoline_iifi_i },
1037 { "iifi_v", (void *)ffi_trampoline_iifi_v },
1038 { "iii_d", (void *)ffi_trampoline_iii_d },
1039 { "iii_i", (void *)ffi_trampoline_iii_i },
1040 { "iii_v", (void *)ffi_trampoline_iii_v },
1041 { "iiid_d", (void *)ffi_trampoline_iiid_d },
1042 { "iiid_i", (void *)ffi_trampoline_iiid_i },
1043 { "iiid_v", (void *)ffi_trampoline_iiid_v },
1044 { "iiidi_d", (void *)ffi_trampoline_iiidi_d },
1045 { "iiidi_i", (void *)ffi_trampoline_iiidi_i },
1046 { "iiidi_v", (void *)ffi_trampoline_iiidi_v },
1047 { "iiif_f", (void *)ffi_trampoline_iiif_f },
1048 { "iiif_i", (void *)ffi_trampoline_iiif_i },
1049 { "iiif_v", (void *)ffi_trampoline_iiif_v },
1050 { "iiifi_f", (void *)ffi_trampoline_iiifi_f },
1051 { "iiifi_i", (void *)ffi_trampoline_iiifi_i },
1052 { "iiifi_v", (void *)ffi_trampoline_iiifi_v },
1053 { "iiii_d", (void *)ffi_trampoline_iiii_d },
1054 { "iiii_i", (void *)ffi_trampoline_iiii_i },
1055 { "iiii_v", (void *)ffi_trampoline_iiii_v },
1056 { "iiiid_d", (void *)ffi_trampoline_iiiid_d },
1057 { "iiiid_i", (void *)ffi_trampoline_iiiid_i },
1058 { "iiiid_v", (void *)ffi_trampoline_iiiid_v },
1059 { "iiiidi_d", (void *)ffi_trampoline_iiiidi_d },
1060 { "iiiidi_i", (void *)ffi_trampoline_iiiidi_i },
1061 { "iiiidi_v", (void *)ffi_trampoline_iiiidi_v },
1062 { "iiiif_f", (void *)ffi_trampoline_iiiif_f },
1063 { "iiiif_i", (void *)ffi_trampoline_iiiif_i },
1064 { "iiiif_v", (void *)ffi_trampoline_iiiif_v },
1065 { "iiiii_d", (void *)ffi_trampoline_iiiii_d },
1066 { "iiiii_i", (void *)ffi_trampoline_iiiii_i },
1067 { "iiiii_v", (void *)ffi_trampoline_iiiii_v },
1068 { "iiiiid_d", (void *)ffi_trampoline_iiiiid_d },
1069 { "iiiiid_i", (void *)ffi_trampoline_iiiiid_i },
1070 { "iiiiid_v", (void *)ffi_trampoline_iiiiid_v },
1071 { "iiiiii_d", (void *)ffi_trampoline_iiiiii_d },
1072 { "iiiiii_i", (void *)ffi_trampoline_iiiiii_i },
1073 { "iiiiii_v", (void *)ffi_trampoline_iiiiii_v },
1074 { "iiiiiii_d", (void *)ffi_trampoline_iiiiiii_d },
1075 { "iiiiiii_i", (void *)ffi_trampoline_iiiiiii_i },
1076 { "iiiiiii_v", (void *)ffi_trampoline_iiiiiii_v },
1077 { "iiiiiiii_d", (void *)ffi_trampoline_iiiiiiii_d },
1078 { "iiiiiiii_i", (void *)ffi_trampoline_iiiiiiii_i },
1079 { "iiiiiiii_v", (void *)ffi_trampoline_iiiiiiii_v },
1082const int ffi_trampoline_count = 177;
1084/* ============================================================
1085 * Callback Trampolines: C → Scheme
1086 * ============================================================
1088 * Each callback trampoline is a plain C function with the correct
1089 * signature that C libraries expect. When called, it dispatches to
1090 * ffi_callback_dispatch() with its compiled-in group and slot index.
1092 * 16 slots per signature, 6 signatures = 96 trampolines total.
1093 */
1095/* Dispatcher prototype (defined in ffi.c) */
1096extern intptr_t ffi_callback_dispatch(int group_idx, int slot_idx, int argc,
1097 intptr_t *int_args,
1098 double *double_args);
1100/* Group indices must match ffi_callback_groups[] order in ffi.c:
1101 * 0 = ii_i (int, int) -> int comparators
1102 * 1 = ii_v (int, int) -> void
1103 * 2 = i_v (int) -> void event handlers
1104 * 3 = i_i (int) -> int predicates
1105 * 4 = _v (void) -> void thunks
1106 * 5 = _i (void) -> int
1107 */
1109/* ---- Signature: ii_i — int(intptr_t, intptr_t) ---- */
1110#define CB_II_I(N) \
1111static intptr_t ffi_cb_ii_i_##N(intptr_t a0, intptr_t a1) { \
1112 intptr_t args[] = {a0, a1}; \
1113 return ffi_callback_dispatch(0, N, 2, args, NULL); \
1115CB_II_I(0) CB_II_I(1) CB_II_I(2) CB_II_I(3)
1116CB_II_I(4) CB_II_I(5) CB_II_I(6) CB_II_I(7)
1117CB_II_I(8) CB_II_I(9) CB_II_I(10) CB_II_I(11)
1118CB_II_I(12) CB_II_I(13) CB_II_I(14) CB_II_I(15)
1119#undef CB_II_I
1121void *ffi_callback_trampolines_ii_i[] = {
1122 (void *)ffi_cb_ii_i_0, (void *)ffi_cb_ii_i_1,
1123 (void *)ffi_cb_ii_i_2, (void *)ffi_cb_ii_i_3,
1124 (void *)ffi_cb_ii_i_4, (void *)ffi_cb_ii_i_5,
1125 (void *)ffi_cb_ii_i_6, (void *)ffi_cb_ii_i_7,
1126 (void *)ffi_cb_ii_i_8, (void *)ffi_cb_ii_i_9,
1127 (void *)ffi_cb_ii_i_10, (void *)ffi_cb_ii_i_11,
1128 (void *)ffi_cb_ii_i_12, (void *)ffi_cb_ii_i_13,
1129 (void *)ffi_cb_ii_i_14, (void *)ffi_cb_ii_i_15,
1132/* ---- Signature: ii_v — void(intptr_t, intptr_t) ---- */
1133#define CB_II_V(N) \
1134static void ffi_cb_ii_v_##N(intptr_t a0, intptr_t a1) { \
1135 intptr_t args[] = {a0, a1}; \
1136 ffi_callback_dispatch(1, N, 2, args, NULL); \
1138CB_II_V(0) CB_II_V(1) CB_II_V(2) CB_II_V(3)
1139CB_II_V(4) CB_II_V(5) CB_II_V(6) CB_II_V(7)
1140CB_II_V(8) CB_II_V(9) CB_II_V(10) CB_II_V(11)
1141CB_II_V(12) CB_II_V(13) CB_II_V(14) CB_II_V(15)
1142#undef CB_II_V
1144void *ffi_callback_trampolines_ii_v[] = {
1145 (void *)ffi_cb_ii_v_0, (void *)ffi_cb_ii_v_1,
1146 (void *)ffi_cb_ii_v_2, (void *)ffi_cb_ii_v_3,
1147 (void *)ffi_cb_ii_v_4, (void *)ffi_cb_ii_v_5,
1148 (void *)ffi_cb_ii_v_6, (void *)ffi_cb_ii_v_7,
1149 (void *)ffi_cb_ii_v_8, (void *)ffi_cb_ii_v_9,
1150 (void *)ffi_cb_ii_v_10, (void *)ffi_cb_ii_v_11,
1151 (void *)ffi_cb_ii_v_12, (void *)ffi_cb_ii_v_13,
1152 (void *)ffi_cb_ii_v_14, (void *)ffi_cb_ii_v_15,
1155/* ---- Signature: i_v — void(intptr_t) ---- */
1156#define CB_I_V(N) \
1157static void ffi_cb_i_v_##N(intptr_t a0) { \
1158 intptr_t args[] = {a0}; \
1159 ffi_callback_dispatch(2, N, 1, args, NULL); \
1161CB_I_V(0) CB_I_V(1) CB_I_V(2) CB_I_V(3)
1162CB_I_V(4) CB_I_V(5) CB_I_V(6) CB_I_V(7)
1163CB_I_V(8) CB_I_V(9) CB_I_V(10) CB_I_V(11)
1164CB_I_V(12) CB_I_V(13) CB_I_V(14) CB_I_V(15)
1165#undef CB_I_V
1167void *ffi_callback_trampolines_i_v[] = {
1168 (void *)ffi_cb_i_v_0, (void *)ffi_cb_i_v_1,
1169 (void *)ffi_cb_i_v_2, (void *)ffi_cb_i_v_3,
1170 (void *)ffi_cb_i_v_4, (void *)ffi_cb_i_v_5,
1171 (void *)ffi_cb_i_v_6, (void *)ffi_cb_i_v_7,
1172 (void *)ffi_cb_i_v_8, (void *)ffi_cb_i_v_9,
1173 (void *)ffi_cb_i_v_10, (void *)ffi_cb_i_v_11,
1174 (void *)ffi_cb_i_v_12, (void *)ffi_cb_i_v_13,
1175 (void *)ffi_cb_i_v_14, (void *)ffi_cb_i_v_15,
1178/* ---- Signature: i_i — int(intptr_t) ---- */
1179#define CB_I_I(N) \
1180static intptr_t ffi_cb_i_i_##N(intptr_t a0) { \
1181 intptr_t args[] = {a0}; \
1182 return ffi_callback_dispatch(3, N, 1, args, NULL); \
1184CB_I_I(0) CB_I_I(1) CB_I_I(2) CB_I_I(3)
1185CB_I_I(4) CB_I_I(5) CB_I_I(6) CB_I_I(7)
1186CB_I_I(8) CB_I_I(9) CB_I_I(10) CB_I_I(11)
1187CB_I_I(12) CB_I_I(13) CB_I_I(14) CB_I_I(15)
1188#undef CB_I_I
1190void *ffi_callback_trampolines_i_i[] = {
1191 (void *)ffi_cb_i_i_0, (void *)ffi_cb_i_i_1,
1192 (void *)ffi_cb_i_i_2, (void *)ffi_cb_i_i_3,
1193 (void *)ffi_cb_i_i_4, (void *)ffi_cb_i_i_5,
1194 (void *)ffi_cb_i_i_6, (void *)ffi_cb_i_i_7,
1195 (void *)ffi_cb_i_i_8, (void *)ffi_cb_i_i_9,
1196 (void *)ffi_cb_i_i_10, (void *)ffi_cb_i_i_11,
1197 (void *)ffi_cb_i_i_12, (void *)ffi_cb_i_i_13,
1198 (void *)ffi_cb_i_i_14, (void *)ffi_cb_i_i_15,
1201/* ---- Signature: _v — void(void) ---- */
1202#define CB__V(N) \
1203static void ffi_cb__v_##N(void) { \
1204 ffi_callback_dispatch(4, N, 0, NULL, NULL); \
1206CB__V(0) CB__V(1) CB__V(2) CB__V(3)
1207CB__V(4) CB__V(5) CB__V(6) CB__V(7)
1208CB__V(8) CB__V(9) CB__V(10) CB__V(11)
1209CB__V(12) CB__V(13) CB__V(14) CB__V(15)
1210#undef CB__V
1212void *ffi_callback_trampolines__v[] = {
1213 (void *)ffi_cb__v_0, (void *)ffi_cb__v_1,
1214 (void *)ffi_cb__v_2, (void *)ffi_cb__v_3,
1215 (void *)ffi_cb__v_4, (void *)ffi_cb__v_5,
1216 (void *)ffi_cb__v_6, (void *)ffi_cb__v_7,
1217 (void *)ffi_cb__v_8, (void *)ffi_cb__v_9,
1218 (void *)ffi_cb__v_10, (void *)ffi_cb__v_11,
1219 (void *)ffi_cb__v_12, (void *)ffi_cb__v_13,
1220 (void *)ffi_cb__v_14, (void *)ffi_cb__v_15,
1223/* ---- Signature: _i — int(void) ---- */
1224#define CB__I(N) \
1225static intptr_t ffi_cb__i_##N(void) { \
1226 return ffi_callback_dispatch(5, N, 0, NULL, NULL); \
1228CB__I(0) CB__I(1) CB__I(2) CB__I(3)
1229CB__I(4) CB__I(5) CB__I(6) CB__I(7)
1230CB__I(8) CB__I(9) CB__I(10) CB__I(11)
1231CB__I(12) CB__I(13) CB__I(14) CB__I(15)
1232#undef CB__I
1234void *ffi_callback_trampolines__i[] = {
1235 (void *)ffi_cb__i_0, (void *)ffi_cb__i_1,
1236 (void *)ffi_cb__i_2, (void *)ffi_cb__i_3,
1237 (void *)ffi_cb__i_4, (void *)ffi_cb__i_5,
1238 (void *)ffi_cb__i_6, (void *)ffi_cb__i_7,
1239 (void *)ffi_cb__i_8, (void *)ffi_cb__i_9,
1240 (void *)ffi_cb__i_10, (void *)ffi_cb__i_11,
1241 (void *)ffi_cb__i_12, (void *)ffi_cb__i_13,
1242 (void *)ffi_cb__i_14, (void *)ffi_cb__i_15,
1245const int ffi_callback_sig_count = 6;