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 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 EPOLLEXCLUSIVE (1U<<28) 32#define EPOLLWAKEUP (1U<<29) 33#define EPOLLONESHOT (1U<<30) 34#define EPOLLET (1U<<31) 35 36#define EPOLL_CTL_ADD 1 37#define EPOLL_CTL_DEL 2 38#define EPOLL_CTL_MOD 3 39 40typedef union epoll_data { 41 void *ptr; 42 int fd; 43 uint32_t u32; 44 uint64_t u64; 45} epoll_data_t; 46 47struct epoll_event { 48 uint32_t events; 49 epoll_data_t data; 50} 51#ifdef __x86_64__ 52__attribute__ ((__packed__)) 53#endif 54; 55 56 57int epoll_create(int); 58int epoll_create1(int); 59int epoll_ctl(int, int, int, struct epoll_event *); 60int epoll_wait(int, struct epoll_event *, int, int); 61int epoll_pwait(int, struct epoll_event *, int, int, const sigset_t *); 62 63 64#ifdef __cplusplus 65} 66#endif 67 68#endif /* sys/epoll.h */ 69