X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fstdendian.h;h=9ab0fb5944dcec8769abcde388d9edf1433d4786;hb=0d86e9eb15e495c3a3ca806844f8264235ecf3ff;hp=4d32b156c3c7789cae2ad133d0cab6d78cf17cbb;hpb=b5ec07e24045a872bbe935aae16c45c99316c051;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))