mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-08 19:51:06 +00:00
Use builtin bitswap for endian on windows
Signed-off-by: R4SAS <r4sas@i2pmail.org>
This commit is contained in:
parent
54b7d46f5a
commit
53f19e4050
libi2pd
@ -50,42 +50,3 @@ uint64_t be64toh(uint64_t big64)
|
|||||||
return u64.raw_value;
|
return u64.raw_value;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* it can be used in Windows 8
|
|
||||||
#include <Winsock2.h>
|
|
||||||
|
|
||||||
uint16_t htobe16(uint16_t int16)
|
|
||||||
{
|
|
||||||
return htons(int16);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t htobe32(uint32_t int32)
|
|
||||||
{
|
|
||||||
return htonl(int32);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t htobe64(uint64_t int64)
|
|
||||||
{
|
|
||||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
|
|
||||||
//return htonll(int64);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
uint16_t be16toh(uint16_t big16)
|
|
||||||
{
|
|
||||||
return ntohs(big16);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t be32toh(uint32_t big32)
|
|
||||||
{
|
|
||||||
return ntohl(big32);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint64_t be64toh(uint64_t big64)
|
|
||||||
{
|
|
||||||
// http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
|
|
||||||
//return ntohll(big64);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
@ -13,10 +13,11 @@
|
|||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
||||||
#include <sys/endian.h>
|
#include <sys/endian.h>
|
||||||
|
|
||||||
#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__GLIBC__)
|
#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__GLIBC__)
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
#elif defined(__APPLE__) && defined(__MACH__)
|
|
||||||
|
|
||||||
|
#elif defined(__APPLE__) && defined(__MACH__)
|
||||||
#include <libkern/OSByteOrder.h>
|
#include <libkern/OSByteOrder.h>
|
||||||
|
|
||||||
#define htobe16(x) OSSwapHostToBigInt16(x)
|
#define htobe16(x) OSSwapHostToBigInt16(x)
|
||||||
@ -34,6 +35,22 @@
|
|||||||
#define be64toh(x) OSSwapBigToHostInt64(x)
|
#define be64toh(x) OSSwapBigToHostInt64(x)
|
||||||
#define le64toh(x) OSSwapLittleToHostInt64(x)
|
#define le64toh(x) OSSwapLittleToHostInt64(x)
|
||||||
|
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
#define htobe16(x) __builtin_bswap16(x)
|
||||||
|
#define htole16(x) (x)
|
||||||
|
#define be16toh(x) __builtin_bswap16(x)
|
||||||
|
#define le16toh(x) (x)
|
||||||
|
|
||||||
|
#define htobe32(x) __builtin_bswap32(x)
|
||||||
|
#define htole32(x) (x)
|
||||||
|
#define be32toh(x) __builtin_bswap32(x)
|
||||||
|
#define le32toh(x) (x)
|
||||||
|
|
||||||
|
#define htobe64(x) __builtin_bswap64(x)
|
||||||
|
#define htole64(x) (x)
|
||||||
|
#define be64toh(x) __builtin_bswap64(x)
|
||||||
|
#define le64toh(x) (x)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define NEEDS_LOCAL_ENDIAN
|
#define NEEDS_LOCAL_ENDIAN
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user