#ifndef _SYS_EPOLL_H | |
#define _SYS_EPOLL_H | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#include <stdint.h> | |
#include <sys/types.h> | |
#include <fcntl.h> | |
#define __NEED_sigset_t | |
#include <bits/alltypes.h> | |
#define EPOLL_CLOEXEC O_CLOEXEC | |
#define EPOLL_NONBLOCK O_NONBLOCK | |
enum EPOLL_EVENTS { __EPOLL_DUMMY }; | |
#define EPOLLIN 0x001 | |
#define EPOLLPRI 0x002 | |
#define EPOLLOUT 0x004 | |
#define EPOLLRDNORM 0x040 | |
#define EPOLLRDBAND 0x080 | |
#define EPOLLWRNORM 0x100 | |
#define EPOLLWRBAND 0x200 | |
#define EPOLLMSG 0x400 | |
#define EPOLLERR 0x008 | |
#define EPOLLHUP 0x010 | |
#define EPOLLRDHUP 0x2000 | |
#define EPOLLWAKEUP (1U << 29) | |
#define EPOLLONESHOT (1U << 30) | |
#define EPOLLET (1U << 31) | |
#define EPOLL_CTL_ADD 1 | |
#define EPOLL_CTL_DEL 2 | |
#define EPOLL_CTL_MOD 3 | |
typedef union epoll_data { | |
void* ptr; | |
int fd; | |
uint32_t u32; | |
uint64_t u64; | |
} epoll_data_t; | |
struct epoll_event { | |
uint32_t events; | |
epoll_data_t data; | |
} | |
#ifdef __x86_64__ | |
__attribute__((__packed__)) | |
#endif | |
; | |
int epoll_create(int); | |
int epoll_create1(int); | |
int epoll_ctl(int, int, int, struct epoll_event*); | |
int epoll_wait(int, struct epoll_event*, int, int); | |
int epoll_pwait(int, struct epoll_event*, int, int, const sigset_t*); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif /* sys/epoll.h */ |