1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_LINUX_SWAB_H 8 #define _UAPI_LINUX_SWAB_H 9 #include <linux/types.h> 10 #include <linux/stddef.h> 11 #include <asm/bitsperlong.h> 12 #include <asm/swab.h> 13 #define ___constant_swab16(x) ((__u16) ((((__u16) (x) & (__u16) 0x00ffU) << 8) | (((__u16) (x) & (__u16) 0xff00U) >> 8))) 14 #define ___constant_swab32(x) ((__u32) ((((__u32) (x) & (__u32) 0x000000ffUL) << 24) | (((__u32) (x) & (__u32) 0x0000ff00UL) << 8) | (((__u32) (x) & (__u32) 0x00ff0000UL) >> 8) | (((__u32) (x) & (__u32) 0xff000000UL) >> 24))) 15 #define ___constant_swab64(x) ((__u64) ((((__u64) (x) & (__u64) 0x00000000000000ffULL) << 56) | (((__u64) (x) & (__u64) 0x000000000000ff00ULL) << 40) | (((__u64) (x) & (__u64) 0x0000000000ff0000ULL) << 24) | (((__u64) (x) & (__u64) 0x00000000ff000000ULL) << 8) | (((__u64) (x) & (__u64) 0x000000ff00000000ULL) >> 8) | (((__u64) (x) & (__u64) 0x0000ff0000000000ULL) >> 24) | (((__u64) (x) & (__u64) 0x00ff000000000000ULL) >> 40) | (((__u64) (x) & (__u64) 0xff00000000000000ULL) >> 56))) 16 #define ___constant_swahw32(x) ((__u32) ((((__u32) (x) & (__u32) 0x0000ffffUL) << 16) | (((__u32) (x) & (__u32) 0xffff0000UL) >> 16))) 17 #define ___constant_swahb32(x) ((__u32) ((((__u32) (x) & (__u32) 0x00ff00ffUL) << 8) | (((__u32) (x) & (__u32) 0xff00ff00UL) >> 8))) 18 #ifdef __SWAB_64_THRU_32__ 19 #else 20 #endif __fswahw32(__u32 val)21static inline __attribute__((__const__)) __u32 __fswahw32(__u32 val) { 22 return ___constant_swahw32(val); 23 } __fswahb32(__u32 val)24static inline __attribute__((__const__)) __u32 __fswahb32(__u32 val) { 25 return ___constant_swahb32(val); 26 } 27 #define __swab16(x) (__u16) __builtin_bswap16((__u16) (x)) 28 #define __swab32(x) (__u32) __builtin_bswap32((__u32) (x)) 29 #define __swab64(x) (__u64) __builtin_bswap64((__u64) (x)) 30 #if __BITS_PER_LONG == 64 31 #else 32 #endif 33 #define __swahw32(x) (__builtin_constant_p((__u32) (x)) ? ___constant_swahw32(x) : __fswahw32(x)) 34 #define __swahb32(x) (__builtin_constant_p((__u32) (x)) ? ___constant_swahb32(x) : __fswahb32(x)) __swab16p(const __u16 * p)35static __always_inline __u16 __swab16p(const __u16 * p) { 36 return __swab16(* p); 37 } __swab32p(const __u32 * p)38static __always_inline __u32 __swab32p(const __u32 * p) { 39 return __swab32(* p); 40 } __swab64p(const __u64 * p)41static __always_inline __u64 __swab64p(const __u64 * p) { 42 return __swab64(* p); 43 } __swahw32p(const __u32 * p)44static inline __u32 __swahw32p(const __u32 * p) { 45 return __swahw32(* p); 46 } __swahb32p(const __u32 * p)47static inline __u32 __swahb32p(const __u32 * p) { 48 return __swahb32(* p); 49 } __swab16s(__u16 * p)50static inline void __swab16s(__u16 * p) { 51 * p = __swab16p(p); 52 } __swab32s(__u32 * p)53static __always_inline void __swab32s(__u32 * p) { 54 * p = __swab32p(p); 55 } __swab64s(__u64 * p)56static __always_inline void __swab64s(__u64 * p) { 57 * p = __swab64p(p); 58 } __swahw32s(__u32 * p)59static inline void __swahw32s(__u32 * p) { 60 * p = __swahw32p(p); 61 } __swahb32s(__u32 * p)62static inline void __swahb32s(__u32 * p) { 63 * p = __swahb32p(p); 64 } 65 #endif 66