add byteorder macros
authorMichael Gernoth <michael@gernoth.net>
Mon, 7 Jun 2010 08:29:12 +0000 (10:29 +0200)
committerMichael Gernoth <michael@gernoth.net>
Mon, 7 Jun 2010 08:29:12 +0000 (10:29 +0200)
usbtmc.c

index 32f83a86d44ce4e0f413df5cc14ca2ef9f77dd1e..835b6c8b84b2a6449f13f4e98e16052248f5dc9d 100644 (file)
--- a/usbtmc.c
+++ b/usbtmc.c
@@ -8,6 +8,14 @@
 
 #define USB_TIMEOUT 50000
 
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define LE32(x) x
+#elif BYTE_ORDER == BIG_ENDIAN
+#define LE32(x) ((uint32_t)((((uint32_t)x)>>24) | ((((uint32_t)x)>>8) & 0xff00) | ((((uint32_t)x)<<8) & 0xff0000) | (((uint32_t)x)<<24)))
+#else
+#error BYTE_ORDER not defined/known!
+#endif
+
 //Helper-routine: Convert a little-endian 4-byte word to an int
 static void int2chars(unsigned char *buff,unsigned int a) {
        buff[3]=(a>>24)&0xff;
Impressum, Datenschutz