In case we ever support little-endian PowerPC (probably userland only),

avoid hardcoding endianness here.
This commit is contained in:
Nathan Whitehorn 2014-07-06 16:20:37 +00:00
parent 770047f5bb
commit 0558e4bb2b

View File

@ -39,8 +39,13 @@
/*
* Define the order of 32-bit words in 64-bit words.
*/
#ifdef __LITTLE_ENDIAN__
#define _QUAD_HIGHWORD 1
#define _QUAD_LOWWORD 0
#else
#define _QUAD_HIGHWORD 0
#define _QUAD_LOWWORD 1
#endif
/*
* GCC defines _BIG_ENDIAN and _LITTLE_ENDIAN equal to __BIG_ENDIAN__
@ -131,9 +136,16 @@ __bswap64_var(__uint64_t _x)
#define __bswap64(x) (__is_constant(x) ? __bswap64_const(x) : \
__bswap64_var(x))
#ifdef __LITTLE_ENDIAN__
#define __htonl(x) (__bswap32((__uint32_t)(x)))
#define __htons(x) (__bswap16((__uint16_t)(x)))
#define __ntohl(x) (__bswap32((__uint32_t)(x)))
#define __ntohs(x) (__bswap16((__uint16_t)(x)))
#else
#define __htonl(x) ((__uint32_t)(x))
#define __htons(x) ((__uint16_t)(x))
#define __ntohl(x) ((__uint32_t)(x))
#define __ntohs(x) ((__uint16_t)(x))
#endif
#endif /* !_MACHINE_ENDIAN_H_ */