xref: /third_party/musl/include/sys/epoll.h (revision 570af302)
1#ifndef	_SYS_EPOLL_H
2#define	_SYS_EPOLL_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <stdint.h>
9#include <sys/types.h>
10#include <fcntl.h>
11
12#define __NEED_sigset_t
13
14#include <bits/alltypes.h>
15
16#define EPOLL_CLOEXEC O_CLOEXEC
17#define EPOLL_NONBLOCK O_NONBLOCK
18
19enum EPOLL_EVENTS { __EPOLL_DUMMY };
20#define EPOLLIN 0x001
21#define EPOLLPRI 0x002
22#define EPOLLOUT 0x004
23#define EPOLLRDNORM 0x040
24#define EPOLLNVAL 0x020
25#define EPOLLRDBAND 0x080
26#define EPOLLWRNORM 0x100
27#define EPOLLWRBAND 0x200
28#define EPOLLMSG 0x400
29#define EPOLLERR 0x008
30#define EPOLLHUP 0x010
31#define EPOLLRDHUP 0x2000
32#define EPOLLEXCLUSIVE (1U<<28)
33#define EPOLLWAKEUP (1U<<29)
34#define EPOLLONESHOT (1U<<30)
35#define EPOLLET (1U<<31)
36
37#define EPOLL_CTL_ADD 1
38#define EPOLL_CTL_DEL 2
39#define EPOLL_CTL_MOD 3
40
41typedef union epoll_data {
42	void *ptr;
43	int fd;
44	uint32_t u32;
45	uint64_t u64;
46} epoll_data_t;
47
48struct epoll_event {
49	uint32_t events;
50	epoll_data_t data;
51}
52#ifdef __x86_64__
53__attribute__ ((__packed__))
54#endif
55;
56
57
58int epoll_create(int);
59int epoll_create1(int);
60int epoll_ctl(int, int, int, struct epoll_event *);
61int epoll_wait(int, struct epoll_event *, int, int);
62int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);
63
64
65#ifdef __cplusplus
66}
67#endif
68
69#endif /* sys/epoll.h */
70