summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Worley <sworley@nvidia.com>2022-12-09 19:27:20 -0500
committerStephen Worley <sworley@nvidia.com>2023-02-13 18:12:05 -0500
commitee720c5dca5e2d013ba24d824c4760219f79af67 (patch)
tree210c368d1e422e4dbf4bbab111988bf993a4eff2
parentd3909a21148ea49718d00f42c14b0b9bb0e07182 (diff)
lib: make htonll/ntohll compile time and readable
Make the htonll/ntohll functions compile time determined since we have MACROS to determine endianess and bonus points it makes it more readable. Signed-off-by: Stephen Worley <sworley@nvidia.com>
-rw-r--r--lib/zebra.h15
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/zebra.h b/lib/zebra.h
index 455db9c64e..a87398a237 100644
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -338,14 +338,13 @@ struct in_pktinfo {
#define strmatch(a,b) (!strcmp((a), (b)))
-#define htonll(x) \
- ((1 == htonl(1)) \
- ? (x) \
- : ((uint64_t)htonl((x)&0xFFFFFFFF) << 32) | htonl((x) >> 32))
-#define ntohll(x) \
- ((1 == ntohl(1)) \
- ? (x) \
- : ((uint64_t)ntohl((x)&0xFFFFFFFF) << 32) | ntohl((x) >> 32))
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define htonll(x) (((uint64_t)htonl((x)&0xFFFFFFFF) << 32) | htonl((x) >> 32))
+#define ntohll(x) (((uint64_t)ntohl((x)&0xFFFFFFFF) << 32) | ntohl((x) >> 32))
+#else
+#define htonll(x) (x)
+#define ntohll(x) (x)
+#endif
#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK 0x7f000001 /* Internet address 127.0.0.1. */