summaryrefslogtreecommitdiffstats
path: root/lib/waiter/waiter.h
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-04-10 12:19:13 +1000
committerGeoff Levand <geoff@infradead.org>2013-04-10 10:49:20 -0700
commit37428306a270088bfcb1f94362a0fe5b7a5a888e (patch)
tree5d1aeca3eca44b68a8f8939e3bea44709a953aa9 /lib/waiter/waiter.h
parentee86a0bd989511319adf3467b41b5b2e1f486aa6 (diff)
downloadtalos-petitboot-37428306a270088bfcb1f94362a0fe5b7a5a888e.tar.gz
talos-petitboot-37428306a270088bfcb1f94362a0fe5b7a5a888e.zip
waiter: Don't rely on global variables to keep waiter state
Rather than defining the set of waiters (and pollfds) in waiter.c, add a struct waitset to contain these. A waitset is created with waitset_create, which is passed to the waiter_* functions. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Geoff Levand <geoff@infradead.org>
Diffstat (limited to 'lib/waiter/waiter.h')
-rw-r--r--lib/waiter/waiter.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/waiter/waiter.h b/lib/waiter/waiter.h
index ff8a5ff..ed7f6bb 100644
--- a/lib/waiter/waiter.h
+++ b/lib/waiter/waiter.h
@@ -4,6 +4,7 @@
#include <poll.h>
struct waiter;
+struct waitset;
enum events {
WAIT_IN = POLLIN,
@@ -12,12 +13,15 @@ enum events {
typedef int (*waiter_cb)(void *);
-struct waiter *waiter_register(int fd, int events,
+struct waitset *waitset_create(void *ctx);
+void waitset_destroy(struct waitset *waitset);
+
+struct waiter *waiter_register(struct waitset *waitset, int fd, int events,
waiter_cb callback, void *arg);
void waiter_remove(struct waiter *waiter);
-int waiter_poll(void);
+int waiter_poll(struct waitset *waitset);
#endif /* _WAITER_H */
OpenPOWER on IntegriCloud