From ff2451922f21826c2047208c2c3963843b1ffdcc Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 4 Oct 2011 14:30:33 +0200 Subject: [PATCH] Wider endianness support Signed-off-by: Jens Axboe --- os/os-linux.h | 4 ++++ os/os-mac.h | 14 ++++++++++++++ server.h | 12 ++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) 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) ({ \ -- 2.25.1