summaryrefslogtreecommitdiff
path: root/src/unaligned.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/unaligned.h')
-rw-r--r--src/unaligned.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/unaligned.h b/src/unaligned.h
new file mode 100644
index 0000000..a0a8594
--- /dev/null
+++ b/src/unaligned.h
@@ -0,0 +1,29 @@
+#ifndef UNALIGNED_H
+#define UNALIGNED_H
+
+// Anything using these types is not alignment and endian clean.
+
+#if EMSCRIPTEN
+#include <emscripten.h>
+
+typedef emscripten_align1_short unaligned_s16;
+typedef emscripten_align1_int unaligned_s32;
+typedef emscripten_align1_short unaligned_u16;
+typedef emscripten_align1_int unaligned_u32;
+typedef emscripten_align1_float unaligned_f32;
+typedef emscripten_align1_double unaligned_f64;
+
+#else
+
+#include <stdint.h>
+
+typedef int16_t unaligned_s16;
+typedef int32_t unaligned_s32;
+typedef uint16_t unaligned_u16;
+typedef uint32_t unaligned_u32;
+typedef float unaligned_f32;
+typedef double unaligned_f64;
+
+#endif
+
+#endif