From 8abaf1ad7137e0802761d85b456591de9eaa7a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Fri, 7 Feb 2014 22:28:10 +0100 Subject: [PATCH] net: provide alternatives to {ntoh, hton}[sl] funtions with cleaner semantics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ntohl always converts 32 bits even on archs where sizeof(long) == 8. "ntoh32" is a much more intuitive name here. Also the name of the 64 bit variant that is also added isn't questionable. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer --- include/byteorder.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 include/byteorder.h diff --git a/include/byteorder.h b/include/byteorder.h new file mode 100644 index 000000000..4b255a5fa --- /dev/null +++ b/include/byteorder.h @@ -0,0 +1,24 @@ +#ifndef __BYTEORDER_H__ +#define __BYTEORDER_H__ + +/* + * The standard macros for converting between host and network byte order are + * badly named. So ntohl converts 32 bits even on architectures where a long is + * 64 bit wide although the 'l' suffix suggests that it's working on longs. + * + * So this file introduces variants that use the bitcount as suffix instead of + * 's' or 'l'. + */ + +#include + +#define ntoh16(x) __be16_to_cpu(x) +#define hton16(x) __cpu_to_be16(x) + +#define ntoh32(x) __be32_to_cpu(x) +#define hton32(x) __cpu_to_be32(x) + +#define ntoh64(x) __be64_to_cpu(x) +#define hton64(x) __cpu_to_be64(x) + +#endif /* __BYTEORDER_H__ */