Index: fusl/include/sys/epoll.h |
diff --git a/fusl/include/sys/epoll.h b/fusl/include/sys/epoll.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1f0312e59ee217b55c954347ac46537974910d55 |
--- /dev/null |
+++ b/fusl/include/sys/epoll.h |
@@ -0,0 +1,67 @@ |
+#ifndef _SYS_EPOLL_H |
+#define _SYS_EPOLL_H |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+ |
+#include <stdint.h> |
+#include <sys/types.h> |
+#include <fcntl.h> |
+ |
+#define __NEED_sigset_t |
+ |
+#include <bits/alltypes.h> |
+ |
+#define EPOLL_CLOEXEC O_CLOEXEC |
+#define EPOLL_NONBLOCK O_NONBLOCK |
+ |
+enum EPOLL_EVENTS { __EPOLL_DUMMY }; |
+#define EPOLLIN 0x001 |
+#define EPOLLPRI 0x002 |
+#define EPOLLOUT 0x004 |
+#define EPOLLRDNORM 0x040 |
+#define EPOLLRDBAND 0x080 |
+#define EPOLLWRNORM 0x100 |
+#define EPOLLWRBAND 0x200 |
+#define EPOLLMSG 0x400 |
+#define EPOLLERR 0x008 |
+#define EPOLLHUP 0x010 |
+#define EPOLLRDHUP 0x2000 |
+#define EPOLLWAKEUP (1U<<29) |
+#define EPOLLONESHOT (1U<<30) |
+#define EPOLLET (1U<<31) |
+ |
+#define EPOLL_CTL_ADD 1 |
+#define EPOLL_CTL_DEL 2 |
+#define EPOLL_CTL_MOD 3 |
+ |
+typedef union epoll_data { |
+ void *ptr; |
+ int fd; |
+ uint32_t u32; |
+ uint64_t u64; |
+} epoll_data_t; |
+ |
+struct epoll_event { |
+ uint32_t events; |
+ epoll_data_t data; |
+} |
+#ifdef __x86_64__ |
+__attribute__ ((__packed__)) |
+#endif |
+; |
+ |
+ |
+int epoll_create(int); |
+int epoll_create1(int); |
+int epoll_ctl(int, int, int, struct epoll_event *); |
+int epoll_wait(int, struct epoll_event *, int, int); |
+int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *); |
+ |
+ |
+#ifdef __cplusplus |
+} |
+#endif |
+ |
+#endif /* sys/epoll.h */ |