1 #define SUBSYSTEM APPLICATION_EXEC "_worker_cb: "
2 
3 #define WORKER_CB_CALLBACK_MAX 256						/* Callback structures to allocate */
4 
5 struct t_cb {
6 	unsigned int n;								/* Callback function order number */
7 
8 	void *cb;								/* Callback function to run */
9 
10 	struct w_par *wp;							/* Callback function window event structure */
11 	struct d_par *dp;							/* Callback function subroutine parameter structure */
12 };
13 
14 struct t_str {
15 	unsigned int c_lck;							/* Callback function pipeline is locked or not */
16 	unsigned int c_pnd;							/* Callback function is pending or not */
17 	unsigned int c_cnt;							/* Callback function counter */
18 
19 	struct t_cb cb[2][WORKER_CB_CALLBACK_MAX];				/* Callback structures */
20 };
21 
22 static void worker_cb_cancel(void *);
23 static void worker_cb_cancel_local(struct t_ctx *, struct t_str *);
24 static void worker_cb_finalize(struct t_ctx *);
25 static int worker_cb_init(struct t_ctx *);
26 static int worker_cb_init_local(struct t_ctx *, struct t_str *);
27 
28 static void callback_event_run(struct t_str *);
29 static unsigned int callback_event_run_op(struct t_str *);
30 static int callback_event_run_cmp(const void *, const void *);
31