[PATCH v2 08/11] net: provide alternatives to {ntoh, hton}[sl] funtions with cleaner semantics

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Fri Feb 7 16:28:10 EST 2014


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 <u.kleine-koenig at pengutronix.de>
---

Notes:
    new in v2

 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 000000000000..4b255a5fab9b
--- /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 <asm/byteorder.h>
+
+#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__ */
-- 
1.8.5.2




More information about the barebox mailing list