Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-13 23:17:51 +0400
committerFelix Fietkau <nbd@openwrt.org>2010-10-13 23:29:08 +0400
commite82d74f89809c6c01f71168b3b8fdcf490e93fa7 (patch)
treeb031179f224fda2ab77077fa64878fd37879655e /uloop.h
Initial import
Diffstat (limited to 'uloop.h')
-rw-r--r--uloop.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/uloop.h b/uloop.h
new file mode 100644
index 0000000..f84050a
--- /dev/null
+++ b/uloop.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#ifndef _ULOOP_H__
+#define _ULOOP_H__
+
+#include <sys/time.h>
+#include <stdbool.h>
+
+struct uloop_fd;
+struct uloop_timeout;
+
+typedef void (*uloop_fd_handler)(struct uloop_fd *u, unsigned int events);
+typedef void (*uloop_timeout_handler)(struct uloop_timeout *t);
+
+#define ULOOP_READ (1 << 0)
+#define ULOOP_WRITE (1 << 1)
+#define ULOOP_EDGE_TRIGGER (1 << 2)
+
+struct uloop_fd
+{
+ uloop_fd_handler cb;
+ int fd;
+ bool eof;
+ bool error;
+ bool registered;
+};
+
+struct uloop_timeout
+{
+ uloop_timeout_handler cb;
+ struct uloop_timeout *prev;
+ struct uloop_timeout *next;
+ struct timeval time;
+ bool pending;
+};
+
+int uloop_fd_add(struct uloop_fd *sock, unsigned int flags);
+int uloop_fd_delete(struct uloop_fd *sock);
+
+int uloop_timeout_add(struct uloop_timeout *timeout);
+int uloop_timeout_set(struct uloop_timeout *timeout, int msecs);
+int uloop_timeout_cancel(struct uloop_timeout *timeout);
+
+void uloop_end(void);
+int uloop_init(void);
+void uloop_run(void);
+void uloop_done(void);
+
+#endif