1 #ifndef __XEN_BYTEORDER_GENERIC_H__ 2 #define __XEN_BYTEORDER_GENERIC_H__ 3 4 /* 5 * Generic Byte-reordering support 6 * 7 * The "... p" macros, like le64_to_cpup, can be used with pointers 8 * to unaligned data, but there will be a performance penalty on 9 * some architectures. Use get_unaligned for unaligned data. 10 * 11 * The following macros are to be defined by <asm/byteorder.h>: 12 * 13 * Conversion of XX-bit integers (16- 32- or 64-) 14 * between native CPU format and little/big endian format 15 * 64-bit stuff only defined for proper architectures 16 * cpu_to_[bl]eXX(__uXX x) 17 * [bl]eXX_to_cpu(__uXX x) 18 * 19 * The same, but takes a pointer to the value to convert 20 * cpu_to_[bl]eXXp(__uXX x) 21 * [bl]eXX_to_cpup(__uXX x) 22 * 23 * The same, but change in situ 24 * cpu_to_[bl]eXXs(__uXX x) 25 * [bl]eXX_to_cpus(__uXX x) 26 * 27 * See asm-foo/byteorder.h for examples of how to provide 28 * architecture-optimized versions 29 */ 30 31 #define cpu_to_le64 __cpu_to_le64 32 #define le64_to_cpu __le64_to_cpu 33 #define cpu_to_le32 __cpu_to_le32 34 #define le32_to_cpu __le32_to_cpu 35 #define cpu_to_le16 __cpu_to_le16 36 #define le16_to_cpu __le16_to_cpu 37 #define cpu_to_be64 __cpu_to_be64 38 #define be64_to_cpu __be64_to_cpu 39 #define cpu_to_be32 __cpu_to_be32 40 #define be32_to_cpu __be32_to_cpu 41 #define cpu_to_be16 __cpu_to_be16 42 #define be16_to_cpu __be16_to_cpu 43 #define cpu_to_le64p __cpu_to_le64p 44 #define le64_to_cpup __le64_to_cpup 45 #define cpu_to_le32p __cpu_to_le32p 46 #define le32_to_cpup __le32_to_cpup 47 #define cpu_to_le16p __cpu_to_le16p 48 #define le16_to_cpup __le16_to_cpup 49 #define cpu_to_be64p __cpu_to_be64p 50 #define be64_to_cpup __be64_to_cpup 51 #define cpu_to_be32p __cpu_to_be32p 52 #define be32_to_cpup __be32_to_cpup 53 #define cpu_to_be16p __cpu_to_be16p 54 #define be16_to_cpup __be16_to_cpup 55 #define cpu_to_le64s __cpu_to_le64s 56 #define le64_to_cpus __le64_to_cpus 57 #define cpu_to_le32s __cpu_to_le32s 58 #define le32_to_cpus __le32_to_cpus 59 #define cpu_to_le16s __cpu_to_le16s 60 #define le16_to_cpus __le16_to_cpus 61 #define cpu_to_be64s __cpu_to_be64s 62 #define be64_to_cpus __be64_to_cpus 63 #define cpu_to_be32s __cpu_to_be32s 64 #define be32_to_cpus __be32_to_cpus 65 #define cpu_to_be16s __cpu_to_be16s 66 #define be16_to_cpus __be16_to_cpus 67 68 #endif /* __XEN_BYTEORDER_GENERIC_H__ */ 69