Merge tag 'for-linus-4.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / include / uapi / asm-generic / poll.h
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 */