+void arm_endianness(uint8_t *tmp, void *in, int size, int be, int flip)
+{
+ uint32_t readback = le_to_h_u32(tmp);
+ if (flip)
+ readback = flip_u32(readback, 32);
+ switch (size)
+ {
+ case 4:
+ if (be)
+ {
+ h_u32_to_be(((uint8_t*)in), readback);
+ } else
+ {
+ h_u32_to_le(((uint8_t*)in), readback);
+ }
+ break;
+ case 2:
+ if (be)
+ {
+ h_u16_to_be(((uint8_t*)in), readback & 0xffff);
+ } else
+ {
+ h_u16_to_le(((uint8_t*)in), readback & 0xffff);
+ }
+ break;
+ case 1:
+ *((uint8_t *)in)= readback & 0xff;
+ break;
+ }
+}
+
+static int arm7endianness(jtag_callback_data_t arg, jtag_callback_data_t size, jtag_callback_data_t be, jtag_callback_data_t captured)
+{
+ uint8_t *in = (uint8_t *)arg;
+ arm_endianness((uint8_t *)captured, in, (int)size, (int)be, 1);
+ return ERROR_OK;
+}
+