int equal_data_t(data_t* data1,data_t* data2) { int size = sizeof_data_t( data1 ); int i; if ( data1->format != data2->format ) return 0; for( i=0; i<size; i++) if (data1->val.bytes[i] != data2->val.bytes[i]) return 0; return 1; }
void reorder_data_t(data_t* data, int swap, int inverse_words) { int size = sizeof_data_t( data ); int i, j; uint16_t word; data_t tmp; tmp = *data; for( i = 0; i<size; i++) { j = inverse_words ? size-i-1 : i; word = tmp.val.words[j]; data->val.words[i] = swap ? swap_bytes(word) : word; } }
static int test_inverse(int format) { struct data_t before, after; int size_words; int i; before.format = format; after.format = format; /* sizeof_data_t returs size in words */ size_words = sizeof_data_t(&before); for (i = 0; i < size_words; i++) { before.val.words[i] = i; after.val.words[size_words-i-1] = i; } reorder_data_t(&before, 0, 1); return equal_data_t(&before, &after); }