X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fevent.h;h=386c0b51a22c2676b682514cfb0c8a71ee6a1ee9;hb=ce4d55b72fd4290d4710f10e755f6dd9ed039d88;hp=7adaf85e546d2cdb08bf38ae69d3d56358c53004;hpb=f6e87ab476a0faf8b124ecaaa27f967d825e6457;p=tinc diff --git a/src/event.h b/src/event.h index 7adaf85e..386c0b51 100644 --- a/src/event.h +++ b/src/event.h @@ -20,6 +20,7 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "system.h" #include "splay_tree.h" #define IO_READ 1 @@ -32,7 +33,7 @@ typedef void (*signal_cb_t)(void *data); typedef struct io_t { int fd; int flags; -#ifdef HAVE_MINGW +#ifdef HAVE_WINDOWS WSAEVENT event; #endif io_cb_t cb; @@ -51,21 +52,24 @@ typedef struct signal_t { int signum; signal_cb_t cb; void *data; - splay_node_t node; } signal_t; extern struct timeval now; +extern splay_tree_t io_tree; +extern splay_tree_t timeout_tree; + extern void io_add(io_t *io, io_cb_t cb, void *data, int fd, int flags); -#ifdef HAVE_MINGW +#ifdef HAVE_WINDOWS extern void io_add_event(io_t *io, io_cb_t cb, void *data, WSAEVENT event); #endif extern void io_del(io_t *io); extern void io_set(io_t *io, int flags); -extern void timeout_add(timeout_t *timeout, timeout_cb_t cb, void *data, struct timeval *tv); +extern void timeout_add(timeout_t *timeout, timeout_cb_t cb, void *data, const struct timeval *tv); extern void timeout_del(timeout_t *timeout); -extern void timeout_set(timeout_t *timeout, struct timeval *tv); +extern void timeout_set(timeout_t *timeout, const struct timeval *tv); +extern struct timeval *timeout_execute(struct timeval *diff); extern void signal_add(signal_t *sig, signal_cb_t cb, void *data, int signum); extern void signal_del(signal_t *sig);