Squashed 'third_party/rawrtc/re/' content from commit f3163ce8b

Change-Id: I6a235e6ac0f03269d951026f9d195da05c40fdab
git-subtree-dir: third_party/rawrtc/re
git-subtree-split: f3163ce8b526a13b35ef71ce4dd6f43585064d8a
diff --git a/include/re_main.h b/include/re_main.h
new file mode 100644
index 0000000..cc9ac4b
--- /dev/null
+++ b/include/re_main.h
@@ -0,0 +1,69 @@
+/**
+ * @file re_main.h  Interface to main polling routine
+ *
+ * Copyright (C) 2010 Creytiv.com
+ */
+
+
+enum {
+#ifndef FD_READ
+	FD_READ   = 1<<0,
+#endif
+#ifndef FD_WRITE
+	FD_WRITE  = 1<<1,
+#endif
+	FD_EXCEPT = 1<<2
+};
+
+
+/**
+ * File descriptor event handler
+ *
+ * @param flags  Event flags
+ * @param arg    Handler argument
+ */
+typedef void (fd_h)(int flags, void *arg);
+
+/**
+ * Thread-safe signal handler
+ *
+ * @param sig Signal number
+ */
+typedef void (re_signal_h)(int sig);
+
+
+int   fd_listen(int fd, int flags, fd_h *fh, void *arg);
+void  fd_close(int fd);
+int   fd_setsize(int maxfds);
+void  fd_debug(void);
+
+int   libre_init(void);
+void  libre_close(void);
+
+int   re_main(re_signal_h *signalh);
+void  re_cancel(void);
+int   re_debug(struct re_printf *pf, void *unused);
+
+int  re_thread_init(void);
+void re_thread_close(void);
+void re_thread_enter(void);
+void re_thread_leave(void);
+
+void re_set_mutex(void *mutexp);
+
+
+/** Polling methods */
+enum poll_method {
+	METHOD_NULL = 0,
+	METHOD_POLL,
+	METHOD_SELECT,
+	METHOD_EPOLL,
+	METHOD_KQUEUE,
+	/* sep */
+	METHOD_MAX
+};
+
+int              poll_method_set(enum poll_method method);
+enum poll_method poll_method_best(void);
+const char      *poll_method_name(enum poll_method method);
+int poll_method_type(enum poll_method *method, const struct pl *name);