xref: /linux/include/uapi/asm-generic/poll.h (revision 55f3538c4923e9dfca132e99ebec370e8094afda)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef __ASM_GENERIC_POLL_H
3 #define __ASM_GENERIC_POLL_H
4 
5 /* These are specified by iBCS2 */
6 #define POLLIN		(__force __poll_t)0x0001
7 #define POLLPRI		(__force __poll_t)0x0002
8 #define POLLOUT		(__force __poll_t)0x0004
9 #define POLLERR		(__force __poll_t)0x0008
10 #define POLLHUP		(__force __poll_t)0x0010
11 #define POLLNVAL	(__force __poll_t)0x0020
12 
13 /* The rest seem to be more-or-less nonstandard. Check them! */
14 #define POLLRDNORM	(__force __poll_t)0x0040
15 #define POLLRDBAND	(__force __poll_t)0x0080
16 #ifndef POLLWRNORM
17 #define POLLWRNORM	(__force __poll_t)0x0100
18 #endif
19 #ifndef POLLWRBAND
20 #define POLLWRBAND	(__force __poll_t)0x0200
21 #endif
22 #ifndef POLLMSG
23 #define POLLMSG		(__force __poll_t)0x0400
24 #endif
25 #ifndef POLLREMOVE
26 #define POLLREMOVE	(__force __poll_t)0x1000
27 #endif
28 #ifndef POLLRDHUP
29 #define POLLRDHUP       (__force __poll_t)0x2000
30 #endif
31 
32 #define POLLFREE	(__force __poll_t)0x4000	/* currently only for epoll */
33 
34 #define POLL_BUSY_LOOP	(__force __poll_t)0x8000
35 
36 #ifdef __KERNEL__
37 #ifndef __ARCH_HAS_MANGLED_POLL
38 static inline __u16 mangle_poll(__poll_t val)
39 {
40 	return (__force __u16)val;
41 }
42 
43 static inline __poll_t demangle_poll(__u16 v)
44 {
45 	return (__force __poll_t)v;
46 }
47 #endif
48 #endif
49 
50 struct pollfd {
51 	int fd;
52 	short events;
53 	short revents;
54 };
55 
56 #endif	/* __ASM_GENERIC_POLL_H */
57