diff options
author | Neil Brown <neilb@suse.de> | 2006-06-02 03:49:00 +0200 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-06-02 03:49:00 +0200 |
commit | efd441d17b5a6cfab37b60154492aa81c24b7db2 (patch) | |
tree | 351f62db2f432469578abcbcd8ecb36d00378120 | |
parent | Fix typo in mail message from --monitor (diff) | |
download | mdadm-efd441d17b5a6cfab37b60154492aa81c24b7db2.tar.xz mdadm-efd441d17b5a6cfab37b60154492aa81c24b7db2.zip |
Finally (I hope) get byteorder stuff portable.
/usr/include/endian.h and /usr/include/byteswap.h together
can give us almost what we need...
Signed-off-by: Neil Brown <neilb@suse.de>
-rw-r--r-- | mdadm.h | 25 |
1 files changed, 18 insertions, 7 deletions
@@ -73,13 +73,24 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #include "bitmap.h" #include <endian.h> -/* #include "asm/byteorder.h" Redhat don't like this so... */ -#if __BYTE_ORDER == __LITTLE_ENDIAN -# include <linux/byteorder/little_endian.h> -#elif __BYTE_ORDER == __BIG_ENDIAN -# include <linux/byteorder/big_endian.h> -#elif __BYTE_ORDER == __PDP_ENDIAN -# include <linux/byteorder/pdp_endian.h> +#include <byteswap.h> +/* Redhat don't like to #include <asm/byteorder.h>, and + * some time include <linux/byteorder/xxx_endian.h> isn't enough, + * and there is no standard conversion function so... */ +#if BYTE_ORDER == LITTLE_ENDIAN +#define __cpu_to_le16(_x) (_x) +#define __cpu_to_le32(_x) (_x) +#define __cpu_to_le64(_x) (_x) +#define __le16_to_cpu(_x) (_x) +#define __le32_to_cpu(_x) (_x) +#define __le64_to_cpu(_x) (_x) +#elif BYTE_ORDER == BIG_ENDIAN +#define __cpu_to_le16(_x) bswap_16(_x) +#define __cpu_to_le32(_x) bswap_32(_x) +#define __cpu_to_le64(_x) bswap_64(_x) +#define __le16_to_cpu(_x) bswap_16(_x) +#define __le32_to_cpu(_x) bswap_32(_x) +#define __le64_to_cpu(_x) bswap_64(_x) #else # error "unknown endianness." #endif |