+#define DEFINE_SHUFFLE_BYTES(name, a, b, c, d) \
+static void shuffle_bytes_##name (const uint8_t *src, \
+ uint8_t *dst, int src_size) \
+{ \
+ int i; \
+ \
+ for (i = 0; i < src_size; i += 4) { \
+ dst[i + 0] = src[i + a]; \
+ dst[i + 1] = src[i + b]; \
+ dst[i + 2] = src[i + c]; \
+ dst[i + 3] = src[i + d]; \
+ } \
+}
+
+DEFINE_SHUFFLE_BYTES(1230_c, 1, 2, 3, 0)
+DEFINE_SHUFFLE_BYTES(3012_c, 3, 0, 1, 2)
+DEFINE_SHUFFLE_BYTES(3210_c, 3, 2, 1, 0)
+