From: Jens Axboe Date: Tue, 4 Oct 2011 12:30:33 +0000 (+0200) Subject: Wider endianness support X-Git-Tag: fio-1.99~24 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=ff2451922f21826c2047208c2c3963843b1ffdcc;ds=sidebyside Wider endianness support Signed-off-by: Jens Axboe --- diff --git a/os/os-linux.h b/os/os-linux.h index 8d3b97ea..2599091b 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -295,6 +295,10 @@ static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev) #error "Unknown endianness" #endif +#define fio_swap16(x) __bswap_16(x) +#define fio_swap32(x) __bswap_32(x) +#define fio_swap64(x) __bswap_64(x) + #define CACHE_LINE_FILE \ "/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size" diff --git a/os/os-mac.h b/os/os-mac.h index eb55cd77..24e0eb5d 100644 --- a/os/os-mac.h +++ b/os/os-mac.h @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include "../file.h" @@ -28,6 +30,18 @@ #define OS_MAP_ANON MAP_ANON +#if defined(__LITTLE_ENDIAN__) +#define FIO_LITTLE_ENDIAN +#elif defined(__BIG_ENDIAN__) +#define FIO_BIG_ENDIAN +#else +#error "Undefined byte order" +#endif + +#define fio_swap16(x) OSSwapInt16(x) +#define fio_swap32(x) OSSwapInt32(x) +#define fio_swap64(x) OSSwapInt64(x) + /* * OSX has a pitifully small shared memory segment by default, * so default to a lower number of max jobs supported diff --git a/server.h b/server.h index 3bb96a27..e129ffda 100644 --- a/server.h +++ b/server.h @@ -104,12 +104,12 @@ extern int fio_net_port; #define __cpu_to_le32(x) (x) #define __cpu_to_le64(x) (x) #else -#define __le16_to_cpu(x) __bswap_16(x) -#define __le32_to_cpu(x) __bswap_32(x) -#define __le64_to_cpu(x) __bswap_64(x) -#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) fio_swap16(x) +#define __le32_to_cpu(x) fio_swap_2(x) +#define __le64_to_cpu(x) fio_swap64(x) +#define __cpu_to_le16(x) fio_swap16(x) +#define __cpu_to_le32(x) fio_swap32(x) +#define __cpu_to_le64(x) fio_swap64(x) #endif #define le16_to_cpu(val) ({ \