[tor-commits] [tor/master] Add ntohs and htons to lib/arch/bytes.h
nickm at torproject.org
nickm at torproject.org
Thu Jun 28 19:21:00 UTC 2018
commit 8fc15e4861b37f7799abde6b9d6ec63fdceb55da
Author: Nick Mathewson <nickm at torproject.org>
Date: Thu Jun 28 13:26:27 2018 -0400
Add ntohs and htons to lib/arch/bytes.h
---
src/lib/arch/bytes.h | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/lib/arch/bytes.h b/src/lib/arch/bytes.h
index dcd35ae4f..d3b53f8cd 100644
--- a/src/lib/arch/bytes.h
+++ b/src/lib/arch/bytes.h
@@ -87,6 +87,18 @@ set_uint64(void *cp, uint64_t v)
}
#ifdef WORDS_BIGENDIAN
+static inline uint16_t
+tor_htons(uint32_t a)
+{
+ return a;
+}
+
+static inline uint16_t
+tor_ntohs(uint64_t a)
+{
+ return a;
+}
+
static inline uint32_t
tor_htonl(uint32_t a)
{
@@ -111,6 +123,21 @@ tor_ntohll(uint64_t a)
return a;
}
#else
+static inline uint16_t
+tor_htons(uint16_t a)
+{
+ /* Our compilers will indeed recognize this as bswap. */
+ return
+ ((a & 0x00ff) << 8) |
+ ((a & 0xff00) >> 8);
+}
+
+static inline uint16_t
+tor_ntohs(uint16_t a)
+{
+ return tor_htons(a);
+}
+
static inline uint32_t
tor_htonl(uint32_t a)
{
More information about the tor-commits
mailing list