diff options
Diffstat (limited to 'tools/include/endian.h')
-rw-r--r-- | tools/include/endian.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/include/endian.h b/tools/include/endian.h new file mode 100644 index 0000000..9bfc652 --- /dev/null +++ b/tools/include/endian.h @@ -0,0 +1,34 @@ +#ifndef __endian_compat_h +#define __endian_compat_h + +#if defined(__linux__) +#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 |