From: Neil Brown Date: Fri, 2 Jun 2006 01:49:00 +0000 (+0000) Subject: Finally (I hope) get byteorder stuff portable. X-Git-Tag: mdadm-2.5.1~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efd441d17b5a6cfab37b60154492aa81c24b7db2;p=thirdparty%2Fmdadm.git 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 --- diff --git a/mdadm.h b/mdadm.h index 848c6f1a..b7ae9671 100644 --- a/mdadm.h +++ b/mdadm.h @@ -73,13 +73,24 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #include "bitmap.h" #include -/* #include "asm/byteorder.h" Redhat don't like this so... */ -#if __BYTE_ORDER == __LITTLE_ENDIAN -# include -#elif __BYTE_ORDER == __BIG_ENDIAN -# include -#elif __BYTE_ORDER == __PDP_ENDIAN -# include +#include +/* Redhat don't like to #include , and + * some time include 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