aboutsummaryrefslogtreecommitdiff
path: root/lib/endian/little.c
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2022-12-31 16:03:20 +0200
committeraqua <aqua@iserlohn-fortress.net>2023-01-29 11:41:29 +0200
commitf6b7365dc8759d6df5d340e4a68fb75537c07be4 (patch)
treec15614d8dee445dd4c6ae75da2959c701e69daae /lib/endian/little.c
parentMove blake2s selftest to test/ (diff)
downloadkernel-f6b7365dc8759d6df5d340e4a68fb75537c07be4.tar.xz
blake2: use makefiles instead of meson.build
Diffstat (limited to 'lib/endian/little.c')
-rw-r--r--lib/endian/little.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/endian/little.c b/lib/endian/little.c
new file mode 100644
index 0000000..042bb55
--- /dev/null
+++ b/lib/endian/little.c
@@ -0,0 +1,43 @@
+//=====================================================================
+// spdx-license-identifier: ISC
+//=====================================================================
+
+#include "endian.h"
+
+#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
+#error little.c included in build on big endian target
+#endif
+
+uint16_t
+htole16(uint16_t host_16b)
+{
+ return host_16b;
+}
+
+uint32_t
+htole32(uint32_t host_32b)
+{
+ return host_32b;
+}
+
+uint64_t
+htole64(uint64_t host_64b)
+{
+ return host_64b;
+}
+
+uint16_t
+htobe16(uint16_t host_16b)
+{
+ return __builtin_bswap16(host_16b);
+}
+uint32_t
+htobe32(uint32_t host_32b)
+{
+ return __builtin_bswap32(host_32b);
+}
+uint64_t
+htobe64(uint64_t host_64b)
+{
+ return __builtin_bswap64(host_64b);
+}