From ee720c5dca5e2d013ba24d824c4760219f79af67 Mon Sep 17 00:00:00 2001 From: Stephen Worley Date: Fri, 9 Dec 2022 19:27:20 -0500 Subject: [PATCH] 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 --- lib/zebra.h | 15 +++++++-------- 1 file 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. */