1 #pragma once
2 
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 #include <features.h>
8 
9 #include <bits/poll.h>
10 
11 #define POLLIN 0x001
12 #define POLLPRI 0x002
13 #define POLLOUT 0x004
14 #define POLLERR 0x008
15 #define POLLHUP 0x010
16 #define POLLNVAL 0x020
17 #define POLLRDNORM 0x040
18 #define POLLRDBAND 0x080
19 #ifndef POLLWRNORM
20 #define POLLWRNORM 0x100
21 #define POLLWRBAND 0x200
22 #endif
23 #ifndef POLLMSG
24 #define POLLMSG 0x400
25 #define POLLRDHUP 0x2000
26 #endif
27 
28 typedef unsigned long nfds_t;
29 
30 struct pollfd {
31     int fd;
32     short events;
33     short revents;
34 };
35 
36 int poll(struct pollfd*, nfds_t, int);
37 
38 #ifdef _GNU_SOURCE
39 #define __NEED_time_t
40 #define __NEED_struct_timespec
41 #define __NEED_sigset_t
42 #include <bits/alltypes.h>
43 int ppoll(struct pollfd*, nfds_t, const struct timespec*, const sigset_t*);
44 #endif
45 
46 #ifdef __cplusplus
47 }
48 #endif
49