X-Git-Url: http://git.annexia.org/?p=portablexdr.git;a=blobdiff_plain;f=byteswap.h;h=991e85b084b3d0d445d7e60cbad6b8e700bebdd7;hp=3509acf4638bb4e6f1a85aefb170338406c0abef;hb=6b839b35324dc93ee2e032c2beaa16dbf1e629b5;hpb=f0ecda34fc6ad92793cf9d1e7fa3c5aa9165f9d0 diff --git a/byteswap.h b/byteswap.h index 3509acf..991e85b 100644 --- a/byteswap.h +++ b/byteswap.h @@ -20,6 +20,10 @@ #ifndef _PORTABLEXDR_BYTESWAP_H #define _PORTABLEXDR_BYTESWAP_H 1 +#ifdef HAVE_SYS_PARAM_H +#include +#endif + /* Swap bytes in 16 bit value. */ #define __bswap_constant_16(x) \ ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) @@ -107,6 +111,7 @@ static inline uint32_t htonl (x) uint32_t x; { +#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN) #if BYTE_ORDER == BIG_ENDIAN return x; #elif BYTE_ORDER == LITTLE_ENDIAN @@ -114,6 +119,9 @@ htonl (x) #else # error "What kind of system is this?" #endif +#else +#error "BYTE_ORDER/BIG_ENDIAN/LITTLE_ENDIAN are not defined" +#endif } #define ntohl htonl @@ -147,6 +155,7 @@ static inline uint16_t htons (x) uint16_t x; { +#if defined(BYTE_ORDER) && defined(BIG_ENDIAN) && defined(LITTLE_ENDIAN) #if BYTE_ORDER == BIG_ENDIAN return x; #elif BYTE_ORDER == LITTLE_ENDIAN @@ -154,6 +163,9 @@ htons (x) #else # error "What kind of system is this?" #endif +#else +#error "BYTE_ORDER/BIG_ENDIAN/LITTLE_ENDIAN are not defined" +#endif } #define ntohs htons