commit 8fc15e4861b37f7799abde6b9d6ec63fdceb55da parent 4dda026f0da05dfccf4fb8a13492b81af9324a39 Author: Nick Mathewson <nickm@torproject.org> Date: Thu, 28 Jun 2018 13:26:27 -0400 Add ntohs and htons to lib/arch/bytes.h Diffstat:
| M | src/lib/arch/bytes.h | | | 27 | +++++++++++++++++++++++++++ |
1 file changed, 27 insertions(+), 0 deletions(-)
diff --git 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) {