summaryrefslogtreecommitdiff
path: root/src/basic/unaligned.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-06-02 18:12:16 +0200
committerSven Eden <yamakuzure@gmx.net>2017-06-16 10:12:59 +0200
commit8165a8803d7eb27502d49dc813b8b3c4e60963eb (patch)
treebb077b647e6046d56b5670946cc14cb517f4de45 /src/basic/unaligned.h
parent3694798bc58665ee89e2d9c7f7829484f288ea28 (diff)
util-lib: add accessors for unaligned native endian words
Diffstat (limited to 'src/basic/unaligned.h')
-rw-r--r--src/basic/unaligned.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/basic/unaligned.h b/src/basic/unaligned.h
index 79be645be..7c847a3cc 100644
--- a/src/basic/unaligned.h
+++ b/src/basic/unaligned.h
@@ -109,3 +109,21 @@ static inline void unaligned_write_le64(void *_u, uint64_t a) {
unaligned_write_le32(u, (uint32_t) a);
unaligned_write_le32(u + 4, (uint32_t) (a >> 32));
}
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+#define unaligned_read_ne16 unaligned_read_be16
+#define unaligned_read_ne32 unaligned_read_be32
+#define unaligned_read_ne64 unaligned_read_be64
+
+#define unaligned_write_ne16 unaligned_write_be16
+#define unaligned_write_ne32 unaligned_write_be32
+#define unaligned_write_ne64 unaligned_write_be64
+#else
+#define unaligned_read_ne16 unaligned_read_le16
+#define unaligned_read_ne32 unaligned_read_le32
+#define unaligned_read_ne64 unaligned_read_le64
+
+#define unaligned_write_ne16 unaligned_write_le16
+#define unaligned_write_ne32 unaligned_write_le32
+#define unaligned_write_ne64 unaligned_write_le64
+#endif