X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fstdendian.h;h=9ab0fb5944dcec8769abcde388d9edf1433d4786;hb=e88eef3544bd1cd44463dafda9ac72cc329d508c;hp=4d32b156c3c7789cae2ad133d0cab6d78cf17cbb;hpb=969d1078bb7db51a81738711ff9623faa3cd6292;p=collectd.git diff --git a/src/stdendian.h b/src/stdendian.h index 4d32b156..9ab0fb59 100644 --- a/src/stdendian.h +++ b/src/stdendian.h @@ -109,6 +109,23 @@ #define __ENDIAN_DEFINED 1 #endif /* sun */ +/* AIX */ +#if defined(_AIX) +#include +#if BYTE_ORDER == LITTLE_ENDIAN +#define _LITTLE_ENDIAN 1234 +#define _BIG_ENDIAN 4321 +#define _BYTE_ORDER _LITTLE_ENDIAN +#elif BYTE_ORDER == BIG_ENDIAN +#define _LITTLE_ENDIAN 1234 +#define _BIG_ENDIAN 4321 +#define _BYTE_ORDER _BIG_ENDIAN +#else +#error Could not determine CPU byte order for AIX +#endif +#define __ENDIAN_DEFINED 1 +#endif /* AIX */ + /* Windows */ #if defined(_WIN32) || defined(_MSC_VER) /* assumes all Microsoft targets are little endian */ @@ -173,7 +190,7 @@ /* handle missing __builtin_bswap16 * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624 */ #if defined __GNUC__ -/* define bswap16(x) __builtin_bswap16(x) */ +#define bswap16(x) __builtin_bswap16(x) #else #define bswap16(x) \ ((uint16_t)((((uint16_t)(x)&0xff00) >> 8) | (((uint16_t)(x)&0x00ff) << 8))) @@ -211,7 +228,7 @@ /* Host swap macros */ #ifndef __HOSTSWAP_DEFINED -#if __BYTE_ORDER == __LITTLE_ENDIAN +#if _BYTE_ORDER == _LITTLE_ENDIAN #define htobe16(x) bswap16((x)) #define htole16(x) ((uint16_t)(x)) #define be16toh(x) bswap16((x)) @@ -226,7 +243,7 @@ #define htole64(x) ((uint64_t)(x)) #define be64toh(x) bswap64((x)) #define le64toh(x) ((uint64_t)(x)) -#elif __BYTE_ORDER == __BIG_ENDIAN +#elif _BYTE_ORDER == _BIG_ENDIAN #define htobe16(x) ((uint16_t)(x)) #define htole16(x) bswap16((x)) #define be16toh(x) ((uint16_t)(x))