2#ifndef _UAPI_LINUX_SWAB_H
3#define _UAPI_LINUX_SWAB_H
6#include <linux/stddef.h>
14#define ___constant_swab16(x) ((__u16)( \
15 (((__u16)(x) & (__u16)0x00ffU) << 8) | \
16 (((__u16)(x) & (__u16)0xff00U) >> 8)))
18#define ___constant_swab32(x) ((__u32)( \
19 (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
20 (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
21 (((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \
22 (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
24#define ___constant_swab64(x) ((__u64)( \
25 (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
26 (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
27 (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
28 (((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \
29 (((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | \
30 (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
31 (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
32 (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
34#define ___constant_swahw32(x) ((__u32)( \
35 (((__u32)(x) & (__u32)0x0000ffffUL) << 16) | \
36 (((__u32)(x) & (__u32)0xffff0000UL) >> 16)))
38#define ___constant_swahb32(x) ((__u32)( \
39 (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) | \
40 (((__u32)(x) & (__u32)0xff00ff00UL) >> 8)))
50#if defined (__arch_swab16)
51 return __arch_swab16(val);
59#if defined(__arch_swab32)
60 return __arch_swab32(val);
68#if defined (__arch_swab64)
69 return __arch_swab64(val);
70#elif defined(__SWAB_64_THRU_32__)
72 __u32 l = val & ((1ULL << 32) - 1);
73 return (((
__u64)__fswab32(l)) << 32) | ((
__u64)(__fswab32(
h)));
82 return __arch_swahw32(val);
91 return __arch_swahb32(val);
101#ifdef __HAVE_BUILTIN_BSWAP16__
102#define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
105 (__u16)(__builtin_constant_p(x) ? \
106 ___constant_swab16(x) : \
114#ifdef __HAVE_BUILTIN_BSWAP32__
115#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
118 (__u32)(__builtin_constant_p(x) ? \
119 ___constant_swab32(x) : \
127#ifdef __HAVE_BUILTIN_BSWAP64__
128#define __swab64(x) (__u64)__builtin_bswap64((__u64)(x))
131 (__u64)(__builtin_constant_p(x) ? \
132 ___constant_swab64(x) : \
138#if __BITS_PER_LONG == 64
151#define __swahw32(x) \
152 (__builtin_constant_p((__u32)(x)) ? \
153 ___constant_swahw32(x) : \
162#define __swahb32(x) \
163 (__builtin_constant_p((__u32)(x)) ? \
164 ___constant_swahb32(x) : \
174 return __arch_swab16p(p);
187 return __arch_swab32p(p);
200 return __arch_swab64p(p);
214#ifdef __arch_swahw32p
215 return __arch_swahw32p(p);
229#ifdef __arch_swahb32p
230 return __arch_swahb32p(p);
240static inline void __swab16s(
__u16 *p)
280static inline void __swahw32s(
__u32 *p)
282#ifdef __arch_swahw32s
295static inline void __swahb32s(
__u32 *p)
297#ifdef __arch_swahb32s
#define __always_inline
Definition compiler_attributes.h:55
#define __attribute_const__
Definition compiler_attributes.h:83
uint32_t __u32
Definition drm.h:42
uint16_t __u16
Definition drm.h:40
uint64_t __u64
Definition drm.h:44
int y
Definition layout.c:118
int h
Definition layout.c:118
#define ___constant_swahw32(x)
Definition swab.h:34
#define __swab32(x)
Definition swab.h:117
#define ___constant_swab64(x)
Definition swab.h:24
#define ___constant_swab16(x)
Definition swab.h:14
#define __swahb32(x)
Definition swab.h:162
#define __swab16(x)
Definition swab.h:104
#define __swahw32(x)
Definition swab.h:151
#define ___constant_swahb32(x)
Definition swab.h:38
#define __swab64(x)
Definition swab.h:130
#define ___constant_swab32(x)
Definition swab.h:18