[coreboot-gerrit] Patch set updated for coreboot: endian: add portable endian functions

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Thu Sep 10 17:52:22 CET 2015


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11618

-gerrit

commit 8df2de044a494146c5bdd062ac69659927d5b0a5
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Thu Sep 10 12:08:34 2015 -0500

    endian: add portable endian functions
    
    The current endian API support in coreboot doesn't follow
    any known API that can be shared in userland as well as coreboot
    proper. To that end provide big and little endian helper functions
    that can be used in code that can be shared within coreboot proper
    and userland tools.
    
    BUG=chrome-os-partner:44827
    BRANCH=None
    TEST=Built rambi
    
    Change-Id: I737facab0c849cb4b95756eefbf3ffd69e558b32
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 src/include/endian.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/src/include/endian.h b/src/include/endian.h
index d9199b4..297ffd7 100644
--- a/src/include/endian.h
+++ b/src/include/endian.h
@@ -88,4 +88,70 @@
 #define clrbits_8(addr, clear) clrsetbits_8(addr, clear, 0)
 #define setbits_8(addr, set) setbits_8(addr, 0, set)
 
+#ifndef __ROMCC__
+/*
+ * Portable (API) endian support that can be used in code that is shared
+ * with userspace (man 3 endian) tools.
+ */
+static inline uint16_t htobe16(uint16_t host_16bits)
+{
+	return cpu_to_be16(host_16bits);
+}
+
+static inline uint16_t htole16(uint16_t host_16bits)
+{
+	return cpu_to_le16(host_16bits);
+}
+
+static inline uint16_t be16toh(uint16_t big_endian_16bits)
+{
+	return be16_to_cpu(big_endian_16bits);
+}
+
+static inline uint16_t le16toh(uint16_t little_endian_16bits)
+{
+	return le16_to_cpu(little_endian_16bits);
+}
+
+static inline uint32_t htobe32(uint32_t host_32bits)
+{
+	return cpu_to_be32(host_32bits);
+}
+
+static inline uint32_t htole32(uint32_t host_32bits)
+{
+	return cpu_to_le32(host_32bits);
+}
+
+static inline uint32_t be32toh(uint32_t big_endian_32bits)
+{
+	return be32_to_cpu(big_endian_32bits);
+}
+
+static inline uint32_t le32toh(uint32_t little_endian_32bits)
+{
+	return le32_to_cpu(little_endian_32bits);
+}
+
+static inline uint64_t htobe64(uint64_t host_64bits)
+{
+	return cpu_to_be64(host_64bits);
+}
+
+static inline uint64_t htole64(uint64_t host_64bits)
+{
+	return cpu_to_le64(host_64bits);
+}
+
+static inline uint64_t be64toh(uint64_t big_endian_64bits)
+{
+	return be64_to_cpu(big_endian_64bits);
+}
+
+static inline uint64_t le64toh(uint64_t little_endian_64bits)
+{
+	return le16_to_cpu(little_endian_64bits);
+}
+#endif
+
 #endif



More information about the coreboot-gerrit mailing list