mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-10 00:32:27 +03:00
b10ca0f560
new flag for exclusive wakeup mode when an event source fd is attached to multiple epoll fds but they should not all receive the events. new in linux commit df0108c5da561c66c333bb46bfe3c1fc65905898
69 lines
1.2 KiB
C
69 lines
1.2 KiB
C
#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 EPOLLEXCLUSIVE (1U<<28)
|
|
#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 */
|