diff --git a/src/miscc.c b/src/miscc.c
index 7123938b16356714846b4fed3ba705b5ab6c4c19..b7058172d4dd025e4af6de4efbbb1ee0949c3a71 100644 (file)
--- a/src/miscc.c
+++ b/src/miscc.c
*h = t;
}
-unsigned short int short2host (unsigned short int x) {
-#if __BIG_ENDIAN__
+#define SWAP_VAR(a, b) do { unsigned char t = a; a = b; b = t; } while(0)
+
+int16_t short2swap (int16_t x) {
union {
- unsigned char a[2];
- unsigned short int x;
+ uint8_t a[2];
+ int16_t x;
} y;
y.x = x;
- unsigned char t = y.a[0]; y.a[0] = y.a[1]; y.a[1] = t;
+ SWAP_VAR(y.a[0], y.a[1]);
return y.x;
-#else
- return x;
-#endif
}
-unsigned int int2host (unsigned int x) {
-#if __BIG_ENDIAN__
+int32_t int2swap (int32_t x) {
union {
- unsigned char a[4];
- unsigned int x;
+ uint8_t a[4];
+ int32_t x;
} y;
y.x = x;
- #define SWAP_VAR(a, b) do { unsigned char t = a; a = b; b = t; } while(0)
SWAP_VAR(y.a[0], y.a[3]);
SWAP_VAR(y.a[1], y.a[2]);
- #undef SWAP_VAR
return y.x;
+}
+
+#undef SWAP_VAR
+
+int16_t short2host (int16_t x) {
+#if __BIG_ENDIAN__
+ return short2swap(x);
#else
return x;
#endif
}
+
+int32_t int2host (int32_t x) {
+#if __BIG_ENDIAN__
+ return int2swap(x);
+#else
+ return x;
+#endif
+}
\ No newline at end of file