]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add ntohs and htons to lib/arch/bytes.h
authorNick Mathewson <nickm@torproject.org>
Thu, 28 Jun 2018 17:26:27 +0000 (13:26 -0400)
committerNick Mathewson <nickm@torproject.org>
Thu, 28 Jun 2018 17:26:27 +0000 (13:26 -0400)
src/lib/arch/bytes.h

index dcd35ae4fec03ab9548caaaffa67a8c6ba36c9ba..d3b53f8cdf835e1398095e23101d26938d078c6a 100644 (file)
@@ -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)
 {