| @@ -13,17 +13,12 @@ | |||
| #define PORTABLE_ENDIAN_H__ | |||
| #if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) | |||
| # define __WINDOWS__ | |||
| #endif | |||
| #if defined(__linux__) || defined(__CYGWIN__) | |||
| # include <endian.h> | |||
| #elif defined(__APPLE__) | |||
| # include <libkern/OSByteOrder.h> | |||
| # define htobe16(x) OSSwapHostToBigInt16(x) | |||
| @@ -45,13 +40,9 @@ | |||
| # define __BIG_ENDIAN BIG_ENDIAN | |||
| # define __LITTLE_ENDIAN LITTLE_ENDIAN | |||
| # define __PDP_ENDIAN PDP_ENDIAN | |||
| #elif defined(__OpenBSD__) | |||
| # include <sys/endian.h> | |||
| #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) | |||
| # include <sys/endian.h> | |||
| # define be16toh(x) betoh16(x) | |||
| @@ -62,14 +53,11 @@ | |||
| # define be64toh(x) betoh64(x) | |||
| # define le64toh(x) letoh64(x) | |||
| #elif defined(__WINDOWS__) | |||
| # include <winsock2.h> | |||
| # include <sys/param.h> | |||
| # if BYTE_ORDER == LITTLE_ENDIAN | |||
| # define htobe16(x) htons(x) | |||
| # define htole16(x) (x) | |||
| # define be16toh(x) ntohs(x) | |||
| @@ -84,9 +72,7 @@ | |||
| # define htole64(x) (x) | |||
| # define be64toh(x) ntohll(x) | |||
| # define le64toh(x) (x) | |||
| # elif BYTE_ORDER == BIG_ENDIAN | |||
| /* that would be xbox 360 */ | |||
| # define htobe16(x) (x) | |||
| # define htole16(x) __builtin_bswap16(x) | |||
| @@ -102,22 +88,15 @@ | |||
| # define htole64(x) __builtin_bswap64(x) | |||
| # define be64toh(x) (x) | |||
| # define le64toh(x) __builtin_bswap64(x) | |||
| # else | |||
| # error byte order not supported | |||
| # endif | |||
| # define __BYTE_ORDER BYTE_ORDER | |||
| # define __BIG_ENDIAN BIG_ENDIAN | |||
| # define __LITTLE_ENDIAN LITTLE_ENDIAN | |||
| # define __PDP_ENDIAN PDP_ENDIAN | |||
| #else | |||
| # error platform not supported | |||
| #endif | |||
| #endif | |||