10 static void *(*volatile pmemset)(void *, int, size_t);
12 static void *aligned(void *p)
14 return (void*)(((uintptr_t)p + 63) & -64U);
17 static void test_align(int align, int len)
19 char *s = aligned(buf+64);
20 char *want = aligned(buf2+64);
24 if (s - buf + align + len > N)
26 for (i = 0; i < N; i++)
27 buf[i] = buf2[i] = ' ';
28 for (i = 0; i < len; i++)
30 p = pmemset(s+align, '#', len);
32 t_error("memset(%p,...) returned %p\n", s+align, p);
33 for (i = 0; i < N; i++)
34 if (buf[i] != buf2[i]) {
35 t_error("memset(align %d, '#', %d) failed\n", align, len);
36 t_printf("got : %.*s\n", align+len+1, s);
37 t_printf("want: %.*s\n", align+len+1, want);
42 static void test_value(int c)
47 for (i = 0; i < 10; i++)
48 if ((unsigned char)buf[i] != (unsigned char)c) {
49 t_error("memset(%d) failed: got %d\n", c, buf[i]);
60 for (i = 0; i < 16; i++)
61 for (j = 0; j < 200; j++)