#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"
#include <unistd.h>
#include <signal.h>
#include <mach/mach_init.h>
+#include <machine/endian.h>
+#include <libkern/OSByteOrder.h>
#include "../file.h"
#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
#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) ({ \