On 04/26/12 08:25, Jes Sorensen wrote: > Just checking mdadm.h and bswap32() is defined like this: > > #define bswap_32(x) (((x) & 0x000000ffU) << 24 | \ > ((x) & 0xff000000U) >> 24 | \ > ((x) & 0x0000ff00U) << 8 | \ > ((x) & 0x00ff0000U) >> 8) > > so I am not 100% sure just swapping to an s32 in the struct will work on > big endian systems? Will the 0x000000ffU not force the conversion back > to unsigned or what happens in this case? This is actually semi-complicated. c89 or c99 rules? X already of a type larger than unsigned int? But if X is signed int, this entire expression will always be unsigned. You're certainly better off with a cast as we discussed on irc. r~ -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html