diff options
author | sam <sam@FreeBSD.org> | 2005-06-05 22:35:03 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-06-05 22:35:03 +0000 |
commit | 21e78f430e299464b3c902bec78f8daa1f0e2e71 (patch) | |
tree | a7d225a062cd128980707f3fa918dec2d015c46b /contrib/hostapd/eloop.h | |
download | FreeBSD-src-21e78f430e299464b3c902bec78f8daa1f0e2e71.zip FreeBSD-src-21e78f430e299464b3c902bec78f8daa1f0e2e71.tar.gz |
Stripped down import of hostapd v0.3.7
Diffstat (limited to 'contrib/hostapd/eloop.h')
-rw-r--r-- | contrib/hostapd/eloop.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/hostapd/eloop.h b/contrib/hostapd/eloop.h new file mode 100644 index 0000000..f5b8847 --- /dev/null +++ b/contrib/hostapd/eloop.h @@ -0,0 +1,53 @@ +#ifndef ELOOP_H +#define ELOOP_H + +/* Magic number for eloop_cancel_timeout() */ +#define ELOOP_ALL_CTX (void *) -1 + +/* Initialize global event loop data - must be called before any other eloop_* + * function. user_data is a pointer to global data structure and will be passed + * as eloop_ctx to signal handlers. */ +void eloop_init(void *user_data); + +/* Register handler for read event */ +int eloop_register_read_sock(int sock, + void (*handler)(int sock, void *eloop_ctx, + void *sock_ctx), + void *eloop_data, void *user_data); +void eloop_unregister_read_sock(int sock); + +/* Register timeout */ +int eloop_register_timeout(unsigned int secs, unsigned int usecs, + void (*handler)(void *eloop_ctx, void *timeout_ctx), + void *eloop_data, void *user_data); + +/* Cancel timeouts matching <handler,eloop_data,user_data>. + * ELOOP_ALL_CTX can be used as a wildcard for cancelling all timeouts + * regardless of eloop_data/user_data. */ +int eloop_cancel_timeout(void (*handler)(void *eloop_ctx, void *sock_ctx), + void *eloop_data, void *user_data); + +/* Register handler for signal. + * Note: signals are 'global' events and there is no local eloop_data pointer + * like with other handlers. The (global) pointer given to eloop_init() will be + * used as eloop_ctx for signal handlers. */ +int eloop_register_signal(int sock, + void (*handler)(int sig, void *eloop_ctx, + void *signal_ctx), + void *user_data); + +/* Start event loop and continue running as long as there are any registered + * event handlers. */ +void eloop_run(void); + +/* Terminate event loop even if there are registered events. */ +void eloop_terminate(void); + +/* Free any reserved resources. After calling eloop_destoy(), other eloop_* + * functions must not be called before re-running eloop_init(). */ +void eloop_destroy(void); + +/* Check whether event loop has been terminated. */ +int eloop_terminated(void); + +#endif /* ELOOP_H */ |