diff options
Diffstat (limited to 'include/linux/byteorder/little_endian.h')
-rw-r--r-- | include/linux/byteorder/little_endian.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/include/linux/byteorder/little_endian.h b/include/linux/byteorder/little_endian.h new file mode 100644 index 000000000000..86e62b750176 --- /dev/null +++ b/include/linux/byteorder/little_endian.h | |||
@@ -0,0 +1,106 @@ | |||
1 | #ifndef _LINUX_BYTEORDER_LITTLE_ENDIAN_H | ||
2 | #define _LINUX_BYTEORDER_LITTLE_ENDIAN_H | ||
3 | |||
4 | #ifndef __LITTLE_ENDIAN | ||
5 | #define __LITTLE_ENDIAN 1234 | ||
6 | #endif | ||
7 | #ifndef __LITTLE_ENDIAN_BITFIELD | ||
8 | #define __LITTLE_ENDIAN_BITFIELD | ||
9 | #endif | ||
10 | |||
11 | #include <linux/types.h> | ||
12 | #include <linux/byteorder/swab.h> | ||
13 | |||
14 | #define __constant_htonl(x) ((__force __be32)___constant_swab32((x))) | ||
15 | #define __constant_ntohl(x) ___constant_swab32((__force __be32)(x)) | ||
16 | #define __constant_htons(x) ((__force __be16)___constant_swab16((x))) | ||
17 | #define __constant_ntohs(x) ___constant_swab16((__force __be16)(x)) | ||
18 | #define __constant_cpu_to_le64(x) ((__force __le64)(__u64)(x)) | ||
19 | #define __constant_le64_to_cpu(x) ((__force __u64)(__le64)(x)) | ||
20 | #define __constant_cpu_to_le32(x) ((__force __le32)(__u32)(x)) | ||
21 | #define __constant_le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ||
22 | #define __constant_cpu_to_le16(x) ((__force __le16)(__u16)(x)) | ||
23 | #define __constant_le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ||
24 | #define __constant_cpu_to_be64(x) ((__force __be64)___constant_swab64((x))) | ||
25 | #define __constant_be64_to_cpu(x) ___constant_swab64((__force __u64)(__be64)(x)) | ||
26 | #define __constant_cpu_to_be32(x) ((__force __be32)___constant_swab32((x))) | ||
27 | #define __constant_be32_to_cpu(x) ___constant_swab32((__force __u32)(__be32)(x)) | ||
28 | #define __constant_cpu_to_be16(x) ((__force __be16)___constant_swab16((x))) | ||
29 | #define __constant_be16_to_cpu(x) ___constant_swab16((__force __u16)(__be16)(x)) | ||
30 | #define __cpu_to_le64(x) ((__force __le64)(__u64)(x)) | ||
31 | #define __le64_to_cpu(x) ((__force __u64)(__le64)(x)) | ||
32 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x)) | ||
33 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ||
34 | #define __cpu_to_le16(x) ((__force __le16)(__u16)(x)) | ||
35 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ||
36 | #define __cpu_to_be64(x) ((__force __be64)__swab64((x))) | ||
37 | #define __be64_to_cpu(x) __swab64((__force __u64)(__be64)(x)) | ||
38 | #define __cpu_to_be32(x) ((__force __be32)__swab32((x))) | ||
39 | #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x)) | ||
40 | #define __cpu_to_be16(x) ((__force __be16)__swab16((x))) | ||
41 | #define __be16_to_cpu(x) __swab16((__force __u16)(__be16)(x)) | ||
42 | |||
43 | static inline __le64 __cpu_to_le64p(const __u64 *p) | ||
44 | { | ||
45 | return (__force __le64)*p; | ||
46 | } | ||
47 | static inline __u64 __le64_to_cpup(const __le64 *p) | ||
48 | { | ||
49 | return (__force __u64)*p; | ||
50 | } | ||
51 | static inline __le32 __cpu_to_le32p(const __u32 *p) | ||
52 | { | ||
53 | return (__force __le32)*p; | ||
54 | } | ||
55 | static inline __u32 __le32_to_cpup(const __le32 *p) | ||
56 | { | ||
57 | return (__force __u32)*p; | ||
58 | } | ||
59 | static inline __le16 __cpu_to_le16p(const __u16 *p) | ||
60 | { | ||
61 | return (__force __le16)*p; | ||
62 | } | ||
63 | static inline __u16 __le16_to_cpup(const __le16 *p) | ||
64 | { | ||
65 | return (__force __u16)*p; | ||
66 | } | ||
67 | static inline __be64 __cpu_to_be64p(const __u64 *p) | ||
68 | { | ||
69 | return (__force __be64)__swab64p(p); | ||
70 | } | ||
71 | static inline __u64 __be64_to_cpup(const __be64 *p) | ||
72 | { | ||
73 | return __swab64p((__u64 *)p); | ||
74 | } | ||
75 | static inline __be32 __cpu_to_be32p(const __u32 *p) | ||
76 | { | ||
77 | return (__force __be32)__swab32p(p); | ||
78 | } | ||
79 | static inline __u32 __be32_to_cpup(const __be32 *p) | ||
80 | { | ||
81 | return __swab32p((__u32 *)p); | ||
82 | } | ||
83 | static inline __be16 __cpu_to_be16p(const __u16 *p) | ||
84 | { | ||
85 | return (__force __be16)__swab16p(p); | ||
86 | } | ||
87 | static inline __u16 __be16_to_cpup(const __be16 *p) | ||
88 | { | ||
89 | return __swab16p((__u16 *)p); | ||
90 | } | ||
91 | #define __cpu_to_le64s(x) do {} while (0) | ||
92 | #define __le64_to_cpus(x) do {} while (0) | ||
93 | #define __cpu_to_le32s(x) do {} while (0) | ||
94 | #define __le32_to_cpus(x) do {} while (0) | ||
95 | #define __cpu_to_le16s(x) do {} while (0) | ||
96 | #define __le16_to_cpus(x) do {} while (0) | ||
97 | #define __cpu_to_be64s(x) __swab64s((x)) | ||
98 | #define __be64_to_cpus(x) __swab64s((x)) | ||
99 | #define __cpu_to_be32s(x) __swab32s((x)) | ||
100 | #define __be32_to_cpus(x) __swab32s((x)) | ||
101 | #define __cpu_to_be16s(x) __swab16s((x)) | ||
102 | #define __be16_to_cpus(x) __swab16s((x)) | ||
103 | |||
104 | #include <linux/byteorder/generic.h> | ||
105 | |||
106 | #endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */ | ||