]> git.ozlabs.org Git - petitboot/blob - lib/waiter/waiter.h
lib: Move generic file-handling code to lib/
[petitboot] / lib / waiter / waiter.h
1 #ifndef _WAITER_H
2 #define _WAITER_H
3
4 #include <poll.h>
5
6 struct waiter;
7 struct waitset;
8
9 enum events {
10         WAIT_IN  = POLLIN,
11         WAIT_OUT = POLLOUT,
12 };
13
14 typedef int (*waiter_cb)(void *);
15
16 struct waitset *waitset_create(void *ctx);
17
18 struct waiter *waiter_register_io(struct waitset *waitset, int fd, int events,
19                 waiter_cb callback, void *arg);
20
21 struct waiter *waiter_register_timeout(struct waitset *set, int delay_ms,
22                 waiter_cb callback, void *arg);
23
24 void waiter_remove(struct waiter *waiter);
25
26 int waiter_poll(struct waitset *waitset);
27 #endif /* _WAITER_H */
28
29