From: Martin Willi Date: Tue, 10 Nov 2015 07:12:35 +0000 (+0100) Subject: byteorder: Provide a fallback for le32toh/htole32() X-Git-Tag: 5.4.0dr1~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=057e6cc52466327dba7b9e21a472ef9f4028f118;p=thirdparty%2Fstrongswan.git byteorder: Provide a fallback for le32toh/htole32() Some older toolchains don't provide these macros, so implement them using the gcc builtins. We also provide 64-bit variants as used by chapoly. --- diff --git a/src/libstrongswan/utils/utils/byteorder.h b/src/libstrongswan/utils/utils/byteorder.h index ef2bddbf71..68a7b33636 100644 --- a/src/libstrongswan/utils/utils/byteorder.h +++ b/src/libstrongswan/utils/utils/byteorder.h @@ -158,6 +158,26 @@ static inline u_int64_t untoh64(void *network) #endif } +#ifndef le32toh +# if BYTE_ORDER == BIG_ENDIAN +# define le32toh(x) __builtin_bswap32(x) +# define htole32(x) __builtin_bswap32(x) +# else +# define le32toh(x) (x) +# define htole32(x) (x) +# endif +#endif + +#ifndef le64toh +# if BYTE_ORDER == BIG_ENDIAN +# define le64toh(x) __builtin_bswap64(x) +# define htole64(x) __builtin_bswap64(x) +# else +# define le64toh(x) (x) +# define htole64(x) (x) +# endif +#endif + /** * Read a 32-bit value in little-endian order from unaligned address. *