Run ip link up before adding addresses and routes
[tinc] / src / event.h
index e7def91..386c0b5 100644 (file)
@@ -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
-extern void io_add_event(io_t *io, io_cb_t cb, voiddata, WSAEVENT event);
+#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);