27 unsigned char *mem8_base = (
unsigned char *)start;
28 unsigned short *mem16_base = (
unsigned short *)start;
29 unsigned int *mem32_base = (
unsigned int *)start;
30 unsigned int *mem_base = (
unsigned int *)start;
31 unsigned char pattern8;
32 unsigned short pattern16;
33 unsigned int i, j, size, pattern32;
40 for (i = 0; i < size; i++)
43 for (i = 0; i < size; i++) {
51 for (i = 0; i < size; i++) {
59 for (i = 0; i < len; i++)
60 mem8_base[i] = pattern8++;
62 for (i = 0; i < len; i++) {
63 if (mem8_base[i] != pattern8++)
69 for (i = j = 0; i < len; i += 2, j++) {
70 if (mem8_base[i] == pattern8)
71 mem16_base[j] = pattern8;
72 if (mem16_base[j] != pattern8)
80 for (i = 0; i < (len >> 1); i++)
81 mem16_base[i] = pattern16++;
83 for (i = 0; i < (len >> 1); i++) {
84 if (mem16_base[i] != pattern16++)
90 for (i = 0; i < (len >> 2); i++)
91 mem32_base[i] = pattern32++;
93 for (i = 0; i < (len >> 2); i++) {
94 if (mem32_base[i] != pattern32++)
99 for (i = 0; i < size; i++)
103 for (i = 0; i < size; i++) {
111 for (i = 0; i < size; i++) {
119 for (i = 0; i < size; i++) {
127 for (i = 0; i < size; i++) {
135 for (i = 0; i < size; i++) {
143 for (i = 0; i < size; i++) {
151 for (i = 0; i < size; i++) {
159 for (i = 0; i < size; i++) {
165 for (i = 0; i < size; i++)
169 for (i = 0; i < size; i++) {
179 for (i = 0; i < size; i++) {
188 for (i = 0; i < size; i++) {
197 for (i = 0; i < size; i++) {
206 for (i = 0; i < size; i++) {
215 while (p < (
uintptr_t)mem_base + (size << 2)) {
250 for (i = 0; i < size; i++) {
258 mem8_base[0] = pattern8;
259 for (i = 0; i < size * 4; i++) {
260 unsigned char waddr8, raddr8;
264 if (i < size * 4 - 1)
265 mem8_base[waddr8] = pattern8 + 1;
266 if (mem8_base[raddr8] != pattern8)
274 mem16_base[0] = pattern16;
275 for (i = 0; i < size * 2; i++) {
276 if (i < size * 2 - 1)
277 mem16_base[i + 1] = pattern16 + 1;
278 if (mem16_base[i] != pattern16)
286 mem32_base[0] = pattern32;
287 for (i = 0; i < size; i++) {
289 mem32_base[i + 1] = pattern32 + 1;
290 if (mem32_base[i] != pattern32)
int complex_mem_test(u8 *start, unsigned int len)