That's not what I meant. the host byte order is not fixed, even though net byte
order is always big-endian. So hton/ntoh may simply be a no-op on a big-endian
platform. The byteswap intrinsics always unconditionally swap, so you can't
just blindly use them on all platforms as a replacement.
On 07/14/2013 08:35 PM, dmex wrote:
You don't need to check for platform support... Intrinsics are special, the
compiler will emit the appropriate code if the function is not supported for
the target processor at compile time.
-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of Lee Salzman
Sent: Sunday, 14 July 2013 8:04 PM
To: Discussion of the ENet library
Subject: Re: [ENet-discuss] ENET_HOST_TO_NET/ENET_NET_TO_HOST
Well, there would need to be a check that the platform is little-endian as
well, so it would need to check for x86/arm platforms and it could use
those, otherwise default to the ntoh/hton versions.
On 07/14/2013 01:27 PM, dmex wrote:
Hello,
On Windows the htons/htonl/ntohs/ntohl functions are much older and
slower than the same functions found on other Operating Systems since
the Windows versions of these functions do not make use of the native
bswap processor instruction.
Intrinsic functions are available in both stdlib.h and intrin.h on
multiple platforms for solving this issue, you can simply define the
following in win32.h or enet.h for slightly better enet library
performance:
#define ntohl(x) _byteswap_ulong(x)
#define ntohs(x) _byteswap_ushort(x)
#define htonl(x) _byteswap_ulong(x)
#define htons(x) _byteswap_ushort(x)
#define ENET_HOST_TO_NET_16(value) (htons(value)) #define
ENET_HOST_TO_NET_32(value) (htonl(value)) #define
ENET_NET_TO_HOST_16(value) (ntohs(value)) #define
ENET_NET_TO_HOST_32(value) (ntohl(value))
Would it be possible to include these in the enet library by default?
-dmex
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss