diff --git a/src/base/endianfns.h b/src/base/endianfns.h index 2db9731e..1859f2ae 100644 --- src/base/endianfns.h +++ src/base/endianfns.h @@ -38,6 +38,29 @@ # define GWEN_ENDIAN_LE64TOH(x) (x) # define GWEN_ENDIAN_HTOLE64(x) (x) + +#elif defined(__APPLE__) +/* inspired by https://stackoverflow.com/questions/20813028/endian-h-not-found-on-mac-osx */ +#include + +#define GWEN_ENDIAN_HTOLE16(x) OSSwapHostToLittleInt16(x) +#define GWEN_ENDIAN_LE16TOH(x) OSSwapLittleToHostInt16(x) + +#define GWEN_ENDIAN_HTOLE32(x) OSSwapHostToLittleInt32(x) +#define GWEN_ENDIAN_LE32TOH(x) OSSwapLittleToHostInt32(x) + +#define GWEN_ENDIAN_HTOLE64(x) OSSwapHostToLittleInt64(x) +#define GWEN_ENDIAN_LE64TOH(x) OSSwapLittleToHostInt64(x) + +#define GWEN_ENDIAN_HTOBE16(x) OSSwapHostToBigInt16(x) +#define GWEN_ENDIAN_BE16TOH(x) OSSwapBigToHostInt16(x) + +#define GWEN_ENDIAN_HTOBE32(x) OSSwapHostToBigInt32(x) +#define GWEN_ENDIAN_BE32TOH(x) OSSwapBigToHostInt32(x) + +#define GWEN_ENDIAN_HTOBE64(x) OSSwapHostToBigInt64(x) +#define GWEN_ENDIAN_BE64TOH(x) OSSwapBigToHostInt64(x) + #else /* for Linux and others use definitions from endian.h */ # include