OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / prebuilt / ndk / android-ndk-r4 / platforms / android-3 / arch-arm / usr / include / linux / byteorder / swabb.h
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef _LINUX_BYTEORDER_SWABB_H
13 #define _LINUX_BYTEORDER_SWABB_H
14
15 #define ___swahw32(x)  ({   __u32 __x = (x);   ((__u32)(   (((__u32)(__x) & (__u32)0x0000ffffUL) << 16) |   (((__u32)(__x) & (__u32)0xffff0000UL) >> 16) ));  })
16 #define ___swahb32(x)  ({   __u32 __x = (x);   ((__u32)(   (((__u32)(__x) & (__u32)0x00ff00ffUL) << 8) |   (((__u32)(__x) & (__u32)0xff00ff00UL) >> 8) ));  })
17
18 #define ___constant_swahw32(x)   ((__u32)(   (((__u32)(x) & (__u32)0x0000ffffUL) << 16) |   (((__u32)(x) & (__u32)0xffff0000UL) >> 16) ))
19 #define ___constant_swahb32(x)   ((__u32)(   (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) |   (((__u32)(x) & (__u32)0xff00ff00UL) >> 8) ))
20
21 #ifndef __arch__swahw32
22 #define __arch__swahw32(x) ___swahw32(x)
23 #endif
24 #ifndef __arch__swahb32
25 #define __arch__swahb32(x) ___swahb32(x)
26 #endif
27
28 #ifndef __arch__swahw32p
29 #define __arch__swahw32p(x) __swahw32(*(x))
30 #endif
31 #ifndef __arch__swahb32p
32 #define __arch__swahb32p(x) __swahb32(*(x))
33 #endif
34
35 #ifndef __arch__swahw32s
36 #define __arch__swahw32s(x) do { *(x) = __swahw32p((x)); } while (0)
37 #endif
38 #ifndef __arch__swahb32s
39 #define __arch__swahb32s(x) do { *(x) = __swahb32p((x)); } while (0)
40 #endif
41
42 #if defined(__GNUC__) && defined(__OPTIMIZE__)
43 #define __swahw32(x)  (__builtin_constant_p((__u32)(x)) ?   ___swahw32((x)) :   __fswahw32((x)))
44 #define __swahb32(x)  (__builtin_constant_p((__u32)(x)) ?   ___swahb32((x)) :   __fswahb32((x)))
45 #else
46 #define __swahw32(x) __fswahw32(x)
47 #define __swahb32(x) __fswahb32(x)
48 #endif
49
50 #ifdef __BYTEORDER_HAS_U64__
51 #endif
52 #endif