kinect_upload_fw: support architectures that are not little-endian
[kinect-audio-setup.git] / kinect_upload_fw / endian.c
diff --git a/kinect_upload_fw/endian.c b/kinect_upload_fw/endian.c
new file mode 100644 (file)
index 0000000..89120ca
--- /dev/null
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+static int litend(void) {
+       int i = 0;
+       ((char *) (&i))[0] = 1;
+       return (i == 1);
+}
+
+static int bigend(void) {
+       return !litend();
+}
+
+int main(void) {
+       printf("#ifndef __ENDIAN_H\n");
+       printf("#define __ENDIAN_H\n");
+       printf("\n");
+       printf("#define __LITTLE_ENDIAN 1234\n");
+       printf("#define __BIG_ENDIAN    4321\n");
+       printf("#define __BYTE_ORDER __%s_ENDIAN\n",
+              litend() ? "LITTLE" : "BIG");
+       printf("\n");
+       printf("#endif /* __ENDIAN_H */\n");
+       exit(0);
+}