--- endian.h.orig Wed Oct 15 22:05:57 2003 +++ endian.h Tue Feb 3 00:47:13 2004 @@ -49,6 +49,25 @@ #endif /* + * Size-independent byte order swapping functions. + */ +#define bswap(x) (sizeof(x) == 8 ? bswap64(x) : \ + (sizeof(x) == 4 ? bswap32(x) : \ + (sizeof(x) == 2 ? bswap16(x) : (x)))) +#define htobe(x) (sizeof(x) == 8 ? htobe64(x) : \ + (sizeof(x) == 4 ? htobe32(x) : \ + (sizeof(x) == 2 ? htobe16(x) : (x)))) +#define htole(x) (sizeof(x) == 8 ? htole64(x) : \ + (sizeof(x) == 4 ? htole32(x) : \ + (sizeof(x) == 2 ? htole16(x) : (x)))) +#define betoh(x) (sizeof(x) == 8 ? betoh64(x) : \ + (sizeof(x) == 4 ? betoh32(x) : \ + (sizeof(x) == 2 ? betoh16(x) : (x)))) +#define letoh(x) (sizeof(x) == 8 ? letoh64(x) : \ + (sizeof(x) == 4 ? letoh32(x) : \ + (sizeof(x) == 2 ? letoh16(x) : (x)))) + +/* * General byte order swapping functions. */ #define bswap16(x) __bswap16(x)