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