[PATCH 09/18] scripts: compiler.h: add endianness helpers for macOS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These are taken from Mathias Panzenböck's portable_endian.h[1]
which he had released it into the public domain.

[1]: https://gist.github.com/panzi/6856583

Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx>
---
 scripts/compiler.h | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/scripts/compiler.h b/scripts/compiler.h
index bd73c7a9a8d3..ee2097aa3691 100644
--- a/scripts/compiler.h
+++ b/scripts/compiler.h
@@ -42,7 +42,23 @@
 # include <endian.h>
 # include <byteswap.h>
 #elif defined(__MACH__)
-# include <machine/endian.h>
+# ifdef __APPLE__
+#  include <libkern/OSByteOrder.h>
+#  define htobe16(x) OSSwapHostToBigInt16(x)
+#  define htole16(x) OSSwapHostToLittleInt16(x)
+#  define be16toh(x) OSSwapBigToHostInt16(x)
+#  define le16toh(x) OSSwapLittleToHostInt16(x)
+#  define htobe32(x) OSSwapHostToBigInt32(x)
+#  define htole32(x) OSSwapHostToLittleInt32(x)
+#  define be32toh(x) OSSwapBigToHostInt32(x)
+#  define le32toh(x) OSSwapLittleToHostInt32(x)
+#  define htobe64(x) OSSwapHostToBigInt64(x)
+#  define htole64(x) OSSwapHostToLittleInt64(x)
+#  define be64toh(x) OSSwapBigToHostInt64(x)
+#  define le64toh(x) OSSwapLittleToHostInt64(x)
+# else /* non apple __MACH__ */
+#  include <machine/endian.h>
+# endif /* __APPLE__ */
 # define __BYTE_ORDER    BYTE_ORDER
 # define __LITTLE_ENDIAN LITTLE_ENDIAN
 # define __BIG_ENDIAN    BIG_ENDIAN
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux