about summary refs log tree commit diff
path: root/src/engine/system.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/system.c')
-rw-r--r--src/engine/system.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/engine/system.c b/src/engine/system.c
index 6226d4d2..45c648ab 100644
--- a/src/engine/system.c
+++ b/src/engine/system.c
@@ -567,3 +567,29 @@ int fs_listdir(const char *dir, fs_listdir_callback cb, void *user)
 	return 0;
 #endif
 }
+
+void swap_endian(void *data, unsigned elem_size, unsigned num)
+{
+	char *src = (char*) data;
+	char *dst = src + (elem_size - 1);
+
+	while(num)
+	{
+		unsigned n = elem_size>>1;
+		char tmp;
+		while(n)
+		{
+			tmp = *src;
+			*src = *dst;
+			*dst = tmp;
+
+			src++;
+			dst--;
+			n--;
+		}
+
+		src = src + (elem_size>>1);
+		dst = src + (elem_size - 1);
+		num--;
+	}
+}