… | |
… | |
33 | |
33 | |
34 | struct EVAPI { |
34 | struct EVAPI { |
35 | I32 ver; |
35 | I32 ver; |
36 | I32 rev; |
36 | I32 rev; |
37 | #define EV_API_VERSION 4 |
37 | #define EV_API_VERSION 4 |
38 | #define EV_API_REVISION 4 |
38 | #define EV_API_REVISION 5 |
39 | |
39 | |
40 | struct ev_loop *default_loop; |
40 | struct ev_loop *default_loop; |
41 | unsigned int supported_backends; |
41 | unsigned int supported_backends; |
42 | unsigned int recommended_backends; |
42 | unsigned int recommended_backends; |
43 | unsigned int embeddable_backends; |
43 | unsigned int embeddable_backends; |
… | |
… | |
94 | /* TODO: move up on next major API bump */ |
94 | /* TODO: move up on next major API bump */ |
95 | void (*now_update) (EV_P); |
95 | void (*now_update) (EV_P); |
96 | void (*suspend) (EV_P); |
96 | void (*suspend) (EV_P); |
97 | void (*resume) (EV_P); |
97 | void (*resume) (EV_P); |
98 | unsigned int (*loop_depth)(EV_P); |
98 | unsigned int (*loop_depth)(EV_P); |
|
|
99 | void (*set_userdata)(EV_P_ void *data); |
|
|
100 | void *(*userdata) (EV_P); |
|
|
101 | void (*set_loop_release_cb) (EV_P_ void (*release)(EV_P), void (*acquire)(EV_P)); |
|
|
102 | void (*set_invoke_pending_cb)(EV_P_ void (*invoke_pending_cb)(EV_P)); |
|
|
103 | void (*invoke_pending) (EV_P); |
99 | }; |
104 | }; |
100 | |
105 | |
101 | #if !EV_PROTOTYPES |
106 | #if !EV_PROTOTYPES |
102 | # undef EV_DEFAULT |
107 | # undef EV_DEFAULT |
103 | # undef EV_DEFAULT_ |
108 | # undef EV_DEFAULT_ |
… | |
… | |
116 | # define ev_sleep(time) GEVAPI->sleep_ ((time)) |
121 | # define ev_sleep(time) GEVAPI->sleep_ ((time)) |
117 | # define ev_loop_new(flags) GEVAPI->loop_new ((flags)) |
122 | # define ev_loop_new(flags) GEVAPI->loop_new ((flags)) |
118 | # define ev_loop_destroy(loop) GEVAPI->loop_destroy ((loop)) |
123 | # define ev_loop_destroy(loop) GEVAPI->loop_destroy ((loop)) |
119 | # define ev_loop_fork(loop) GEVAPI->loop_fork ((loop)) |
124 | # define ev_loop_fork(loop) GEVAPI->loop_fork ((loop)) |
120 | # define ev_loop_count(loop) GEVAPI->loop_count ((loop)) |
125 | # define ev_loop_count(loop) GEVAPI->loop_count ((loop)) |
|
|
126 | # define ev_set_userdata(l,p) GEVAPI->set_userdata ((l), (p)) |
|
|
127 | # define ev_userdata(l) GEVAPI->userdata (l) |
121 | # define ev_now(loop) GEVAPI->now ((loop)) |
128 | # define ev_now(loop) GEVAPI->now ((loop)) |
122 | # define ev_now_update(loop) GEVAPI->now_update ((loop)) |
129 | # define ev_now_update(loop) GEVAPI->now_update ((loop)) |
123 | # define ev_suspend(loop) GEVAPI->suspend ((loop)) |
130 | # define ev_suspend(loop) GEVAPI->suspend ((loop)) |
124 | # define ev_resume(loop) GEVAPI->resume ((loop)) |
131 | # define ev_resume(loop) GEVAPI->resume ((loop)) |
125 | # define ev_backend(loop) GEVAPI->backend ((loop)) |
132 | # define ev_backend(loop) GEVAPI->backend ((loop)) |
126 | # define ev_loop(l,flags) GEVAPI->loop ((l), (flags)) |
133 | # define ev_loop(l,flags) GEVAPI->loop ((l), (flags)) |
127 | # define ev_unloop(loop,how) GEVAPI->unloop ((loop), (how)) |
134 | # define ev_unloop(loop,how) GEVAPI->unloop ((loop), (how)) |
|
|
135 | # define ev_invoke_pending(l,p) GEVAPI->invoke_pending ((l), (p)) |
|
|
136 | # define ev_set_loop_release_cb(l,r,a) GEVAPI->set_loop_release_cb ((l), (r), (a)) |
|
|
137 | # define ev_set_invoke_pending_cb(l,c) GEVAPI->set_invoke_pending_cb ((l), (c)) |
128 | # define ev_once(loop,fd,events,timeout,cb,arg) GEVAPI->once ((loop), (fd), (events), (timeout), (cb), (arg)) |
138 | # define ev_once(loop,fd,events,timeout,cb,arg) GEVAPI->once ((loop), (fd), (events), (timeout), (cb), (arg)) |
129 | # define ev_io_start(l,w) GEVAPI->io_start ((l), (w)) |
139 | # define ev_io_start(l,w) GEVAPI->io_start ((l), (w)) |
130 | # define ev_io_stop(l,w) GEVAPI->io_stop ((l), (w)) |
140 | # define ev_io_stop(l,w) GEVAPI->io_stop ((l), (w)) |
131 | # define ev_timer_start(l,w) GEVAPI->timer_start ((l), (w)) |
141 | # define ev_timer_start(l,w) GEVAPI->timer_start ((l), (w)) |
132 | # define ev_timer_stop(l,w) GEVAPI->timer_stop ((l), (w)) |
142 | # define ev_timer_stop(l,w) GEVAPI->timer_stop ((l), (w)) |
… | |
… | |
155 | # define ev_async_stop(l,w) GEVAPI->async_stop ((l), (w)) |
165 | # define ev_async_stop(l,w) GEVAPI->async_stop ((l), (w)) |
156 | # define ev_async_send(l,w) GEVAPI->async_send ((l), (w)) |
166 | # define ev_async_send(l,w) GEVAPI->async_send ((l), (w)) |
157 | # define ev_ref(loop) GEVAPI->ref (loop) |
167 | # define ev_ref(loop) GEVAPI->ref (loop) |
158 | # define ev_unref(loop) GEVAPI->unref (loop) |
168 | # define ev_unref(loop) GEVAPI->unref (loop) |
159 | # define ev_clear_pending(l,w) GEVAPI->clear_pending ((l), (w)) |
169 | # define ev_clear_pending(l,w) GEVAPI->clear_pending ((l), (w)) |
160 | # define ev_invoke(l,w,rev) GEVAPI->invoke (l, w, rev) |
170 | # define ev_invoke(l,w,rev) GEVAPI->invoke ((l), (w), (rev)) |
161 | #endif |
171 | #endif |
162 | |
172 | |
163 | static struct EVAPI *GEVAPI; |
173 | static struct EVAPI *GEVAPI; |
164 | |
174 | |
165 | #define I_EV_API(YourName) \ |
175 | #define I_EV_API(YourName) \ |