[coreboot] [PATCH] endian.h: add macros for le16/le32 to cpu endianess conversion

Daniel Mack daniel at caiaq.de
Mon Oct 5 04:44:46 CEST 2009


Signed-off-by: Daniel Mack <daniel at caiaq.de>
---
 include/i386/arch/endian.h    |   11 +++++++++++
 include/powerpc/arch/endian.h |   14 ++++++++++++--
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/include/i386/arch/endian.h b/include/i386/arch/endian.h
index a50ac1f..743787f 100644
--- a/include/i386/arch/endian.h
+++ b/include/i386/arch/endian.h
@@ -38,4 +38,15 @@
 		(( (in) & 0xFF0000) >> 8) | (( (in) & 0xFF000000) >> 24))
 
 #define ntohll(in) (((u64) ntohl( (in) & 0xFFFFFFFF) << 32) | ((u64) ntohl( (in) >> 32))) 
+
+#define cpu_to_le16(in) (in)
+#define cpu_to_le32(in) (in)
+#define cpu_to_be16(in) ntohw(in)
+#define cpu_to_be32(in) ntohl(in)
+
+#define le16_to_cpu(in) (in)
+#define le32_to_cpu(in) (in)
+#define be16_to_cpu(in) ntohw(in)
+#define be32_to_cpu(in) ntohl(in)
+
 #endif
diff --git a/include/powerpc/arch/endian.h b/include/powerpc/arch/endian.h
index 8ffad70..1cc7c57 100644
--- a/include/powerpc/arch/endian.h
+++ b/include/powerpc/arch/endian.h
@@ -33,9 +33,19 @@
 #include <arch/types.h>
 
 #define ntohw(in) (in)
-
 #define ntohl(in) (in)
-
 #define ntohll(in) (in)
 
+#define cpu_to_le16(in) ((( (in) & 0xFF) << 8) | (( (in) & 0xFF00) >> 8))
+#define cpu_to_le32(in) ((( (in) & 0xFF) << 24) | (( (in) & 0xFF00) << 8) | \
+		(( (in) & 0xFF0000) >> 8) | (( (in) & 0xFF000000) >> 24))
+
+#define cpu_to_be16(in) (in)
+#define cpu_to_be32(in) (in)
+
+#define le16_to_cpu(in) cpu_to_le16(in)
+#define le32_to_cpu(in) cpu_to_le32(in)
+#define be16_to_cpu(in) (in)
+#define be32_to_cpu(in) (in)
+
 #endif
-- 
1.6.0.4





More information about the coreboot mailing list