remove __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS checks in stdint.h
[musl] / include / sys / epoll.h
1 #ifndef _SYS_EPOLL_H
2 #define _SYS_EPOLL_H
3
4 #ifdef __cplusplus
5 extern "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
19 enum EPOLL_EVENTS { __EPOLL_DUMMY };
20 #define EPOLLIN 0x001
21 #define EPOLLPRI 0x002
22 #define EPOLLOUT 0x004
23 #define EPOLLRDNORM 0x040
24 #define EPOLLRDBAND 0x080
25 #define EPOLLWRNORM 0x100
26 #define EPOLLWRBAND 0x200
27 #define EPOLLMSG 0x400
28 #define EPOLLERR 0x008
29 #define EPOLLHUP 0x010
30 #define EPOLLRDHUP 0x2000
31 #define EPOLLWAKEUP (1U<<29)
32 #define EPOLLONESHOT (1U<<30)
33 #define EPOLLET (1U<<31)
34
35 #define EPOLL_CTL_ADD 1
36 #define EPOLL_CTL_DEL 2
37 #define EPOLL_CTL_MOD 3
38
39 typedef union epoll_data {
40         void *ptr;
41         int fd;
42         uint32_t u32;
43         uint64_t u64;
44 } epoll_data_t;
45
46 struct epoll_event {
47         uint32_t events;
48         epoll_data_t data;
49 }
50 #ifdef __x86_64__
51 __attribute__ ((__packed__))
52 #endif
53 ;
54
55
56 int epoll_create(int);
57 int epoll_create1(int);
58 int epoll_ctl(int, int, int, struct epoll_event *);
59 int epoll_wait(int, struct epoll_event *, int, int);
60 int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);
61
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67 #endif /* sys/epoll.h */