1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef __SPARC_POLL_H 3 #define __SPARC_POLL_H 4 5 #ifndef __KERNEL__ 6 #define POLLWRNORM POLLOUT 7 #define POLLWRBAND (__force __poll_t)256 8 #define POLLMSG (__force __poll_t)512 9 #define POLLREMOVE (__force __poll_t)1024 10 #define POLLRDHUP (__force __poll_t)2048 11 #else 12 #define __ARCH_HAS_MANGLED_POLL 13 static inline __u16 mangle_poll(__poll_t val) 14 { 15 __u16 v = (__force __u16)val; 16 /* bit 9 -> bit 8, bit 8 -> bit 2, bit 13 -> bit 11 */ 17 return (v & ~0x300) | ((v & 0x200) >> 1) | ((v & 0x100) >> 6) | 18 ((v & 0x2000) >> 2); 19 20 21 } 22 23 static inline __poll_t demangle_poll(__u16 v) 24 { 25 /* bit 8 -> bit 9, bit 2 -> bits 2 and 8 */ 26 return (__force __poll_t)((v & ~0x100) | ((v & 0x100) << 1) | 27 ((v & 4) << 6) | ((v & 0x800) << 2)); 28 } 29 #endif 30 31 #include <asm-generic/poll.h> 32 33 #endif 34