… | |
… | |
24 | /* this is the per-perl-coro slf frame info */ |
24 | /* this is the per-perl-coro slf frame info */ |
25 | /* it is treated like other "global" interpreter data */ |
25 | /* it is treated like other "global" interpreter data */ |
26 | /* and unfortunately is copied around, so keep it small */ |
26 | /* and unfortunately is copied around, so keep it small */ |
27 | struct CoroSLF |
27 | struct CoroSLF |
28 | { |
28 | { |
29 | void (*prepare) (struct coro_transfer_args *ta); /* 0 means not yet initialised */ |
29 | void (*prepare) (pTHX_ struct coro_transfer_args *ta); /* 0 means not yet initialised */ |
30 | int (*check) (pTHX_ struct CoroSLF *frame); |
30 | int (*check) (pTHX_ struct CoroSLF *frame); |
31 | void *data; /* for use by prepare/check */ |
31 | void *data; /* for use by prepare/check */ |
32 | }; |
32 | }; |
33 | |
33 | |
34 | /* needs to fill in the *frame */ |
34 | /* needs to fill in the *frame */ |
… | |
… | |
58 | |
58 | |
59 | /* SLF */ |
59 | /* SLF */ |
60 | struct coro *(*sv_state) (pTHX_ SV *coro); |
60 | struct coro *(*sv_state) (pTHX_ SV *coro); |
61 | void (*execute_slf) (pTHX_ CV *cv, coro_slf_cb init_cb, SV **arg, int nitems); |
61 | void (*execute_slf) (pTHX_ CV *cv, coro_slf_cb init_cb, SV **arg, int nitems); |
62 | /* for use as CoroSLF.prepare */ |
62 | /* for use as CoroSLF.prepare */ |
63 | void (*prepare_nop) (aTHX_ struct coro_transfer_args *ta); |
63 | void (*prepare_nop) (pTHX_ struct coro_transfer_args *ta); |
64 | void (*prepare_schedule) (aTHX_ struct coro_transfer_args *ta); |
64 | void (*prepare_schedule) (pTHX_ struct coro_transfer_args *ta); |
65 | void (*prepare_cede) (aTHX_ struct coro_transfer_args *ta); |
65 | void (*prepare_cede) (pTHX_ struct coro_transfer_args *ta); |
66 | void (*prepare_cede_notself) (aTHX_ struct coro_transfer_args *ta); |
66 | void (*prepare_cede_notself) (pTHX_ struct coro_transfer_args *ta); |
67 | }; |
67 | }; |
68 | |
68 | |
69 | static struct CoroAPI *GCoroAPI; |
69 | static struct CoroAPI *GCoroAPI; |
70 | |
70 | |
71 | /* public API macros */ |
71 | /* public API macros */ |