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.
This commit is contained in:
@@ -158,6 +158,26 @@ static inline u_int64_t untoh64(void *network)
|
|||||||
#endif
|
#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.
|
* Read a 32-bit value in little-endian order from unaligned address.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user