+#define ntoh16(X) (((((uint16_t)(X)) >> 8) | ((uint16_t)(X) << 8)) & 0xffff)
+#define hton16(X) (((((uint16_t)(X)) << 8) | ((uint16_t)(X) >> 8)) & 0xffff)
+
+/* this is much more efficient since gcc can insert swpb now. */
+static uint32_t __attribute__((unused)) ntoh32(uint32_t i) {
+ uint16_t lo = (uint16_t)i;
+ uint16_t hi = (uint16_t)(i >> 16);
+ lo = (lo << 8) | (lo >> 8);
+ hi = (hi << 8) | (hi >> 8);
+ return (((uint32_t)lo) << 16) | ((uint32_t)hi);
+}
+#define hton32(X) ntoh32(X)