diff options
-rw-r--r-- | util/byteorder.c | 8 | ||||
-rw-r--r-- | util/byteorder.h | 1 | ||||
-rw-r--r-- | xen/net.c | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/util/byteorder.c b/util/byteorder.c index 18311972..0629b31e 100644 --- a/util/byteorder.c +++ b/util/byteorder.c @@ -36,6 +36,14 @@ uint32_t ntohl(uint32_t netlong) { #endif } +uint16_t htons(uint16_t hostshort) { +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + return __builtin_bswap16(hostshort); +#else + return hostshort; +#endif +} + uint32_t htonl(uint32_t hostlong) { #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ return __builtin_bswap32(hostlong); diff --git a/util/byteorder.h b/util/byteorder.h index 2b780ffe..fbec39e3 100644 --- a/util/byteorder.h +++ b/util/byteorder.h @@ -26,6 +26,7 @@ uint16_t ntohs(uint16_t netshort); uint32_t ntohl(uint32_t netlong); +uint16_t htons(uint16_t hostshort); uint32_t htonl(uint32_t hostlong); #endif /* _UTIL_BYTEORDER_H_ */ @@ -36,6 +36,7 @@ #include <xen/public/memory.h> #include <string.h> #include <util/atoi.h> +#include <util/byteorder.h> #include "evt.h" #include "store.h" #include "net.h" |