xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/sys/epoll.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker #ifndef	_SYS_EPOLL_H
2*cda5da8dSAndroid Build Coastguard Worker #define	_SYS_EPOLL_H
3*cda5da8dSAndroid Build Coastguard Worker 
4*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
5*cda5da8dSAndroid Build Coastguard Worker extern "C" {
6*cda5da8dSAndroid Build Coastguard Worker #endif
7*cda5da8dSAndroid Build Coastguard Worker 
8*cda5da8dSAndroid Build Coastguard Worker #include <stdint.h>
9*cda5da8dSAndroid Build Coastguard Worker #include <sys/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <sys/ioctl.h>
11*cda5da8dSAndroid Build Coastguard Worker #include <fcntl.h>
12*cda5da8dSAndroid Build Coastguard Worker 
13*cda5da8dSAndroid Build Coastguard Worker #define __NEED_sigset_t
14*cda5da8dSAndroid Build Coastguard Worker 
15*cda5da8dSAndroid Build Coastguard Worker #include <bits/alltypes.h>
16*cda5da8dSAndroid Build Coastguard Worker 
17*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_CLOEXEC O_CLOEXEC
18*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_NONBLOCK O_NONBLOCK
19*cda5da8dSAndroid Build Coastguard Worker 
20*cda5da8dSAndroid Build Coastguard Worker enum EPOLL_EVENTS { __EPOLL_DUMMY };
21*cda5da8dSAndroid Build Coastguard Worker #define EPOLLIN 0x001
22*cda5da8dSAndroid Build Coastguard Worker #define EPOLLPRI 0x002
23*cda5da8dSAndroid Build Coastguard Worker #define EPOLLOUT 0x004
24*cda5da8dSAndroid Build Coastguard Worker #define EPOLLRDNORM 0x040
25*cda5da8dSAndroid Build Coastguard Worker #define EPOLLNVAL 0x020
26*cda5da8dSAndroid Build Coastguard Worker #define EPOLLRDBAND 0x080
27*cda5da8dSAndroid Build Coastguard Worker #define EPOLLWRNORM 0x100
28*cda5da8dSAndroid Build Coastguard Worker #define EPOLLWRBAND 0x200
29*cda5da8dSAndroid Build Coastguard Worker #define EPOLLMSG 0x400
30*cda5da8dSAndroid Build Coastguard Worker #define EPOLLERR 0x008
31*cda5da8dSAndroid Build Coastguard Worker #define EPOLLHUP 0x010
32*cda5da8dSAndroid Build Coastguard Worker #define EPOLLRDHUP 0x2000
33*cda5da8dSAndroid Build Coastguard Worker #define EPOLLEXCLUSIVE (1U<<28)
34*cda5da8dSAndroid Build Coastguard Worker #define EPOLLWAKEUP (1U<<29)
35*cda5da8dSAndroid Build Coastguard Worker #define EPOLLONESHOT (1U<<30)
36*cda5da8dSAndroid Build Coastguard Worker #define EPOLLET (1U<<31)
37*cda5da8dSAndroid Build Coastguard Worker 
38*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_CTL_ADD 1
39*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_CTL_DEL 2
40*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_CTL_MOD 3
41*cda5da8dSAndroid Build Coastguard Worker 
42*cda5da8dSAndroid Build Coastguard Worker typedef union epoll_data {
43*cda5da8dSAndroid Build Coastguard Worker 	void *ptr;
44*cda5da8dSAndroid Build Coastguard Worker 	int fd;
45*cda5da8dSAndroid Build Coastguard Worker 	uint32_t u32;
46*cda5da8dSAndroid Build Coastguard Worker 	uint64_t u64;
47*cda5da8dSAndroid Build Coastguard Worker } epoll_data_t;
48*cda5da8dSAndroid Build Coastguard Worker 
49*cda5da8dSAndroid Build Coastguard Worker struct epoll_event {
50*cda5da8dSAndroid Build Coastguard Worker 	uint32_t events;
51*cda5da8dSAndroid Build Coastguard Worker 	epoll_data_t data;
52*cda5da8dSAndroid Build Coastguard Worker }
53*cda5da8dSAndroid Build Coastguard Worker #ifdef __x86_64__
54*cda5da8dSAndroid Build Coastguard Worker __attribute__ ((__packed__))
55*cda5da8dSAndroid Build Coastguard Worker #endif
56*cda5da8dSAndroid Build Coastguard Worker ;
57*cda5da8dSAndroid Build Coastguard Worker 
58*cda5da8dSAndroid Build Coastguard Worker struct epoll_params {
59*cda5da8dSAndroid Build Coastguard Worker 	uint32_t busy_poll_usecs;
60*cda5da8dSAndroid Build Coastguard Worker 	uint16_t busy_poll_budget;
61*cda5da8dSAndroid Build Coastguard Worker 	uint8_t prefer_busy_poll;
62*cda5da8dSAndroid Build Coastguard Worker 
63*cda5da8dSAndroid Build Coastguard Worker 	uint8_t __pad;
64*cda5da8dSAndroid Build Coastguard Worker };
65*cda5da8dSAndroid Build Coastguard Worker 
66*cda5da8dSAndroid Build Coastguard Worker #define EPOLL_IOC_TYPE 0x8A
67*cda5da8dSAndroid Build Coastguard Worker #define EPIOCSPARAMS _IOW(EPOLL_IOC_TYPE, 0x01, struct epoll_params)
68*cda5da8dSAndroid Build Coastguard Worker #define EPIOCGPARAMS _IOR(EPOLL_IOC_TYPE, 0x02, struct epoll_params)
69*cda5da8dSAndroid Build Coastguard Worker 
70*cda5da8dSAndroid Build Coastguard Worker int epoll_create(int);
71*cda5da8dSAndroid Build Coastguard Worker int epoll_create1(int);
72*cda5da8dSAndroid Build Coastguard Worker int epoll_ctl(int, int, int, struct epoll_event *);
73*cda5da8dSAndroid Build Coastguard Worker int epoll_wait(int, struct epoll_event *, int, int);
74*cda5da8dSAndroid Build Coastguard Worker int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *);
75*cda5da8dSAndroid Build Coastguard Worker 
76*cda5da8dSAndroid Build Coastguard Worker 
77*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus
78*cda5da8dSAndroid Build Coastguard Worker }
79*cda5da8dSAndroid Build Coastguard Worker #endif
80*cda5da8dSAndroid Build Coastguard Worker 
81*cda5da8dSAndroid Build Coastguard Worker #endif /* sys/epoll.h */
82