9
0
Fork 0

net: provide alternatives to {ntoh, hton}[sl] funtions with cleaner semantics

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@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Uwe Kleine-König 2014-02-07 22:28:10 +01:00 committed by Sascha Hauer
parent b104688cbb
commit 8abaf1ad71
1 changed files with 24 additions and 0 deletions

24
include/byteorder.h Normal file
View File

@ -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__ */