diff options
Diffstat (limited to 'tools/include/endian.h')
-rw-r--r-- | tools/include/endian.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/include/endian.h b/tools/include/endian.h new file mode 100644 index 000000000..0f17b41da --- /dev/null +++ b/tools/include/endian.h @@ -0,0 +1,35 @@ +#ifndef __endian_compat_h +#define __endian_compat_h + +#if defined(__linux__) || defined(__CYGWIN__) +#include <byteswap.h> +#include_next <endian.h> +#elif defined(__APPLE__) +#include <machine/endian.h> +#include <machine/byte_order.h> +#define bswap_16(x) NXSwapShort(x) +#define bswap_32(x) NXSwapInt(x) +#define bswap_64(x) NXSwapLongLong(x) +#elif defined(__FreeBSD__) +#include <sys/endian.h> +#define bswap_16(x) bswap16(x) +#define bswap_32(x) bswap32(x) +#define bswap_64(x) bswap64(x) +#else +#include <machine/endian.h> +#define bswap_16(x) swap16(x) +#define bswap_32(x) swap32(x) +#define bswap_64(x) swap64(x) +#endif + +#ifndef __BYTE_ORDER +#define __BYTE_ORDER BYTE_ORDER +#endif +#ifndef __BIG_ENDIAN +#define __BIG_ENDIAN BIG_ENDIAN +#endif +#ifndef __LITTLE_ENDIAN +#define __LITTLE_ENDIAN LITTLE_ENDIAN +#endif + +#endif |