AtlatestRepositorysigil-ffi
1
/*2
* FFI Trampolines - Generated by scripts/generate-ffi-trampolines.sgl3
*4
* DO NOT EDIT — regenerate with:5
* sigil run scripts/generate-ffi-trampolines.sgl > packages/sigil-ffi/native/ffi-trampolines.c6
*/8
#include <stdint.h>9
#include <stddef.h>11
void ffi_trampoline__v(void *fn)12
{13
((void(*)())fn)();14
}16
intptr_t ffi_trampoline__i(void *fn)17
{18
return ((intptr_t(*)())fn)();19
}21
double ffi_trampoline__d(void *fn)22
{23
return ((double(*)())fn)();24
}26
void ffi_trampoline_i_v(void *fn, intptr_t a0)27
{28
((void(*)(intptr_t))fn)(a0);29
}31
intptr_t ffi_trampoline_i_i(void *fn, intptr_t a0)32
{33
return ((intptr_t(*)(intptr_t))fn)(a0);34
}36
double ffi_trampoline_i_d(void *fn, intptr_t a0)37
{38
return ((double(*)(intptr_t))fn)(a0);39
}41
void ffi_trampoline_ii_v(void *fn, intptr_t a0, intptr_t a1)42
{43
((void(*)(intptr_t, intptr_t))fn)(a0, a1);44
}46
intptr_t ffi_trampoline_ii_i(void *fn, intptr_t a0, intptr_t a1)47
{48
return ((intptr_t(*)(intptr_t, intptr_t))fn)(a0, a1);49
}51
double ffi_trampoline_ii_d(void *fn, intptr_t a0, intptr_t a1)52
{53
return ((double(*)(intptr_t, intptr_t))fn)(a0, a1);54
}56
void ffi_trampoline_iii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)57
{58
((void(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);59
}61
intptr_t ffi_trampoline_iii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)62
{63
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);64
}66
double ffi_trampoline_iii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2)67
{68
return ((double(*)(intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2);69
}71
void ffi_trampoline_iiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)72
{73
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);74
}76
intptr_t ffi_trampoline_iiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)77
{78
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);79
}81
double ffi_trampoline_iiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3)82
{83
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);84
}86
void ffi_trampoline_iiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)87
{88
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);89
}91
intptr_t ffi_trampoline_iiiii_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)92
{93
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);94
}96
double ffi_trampoline_iiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)97
{98
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);99
}101
void ffi_trampoline_iiiiii_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5)102
{103
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);104
}106
intptr_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)107
{108
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);109
}111
double ffi_trampoline_iiiiii_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, intptr_t a5)112
{113
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5);114
}116
void 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)117
{118
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4, a5, a6);119
}121
intptr_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)122
{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);124
}126
double 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)127
{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);129
}131
void 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)132
{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);134
}136
intptr_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)137
{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);139
}141
double 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)142
{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);144
}146
void ffi_trampoline_d_v(void *fn, double a0)147
{148
((void(*)(double))fn)(a0);149
}151
intptr_t ffi_trampoline_d_i(void *fn, double a0)152
{153
return ((intptr_t(*)(double))fn)(a0);154
}156
double ffi_trampoline_d_d(void *fn, double a0)157
{158
return ((double(*)(double))fn)(a0);159
}161
void ffi_trampoline_dd_v(void *fn, double a0, double a1)162
{163
((void(*)(double, double))fn)(a0, a1);164
}166
intptr_t ffi_trampoline_dd_i(void *fn, double a0, double a1)167
{168
return ((intptr_t(*)(double, double))fn)(a0, a1);169
}171
double ffi_trampoline_dd_d(void *fn, double a0, double a1)172
{173
return ((double(*)(double, double))fn)(a0, a1);174
}176
void ffi_trampoline_ddd_v(void *fn, double a0, double a1, double a2)177
{178
((void(*)(double, double, double))fn)(a0, a1, a2);179
}181
intptr_t ffi_trampoline_ddd_i(void *fn, double a0, double a1, double a2)182
{183
return ((intptr_t(*)(double, double, double))fn)(a0, a1, a2);184
}186
double ffi_trampoline_ddd_d(void *fn, double a0, double a1, double a2)187
{188
return ((double(*)(double, double, double))fn)(a0, a1, a2);189
}191
void ffi_trampoline_dddd_v(void *fn, double a0, double a1, double a2, double a3)192
{193
((void(*)(double, double, double, double))fn)(a0, a1, a2, a3);194
}196
intptr_t ffi_trampoline_dddd_i(void *fn, double a0, double a1, double a2, double a3)197
{198
return ((intptr_t(*)(double, double, double, double))fn)(a0, a1, a2, a3);199
}201
double ffi_trampoline_dddd_d(void *fn, double a0, double a1, double a2, double a3)202
{203
return ((double(*)(double, double, double, double))fn)(a0, a1, a2, a3);204
}206
void ffi_trampoline_ddddd_v(void *fn, double a0, double a1, double a2, double a3, double a4)207
{208
((void(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);209
}211
intptr_t ffi_trampoline_ddddd_i(void *fn, double a0, double a1, double a2, double a3, double a4)212
{213
return ((intptr_t(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);214
}216
double ffi_trampoline_ddddd_d(void *fn, double a0, double a1, double a2, double a3, double a4)217
{218
return ((double(*)(double, double, double, double, double))fn)(a0, a1, a2, a3, a4);219
}221
void ffi_trampoline_dddddd_v(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)222
{223
((void(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);224
}226
intptr_t ffi_trampoline_dddddd_i(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)227
{228
return ((intptr_t(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);229
}231
double ffi_trampoline_dddddd_d(void *fn, double a0, double a1, double a2, double a3, double a4, double a5)232
{233
return ((double(*)(double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);234
}236
void ffi_trampoline_f_v(void *fn, float a0)237
{238
((void(*)(float))fn)(a0);239
}241
intptr_t ffi_trampoline_f_i(void *fn, float a0)242
{243
return ((intptr_t(*)(float))fn)(a0);244
}246
float ffi_trampoline_f_f(void *fn, float a0)247
{248
return ((float(*)(float))fn)(a0);249
}251
void ffi_trampoline_ff_v(void *fn, float a0, float a1)252
{253
((void(*)(float, float))fn)(a0, a1);254
}256
intptr_t ffi_trampoline_ff_i(void *fn, float a0, float a1)257
{258
return ((intptr_t(*)(float, float))fn)(a0, a1);259
}261
float ffi_trampoline_ff_f(void *fn, float a0, float a1)262
{263
return ((float(*)(float, float))fn)(a0, a1);264
}266
void ffi_trampoline_fff_v(void *fn, float a0, float a1, float a2)267
{268
((void(*)(float, float, float))fn)(a0, a1, a2);269
}271
intptr_t ffi_trampoline_fff_i(void *fn, float a0, float a1, float a2)272
{273
return ((intptr_t(*)(float, float, float))fn)(a0, a1, a2);274
}276
float ffi_trampoline_fff_f(void *fn, float a0, float a1, float a2)277
{278
return ((float(*)(float, float, float))fn)(a0, a1, a2);279
}281
void ffi_trampoline_ffff_v(void *fn, float a0, float a1, float a2, float a3)282
{283
((void(*)(float, float, float, float))fn)(a0, a1, a2, a3);284
}286
intptr_t ffi_trampoline_ffff_i(void *fn, float a0, float a1, float a2, float a3)287
{288
return ((intptr_t(*)(float, float, float, float))fn)(a0, a1, a2, a3);289
}291
float ffi_trampoline_ffff_f(void *fn, float a0, float a1, float a2, float a3)292
{293
return ((float(*)(float, float, float, float))fn)(a0, a1, a2, a3);294
}296
void ffi_trampoline_id_v(void *fn, intptr_t a0, double a1)297
{298
((void(*)(intptr_t, double))fn)(a0, a1);299
}301
intptr_t ffi_trampoline_id_i(void *fn, intptr_t a0, double a1)302
{303
return ((intptr_t(*)(intptr_t, double))fn)(a0, a1);304
}306
double ffi_trampoline_id_d(void *fn, intptr_t a0, double a1)307
{308
return ((double(*)(intptr_t, double))fn)(a0, a1);309
}311
void ffi_trampoline_di_v(void *fn, double a0, intptr_t a1)312
{313
((void(*)(double, intptr_t))fn)(a0, a1);314
}316
intptr_t ffi_trampoline_di_i(void *fn, double a0, intptr_t a1)317
{318
return ((intptr_t(*)(double, intptr_t))fn)(a0, a1);319
}321
double ffi_trampoline_di_d(void *fn, double a0, intptr_t a1)322
{323
return ((double(*)(double, intptr_t))fn)(a0, a1);324
}326
void ffi_trampoline_iid_v(void *fn, intptr_t a0, intptr_t a1, double a2)327
{328
((void(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);329
}331
intptr_t ffi_trampoline_iid_i(void *fn, intptr_t a0, intptr_t a1, double a2)332
{333
return ((intptr_t(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);334
}336
double ffi_trampoline_iid_d(void *fn, intptr_t a0, intptr_t a1, double a2)337
{338
return ((double(*)(intptr_t, intptr_t, double))fn)(a0, a1, a2);339
}341
void ffi_trampoline_idi_v(void *fn, intptr_t a0, double a1, intptr_t a2)342
{343
((void(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);344
}346
intptr_t ffi_trampoline_idi_i(void *fn, intptr_t a0, double a1, intptr_t a2)347
{348
return ((intptr_t(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);349
}351
double ffi_trampoline_idi_d(void *fn, intptr_t a0, double a1, intptr_t a2)352
{353
return ((double(*)(intptr_t, double, intptr_t))fn)(a0, a1, a2);354
}356
void ffi_trampoline_dii_v(void *fn, double a0, intptr_t a1, intptr_t a2)357
{358
((void(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);359
}361
intptr_t ffi_trampoline_dii_i(void *fn, double a0, intptr_t a1, intptr_t a2)362
{363
return ((intptr_t(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);364
}366
double ffi_trampoline_dii_d(void *fn, double a0, intptr_t a1, intptr_t a2)367
{368
return ((double(*)(double, intptr_t, intptr_t))fn)(a0, a1, a2);369
}371
void ffi_trampoline_idd_v(void *fn, intptr_t a0, double a1, double a2)372
{373
((void(*)(intptr_t, double, double))fn)(a0, a1, a2);374
}376
intptr_t ffi_trampoline_idd_i(void *fn, intptr_t a0, double a1, double a2)377
{378
return ((intptr_t(*)(intptr_t, double, double))fn)(a0, a1, a2);379
}381
double ffi_trampoline_idd_d(void *fn, intptr_t a0, double a1, double a2)382
{383
return ((double(*)(intptr_t, double, double))fn)(a0, a1, a2);384
}386
void ffi_trampoline_did_v(void *fn, double a0, intptr_t a1, double a2)387
{388
((void(*)(double, intptr_t, double))fn)(a0, a1, a2);389
}391
intptr_t ffi_trampoline_did_i(void *fn, double a0, intptr_t a1, double a2)392
{393
return ((intptr_t(*)(double, intptr_t, double))fn)(a0, a1, a2);394
}396
double ffi_trampoline_did_d(void *fn, double a0, intptr_t a1, double a2)397
{398
return ((double(*)(double, intptr_t, double))fn)(a0, a1, a2);399
}401
void ffi_trampoline_ddi_v(void *fn, double a0, double a1, intptr_t a2)402
{403
((void(*)(double, double, intptr_t))fn)(a0, a1, a2);404
}406
intptr_t ffi_trampoline_ddi_i(void *fn, double a0, double a1, intptr_t a2)407
{408
return ((intptr_t(*)(double, double, intptr_t))fn)(a0, a1, a2);409
}411
double ffi_trampoline_ddi_d(void *fn, double a0, double a1, intptr_t a2)412
{413
return ((double(*)(double, double, intptr_t))fn)(a0, a1, a2);414
}416
void ffi_trampoline_iiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)417
{418
((void(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);419
}421
intptr_t ffi_trampoline_iiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)422
{423
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);424
}426
double ffi_trampoline_iiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3)427
{428
return ((double(*)(intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);429
}431
void ffi_trampoline_iidi_v(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)432
{433
((void(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);434
}436
intptr_t ffi_trampoline_iidi_i(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)437
{438
return ((intptr_t(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);439
}441
double ffi_trampoline_iidi_d(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3)442
{443
return ((double(*)(intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3);444
}446
void ffi_trampoline_idii_v(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)447
{448
((void(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);449
}451
intptr_t ffi_trampoline_idii_i(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)452
{453
return ((intptr_t(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);454
}456
double ffi_trampoline_idii_d(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3)457
{458
return ((double(*)(intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3);459
}461
void ffi_trampoline_diii_v(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)462
{463
((void(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);464
}466
intptr_t ffi_trampoline_diii_i(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)467
{468
return ((intptr_t(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);469
}471
double ffi_trampoline_diii_d(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3)472
{473
return ((double(*)(double, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);474
}476
void ffi_trampoline_iidd_v(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)477
{478
((void(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);479
}481
intptr_t ffi_trampoline_iidd_i(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)482
{483
return ((intptr_t(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);484
}486
double ffi_trampoline_iidd_d(void *fn, intptr_t a0, intptr_t a1, double a2, double a3)487
{488
return ((double(*)(intptr_t, intptr_t, double, double))fn)(a0, a1, a2, a3);489
}491
void ffi_trampoline_idid_v(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)492
{493
((void(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);494
}496
intptr_t ffi_trampoline_idid_i(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)497
{498
return ((intptr_t(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);499
}501
double ffi_trampoline_idid_d(void *fn, intptr_t a0, double a1, intptr_t a2, double a3)502
{503
return ((double(*)(intptr_t, double, intptr_t, double))fn)(a0, a1, a2, a3);504
}506
void ffi_trampoline_diid_v(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)507
{508
((void(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);509
}511
intptr_t ffi_trampoline_diid_i(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)512
{513
return ((intptr_t(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);514
}516
double ffi_trampoline_diid_d(void *fn, double a0, intptr_t a1, intptr_t a2, double a3)517
{518
return ((double(*)(double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3);519
}521
void ffi_trampoline_iddd_v(void *fn, intptr_t a0, double a1, double a2, double a3)522
{523
((void(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);524
}526
intptr_t ffi_trampoline_iddd_i(void *fn, intptr_t a0, double a1, double a2, double a3)527
{528
return ((intptr_t(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);529
}531
double ffi_trampoline_iddd_d(void *fn, intptr_t a0, double a1, double a2, double a3)532
{533
return ((double(*)(intptr_t, double, double, double))fn)(a0, a1, a2, a3);534
}536
void ffi_trampoline_iiiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)537
{538
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);539
}541
intptr_t ffi_trampoline_iiiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)542
{543
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);544
}546
double ffi_trampoline_iiiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4)547
{548
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);549
}551
void ffi_trampoline_iiidi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)552
{553
((void(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);554
}556
intptr_t ffi_trampoline_iiidi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)557
{558
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);559
}561
double ffi_trampoline_iiidi_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, double a3, intptr_t a4)562
{563
return ((double(*)(intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4);564
}566
void ffi_trampoline_iidii_v(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)567
{568
((void(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);569
}571
intptr_t ffi_trampoline_iidii_i(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)572
{573
return ((intptr_t(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);574
}576
double ffi_trampoline_iidii_d(void *fn, intptr_t a0, intptr_t a1, double a2, intptr_t a3, intptr_t a4)577
{578
return ((double(*)(intptr_t, intptr_t, double, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);579
}581
void ffi_trampoline_idiid_v(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)582
{583
((void(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);584
}586
intptr_t ffi_trampoline_idiid_i(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)587
{588
return ((intptr_t(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);589
}591
double ffi_trampoline_idiid_d(void *fn, intptr_t a0, double a1, intptr_t a2, intptr_t a3, double a4)592
{593
return ((double(*)(intptr_t, double, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4);594
}596
void ffi_trampoline_diiii_v(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)597
{598
((void(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);599
}601
intptr_t ffi_trampoline_diiii_i(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)602
{603
return ((intptr_t(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);604
}606
double ffi_trampoline_diiii_d(void *fn, double a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)607
{608
return ((double(*)(double, intptr_t, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3, a4);609
}611
void ffi_trampoline_idddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)612
{613
((void(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);614
}616
intptr_t ffi_trampoline_idddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)617
{618
return ((intptr_t(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);619
}621
double ffi_trampoline_idddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4)622
{623
return ((double(*)(intptr_t, double, double, double, double))fn)(a0, a1, a2, a3, a4);624
}626
void ffi_trampoline_iiiiid_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)627
{628
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);629
}631
intptr_t ffi_trampoline_iiiiid_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)632
{633
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);634
}636
double ffi_trampoline_iiiiid_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4, double a5)637
{638
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, double))fn)(a0, a1, a2, a3, a4, a5);639
}641
void ffi_trampoline_iiiidi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)642
{643
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);644
}646
intptr_t ffi_trampoline_iiiidi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)647
{648
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);649
}651
double ffi_trampoline_iiiidi_d(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, double a4, intptr_t a5)652
{653
return ((double(*)(intptr_t, intptr_t, intptr_t, intptr_t, double, intptr_t))fn)(a0, a1, a2, a3, a4, a5);654
}656
void ffi_trampoline_iddddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)657
{658
((void(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);659
}661
intptr_t ffi_trampoline_iddddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)662
{663
return ((intptr_t(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);664
}666
double ffi_trampoline_iddddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5)667
{668
return ((double(*)(intptr_t, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5);669
}671
void ffi_trampoline_idddddd_v(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)672
{673
((void(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);674
}676
intptr_t ffi_trampoline_idddddd_i(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)677
{678
return ((intptr_t(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);679
}681
double ffi_trampoline_idddddd_d(void *fn, intptr_t a0, double a1, double a2, double a3, double a4, double a5, double a6)682
{683
return ((double(*)(intptr_t, double, double, double, double, double, double))fn)(a0, a1, a2, a3, a4, a5, a6);684
}686
void ffi_trampoline_if_v(void *fn, intptr_t a0, float a1)687
{688
((void(*)(intptr_t, float))fn)(a0, a1);689
}691
intptr_t ffi_trampoline_if_i(void *fn, intptr_t a0, float a1)692
{693
return ((intptr_t(*)(intptr_t, float))fn)(a0, a1);694
}696
float ffi_trampoline_if_f(void *fn, intptr_t a0, float a1)697
{698
return ((float(*)(intptr_t, float))fn)(a0, a1);699
}701
void ffi_trampoline_fi_v(void *fn, float a0, intptr_t a1)702
{703
((void(*)(float, intptr_t))fn)(a0, a1);704
}706
intptr_t ffi_trampoline_fi_i(void *fn, float a0, intptr_t a1)707
{708
return ((intptr_t(*)(float, intptr_t))fn)(a0, a1);709
}711
float ffi_trampoline_fi_f(void *fn, float a0, intptr_t a1)712
{713
return ((float(*)(float, intptr_t))fn)(a0, a1);714
}716
void ffi_trampoline_iif_v(void *fn, intptr_t a0, intptr_t a1, float a2)717
{718
((void(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);719
}721
intptr_t ffi_trampoline_iif_i(void *fn, intptr_t a0, intptr_t a1, float a2)722
{723
return ((intptr_t(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);724
}726
float ffi_trampoline_iif_f(void *fn, intptr_t a0, intptr_t a1, float a2)727
{728
return ((float(*)(intptr_t, intptr_t, float))fn)(a0, a1, a2);729
}731
void ffi_trampoline_ifi_v(void *fn, intptr_t a0, float a1, intptr_t a2)732
{733
((void(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);734
}736
intptr_t ffi_trampoline_ifi_i(void *fn, intptr_t a0, float a1, intptr_t a2)737
{738
return ((intptr_t(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);739
}741
float ffi_trampoline_ifi_f(void *fn, intptr_t a0, float a1, intptr_t a2)742
{743
return ((float(*)(intptr_t, float, intptr_t))fn)(a0, a1, a2);744
}746
void ffi_trampoline_fii_v(void *fn, float a0, intptr_t a1, intptr_t a2)747
{748
((void(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);749
}751
intptr_t ffi_trampoline_fii_i(void *fn, float a0, intptr_t a1, intptr_t a2)752
{753
return ((intptr_t(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);754
}756
float ffi_trampoline_fii_f(void *fn, float a0, intptr_t a1, intptr_t a2)757
{758
return ((float(*)(float, intptr_t, intptr_t))fn)(a0, a1, a2);759
}761
void ffi_trampoline_iff_v(void *fn, intptr_t a0, float a1, float a2)762
{763
((void(*)(intptr_t, float, float))fn)(a0, a1, a2);764
}766
intptr_t ffi_trampoline_iff_i(void *fn, intptr_t a0, float a1, float a2)767
{768
return ((intptr_t(*)(intptr_t, float, float))fn)(a0, a1, a2);769
}771
float ffi_trampoline_iff_f(void *fn, intptr_t a0, float a1, float a2)772
{773
return ((float(*)(intptr_t, float, float))fn)(a0, a1, a2);774
}776
void ffi_trampoline_fif_v(void *fn, float a0, intptr_t a1, float a2)777
{778
((void(*)(float, intptr_t, float))fn)(a0, a1, a2);779
}781
intptr_t ffi_trampoline_fif_i(void *fn, float a0, intptr_t a1, float a2)782
{783
return ((intptr_t(*)(float, intptr_t, float))fn)(a0, a1, a2);784
}786
float ffi_trampoline_fif_f(void *fn, float a0, intptr_t a1, float a2)787
{788
return ((float(*)(float, intptr_t, float))fn)(a0, a1, a2);789
}791
void ffi_trampoline_ffi_v(void *fn, float a0, float a1, intptr_t a2)792
{793
((void(*)(float, float, intptr_t))fn)(a0, a1, a2);794
}796
intptr_t ffi_trampoline_ffi_i(void *fn, float a0, float a1, intptr_t a2)797
{798
return ((intptr_t(*)(float, float, intptr_t))fn)(a0, a1, a2);799
}801
float ffi_trampoline_ffi_f(void *fn, float a0, float a1, intptr_t a2)802
{803
return ((float(*)(float, float, intptr_t))fn)(a0, a1, a2);804
}806
void ffi_trampoline_iiif_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)807
{808
((void(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);809
}811
intptr_t ffi_trampoline_iiif_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)812
{813
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);814
}816
float ffi_trampoline_iiif_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3)817
{818
return ((float(*)(intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3);819
}821
void ffi_trampoline_iifi_v(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)822
{823
((void(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);824
}826
intptr_t ffi_trampoline_iifi_i(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)827
{828
return ((intptr_t(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);829
}831
float ffi_trampoline_iifi_f(void *fn, intptr_t a0, intptr_t a1, float a2, intptr_t a3)832
{833
return ((float(*)(intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3);834
}836
void ffi_trampoline_ifii_v(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)837
{838
((void(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);839
}841
intptr_t ffi_trampoline_ifii_i(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)842
{843
return ((intptr_t(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);844
}846
float ffi_trampoline_ifii_f(void *fn, intptr_t a0, float a1, intptr_t a2, intptr_t a3)847
{848
return ((float(*)(intptr_t, float, intptr_t, intptr_t))fn)(a0, a1, a2, a3);849
}851
void ffi_trampoline_fiii_v(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)852
{853
((void(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);854
}856
intptr_t ffi_trampoline_fiii_i(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)857
{858
return ((intptr_t(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);859
}861
float ffi_trampoline_fiii_f(void *fn, float a0, intptr_t a1, intptr_t a2, intptr_t a3)862
{863
return ((float(*)(float, intptr_t, intptr_t, intptr_t))fn)(a0, a1, a2, a3);864
}866
void ffi_trampoline_iiiif_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)867
{868
((void(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);869
}871
intptr_t ffi_trampoline_iiiif_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)872
{873
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);874
}876
float ffi_trampoline_iiiif_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, intptr_t a3, float a4)877
{878
return ((float(*)(intptr_t, intptr_t, intptr_t, intptr_t, float))fn)(a0, a1, a2, a3, a4);879
}881
void ffi_trampoline_iiifi_v(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)882
{883
((void(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);884
}886
intptr_t ffi_trampoline_iiifi_i(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)887
{888
return ((intptr_t(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);889
}891
float ffi_trampoline_iiifi_f(void *fn, intptr_t a0, intptr_t a1, intptr_t a2, float a3, intptr_t a4)892
{893
return ((float(*)(intptr_t, intptr_t, intptr_t, float, intptr_t))fn)(a0, a1, a2, a3, a4);894
}896
/* Trampoline lookup table — sorted by signature for binary search */897
typedef struct {898
const char *signature;899
void *trampoline;900
} FfiTrampoline;902
const 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 },1080
};1082
const int ffi_trampoline_count = 177;1084
/* ============================================================1085
* Callback Trampolines: C → Scheme1086
* ============================================================1087
*1088
* Each callback trampoline is a plain C function with the correct1089
* signature that C libraries expect. When called, it dispatches to1090
* ffi_callback_dispatch() with its compiled-in group and slot index.1091
*1092
* 16 slots per signature, 6 signatures = 96 trampolines total.1093
*/1095
/* Dispatcher prototype (defined in ffi.c) */1096
extern 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 comparators1102
* 1 = ii_v (int, int) -> void1103
* 2 = i_v (int) -> void event handlers1104
* 3 = i_i (int) -> int predicates1105
* 4 = _v (void) -> void thunks1106
* 5 = _i (void) -> int1107
*/1109
/* ---- Signature: ii_i — int(intptr_t, intptr_t) ---- */1110
#define CB_II_I(N) \1111
static 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); \1114
}1115
CB_II_I(0) CB_II_I(1) CB_II_I(2) CB_II_I(3)1116
CB_II_I(4) CB_II_I(5) CB_II_I(6) CB_II_I(7)1117
CB_II_I(8) CB_II_I(9) CB_II_I(10) CB_II_I(11)1118
CB_II_I(12) CB_II_I(13) CB_II_I(14) CB_II_I(15)1119
#undef CB_II_I1121
void *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,1130
};1132
/* ---- Signature: ii_v — void(intptr_t, intptr_t) ---- */1133
#define CB_II_V(N) \1134
static 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); \1137
}1138
CB_II_V(0) CB_II_V(1) CB_II_V(2) CB_II_V(3)1139
CB_II_V(4) CB_II_V(5) CB_II_V(6) CB_II_V(7)1140
CB_II_V(8) CB_II_V(9) CB_II_V(10) CB_II_V(11)1141
CB_II_V(12) CB_II_V(13) CB_II_V(14) CB_II_V(15)1142
#undef CB_II_V1144
void *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,1153
};1155
/* ---- Signature: i_v — void(intptr_t) ---- */1156
#define CB_I_V(N) \1157
static void ffi_cb_i_v_##N(intptr_t a0) { \1158
intptr_t args[] = {a0}; \1159
ffi_callback_dispatch(2, N, 1, args, NULL); \1160
}1161
CB_I_V(0) CB_I_V(1) CB_I_V(2) CB_I_V(3)1162
CB_I_V(4) CB_I_V(5) CB_I_V(6) CB_I_V(7)1163
CB_I_V(8) CB_I_V(9) CB_I_V(10) CB_I_V(11)1164
CB_I_V(12) CB_I_V(13) CB_I_V(14) CB_I_V(15)1165
#undef CB_I_V1167
void *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,1176
};1178
/* ---- Signature: i_i — int(intptr_t) ---- */1179
#define CB_I_I(N) \1180
static 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); \1183
}1184
CB_I_I(0) CB_I_I(1) CB_I_I(2) CB_I_I(3)1185
CB_I_I(4) CB_I_I(5) CB_I_I(6) CB_I_I(7)1186
CB_I_I(8) CB_I_I(9) CB_I_I(10) CB_I_I(11)1187
CB_I_I(12) CB_I_I(13) CB_I_I(14) CB_I_I(15)1188
#undef CB_I_I1190
void *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,1199
};1201
/* ---- Signature: _v — void(void) ---- */1202
#define CB__V(N) \1203
static void ffi_cb__v_##N(void) { \1204
ffi_callback_dispatch(4, N, 0, NULL, NULL); \1205
}1206
CB__V(0) CB__V(1) CB__V(2) CB__V(3)1207
CB__V(4) CB__V(5) CB__V(6) CB__V(7)1208
CB__V(8) CB__V(9) CB__V(10) CB__V(11)1209
CB__V(12) CB__V(13) CB__V(14) CB__V(15)1210
#undef CB__V1212
void *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,1221
};1223
/* ---- Signature: _i — int(void) ---- */1224
#define CB__I(N) \1225
static intptr_t ffi_cb__i_##N(void) { \1226
return ffi_callback_dispatch(5, N, 0, NULL, NULL); \1227
}1228
CB__I(0) CB__I(1) CB__I(2) CB__I(3)1229
CB__I(4) CB__I(5) CB__I(6) CB__I(7)1230
CB__I(8) CB__I(9) CB__I(10) CB__I(11)1231
CB__I(12) CB__I(13) CB__I(14) CB__I(15)1232
#undef CB__I1234
void *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,1243
};1245
const int ffi_callback_sig_count = 6;