summaryrefslogtreecommitdiff
path: root/include/bytesex.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/bytesex.h')
-rw-r--r--include/bytesex.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/include/bytesex.h b/include/bytesex.h
index 376bb6d6..ee20adff 100644
--- a/include/bytesex.h
+++ b/include/bytesex.h
@@ -223,8 +223,42 @@ static inline uint64_t cpu_to_le64(uint64_t v)
#else /* not WORDS_LITTLEENDIAN or WORDS_BIGENDIAN */
-#error "Update byteord.h to include arbitrary byte orders"
+static inline uint16_t cpu_to_le16(uint16_t v)
+{
+ union u16 {
+ uint16_t v;
+ uint8_t c[2];
+ } x;
+ uint8_t *cp = &x.c;
+
+ WRITESHORT(cp, v);
+ return x.v;
+}
+
+static inline uint32_t cpu_to_le32(uint32_t v)
+{
+ union u32 {
+ uint32_t v;
+ uint8_t c[4];
+ } x;
+ uint8_t *cp = &x.c;
+
+ WRITELONG(cp, v);
+ return x.v;
+}
+
+static inline uint64_t cpu_to_le64(uint64_t v)
+{
+ union u64 {
+ uint64_t v;
+ uint8_t c[8];
+ } x;
+ uint8_t *cp = &x.c;
+
+ WRITEDLONG(cp, v);
+ return x.v;
+}
#endif
-#endif /* NASM_BYTEORD_H */
+#endif /* NASM_BYTESEX_H */