]>
Commit | Line | Data |
---|---|---|
3b15402f MM |
1 | /* |
2 | * BIRD Library -- Event Processing | |
3 | * | |
4 | * (c) 1999 Martin Mares <mj@ucw.cz> | |
5 | * | |
6 | * Can be freely distributed and used under the terms of the GNU GPL. | |
7 | */ | |
8 | ||
9 | #ifndef _BIRD_EVENT_H_ | |
10 | #define _BIRD_EVENT_H_ | |
11 | ||
12 | #include "lib/resource.h" | |
13 | ||
14 | typedef struct event { | |
15 | resource r; | |
8f6accb5 | 16 | void (*hook)(void *); |
3b15402f MM |
17 | void *data; |
18 | node n; /* Internal link */ | |
19 | } event; | |
20 | ||
21 | typedef list event_list; | |
22 | ||
23 | extern event_list global_event_list; | |
24 | ||
25 | event *ev_new(pool *); | |
8f6accb5 | 26 | void ev_run(event *); |
3b15402f MM |
27 | #define ev_init_list(el) init_list(el) |
28 | void ev_enqueue(event_list *, event *); | |
29 | void ev_schedule(event *); | |
30 | void ev_postpone(event *); | |
84a7d7f7 | 31 | int ev_run_list(event_list *); |
3b15402f | 32 | |
6f8bbaa1 OZ |
33 | static inline int |
34 | ev_active(event *e) | |
35 | { | |
36 | return e->n.next != NULL; | |
37 | } | |
38 | ||
39 | ||
3b15402f | 40 | #endif |