mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-09 16:23:23 +03:00
761ebe065c
the old definitions were wrong on some archs. actually, EPOLL_NONBLOCK probably should not even be defined; it is not accepted by the kernel and it's not clear to me whether it has any use at all, even if it did work. this issue should be revisited at some point, but I'm leaving it in place for now in case some applications reference it.
63 lines
1.1 KiB
C
63 lines
1.1 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 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;
|
|
} __attribute__ ((__packed__));
|
|
|
|
|
|
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 */
|