1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:57:35 +00:00

AK/Userland: Use AK/Endian.h for portable byte swapping in ntpquery

Create macros for the byte swap operations one would expect to be in
endian.h or byteswap.h in AK/Endian.h. It's likely a similar/different
change will be needed for BSDs, but there's no github action for those
added to the project yet.
This commit is contained in:
Andrew Kaster 2020-12-27 16:51:03 -07:00 committed by Andreas Kling
parent 42323d769a
commit 02fcf3974e
2 changed files with 26 additions and 2 deletions

View file

@ -29,6 +29,30 @@
#include <AK/Forward.h>
#include <AK/Platform.h>
#if defined(AK_OS_MACOS)
# include <libkern/OSByteOrder.h>
# include <machine/endian.h>
# define htobe16(x) OSSwapHostToBigInt16(x)
# define htole16(x) OSSwapHostToLittleInt16(x)
# define be16toh(x) OSSwapBigToHostInt16(x)
# define le16toh(x) OSSwapLittleToHostInt16(x)
# define htobe32(x) OSSwapHostToBigInt32(x)
# define htole32(x) OSSwapHostToLittleInt32(x)
# define be32toh(x) OSSwapBigToHostInt32(x)
# define le32toh(x) OSSwapLittleToHostInt32(x)
# define htobe64(x) OSSwapHostToBigInt64(x)
# define htole64(x) OSSwapHostToLittleInt64(x)
# define be64toh(x) OSSwapBigToHostInt64(x)
# define le64toh(x) OSSwapLittleToHostInt64(x)
# define __BIG_ENDIAN BIG_ENDIAN
# define __LITTLE_ENDIAN LITTLE_ENDIAN
# define __BYTE_ORDER BYTE_ORDER
#endif
namespace AK {
template<typename T>