diff options
author | Milosz Wasilewski <milosz.wasilewski@hackbox.linaro.org> | 2014-10-02 10:16:33 +0100 |
---|---|---|
committer | Milosz Wasilewski <milosz.wasilewski@hackbox.linaro.org> | 2014-10-02 10:16:33 +0100 |
commit | 24689e01d37605141ce768d94a94f0be3421049d (patch) | |
tree | b2ac61c7572a4bbb49aa5c871fe6f3fd68436db1 /powerpc/copyloops/validate.c | |
parent | e14eb051ff73ab8692770762adf44045ba092398 (diff) |
Update to 83d460a640af052ee4a6b8ef5104022ffd6d6a3b from repo http://git.linaro.org/kernel/linux-linaro-stable.git branch linux-linaro-lsk-v3.14eff6a902ff6b8a42f768c4b78fc63b9b8d0a41d9a779989fd4ccf6a58237ab3932559d8e60e157b6a47897538c3e1f71c35691a1f73e73dd9149977ca0d6a47ed69978c84ba8859c3cdbbbd04e79eb2d9347e87f7cd66d6ca96ba7d0b4b1cacebea4d09683d460a640af052ee4a6b8ef5104022ffd6d6a3b7adf3d9a27e4838d0af9250c53ad5744b84886ce7368857a8eed5144e56e65713970764ef0f2f0b8667ea3959654ae48ef303df13f2635fd07766cb45b9be6d71758967d5f24c91903ef3a1b22252a365210951a4876a42856434546d2789838d3e35f3447bbd44e18034d3277a29459d1f0c45e8d1c8d3e3af2dae32ca1108e47a435eaeec276a1c8289a362dad587ec1dddf02a00d3b54156337a6dc79a752297e25caff999eeccf24b19e62388450763af15d250e8659c56d94320b877f659be45b8de130fa3121d7f14b70fed254222a24e124e8771e1437be4c0d590a1ecd1ad44b2dae2bcdc5a6cb24a7080489linux-linaro-stable-3.14
Diffstat (limited to 'powerpc/copyloops/validate.c')
-rw-r--r-- | powerpc/copyloops/validate.c | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/powerpc/copyloops/validate.c b/powerpc/copyloops/validate.c deleted file mode 100644 index 1750ff5..0000000 --- a/powerpc/copyloops/validate.c +++ /dev/null @@ -1,99 +0,0 @@ -#include <malloc.h> -#include <string.h> -#include <stdlib.h> -#include <stdbool.h> - -#include "../utils.h" - -#define MAX_LEN 8192 -#define MAX_OFFSET 16 -#define MIN_REDZONE 128 -#define BUFLEN (MAX_LEN+MAX_OFFSET+2*MIN_REDZONE) -#define POISON 0xa5 - -unsigned long COPY_LOOP(void *to, const void *from, unsigned long size); - -static void do_one(char *src, char *dst, unsigned long src_off, - unsigned long dst_off, unsigned long len, void *redzone, - void *fill) -{ - char *srcp, *dstp; - unsigned long ret; - unsigned long i; - - srcp = src + MIN_REDZONE + src_off; - dstp = dst + MIN_REDZONE + dst_off; - - memset(src, POISON, BUFLEN); - memset(dst, POISON, BUFLEN); - memcpy(srcp, fill, len); - - ret = COPY_LOOP(dstp, srcp, len); - if (ret && ret != (unsigned long)dstp) { - printf("(%p,%p,%ld) returned %ld\n", dstp, srcp, len, ret); - abort(); - } - - if (memcmp(dstp, srcp, len)) { - printf("(%p,%p,%ld) miscompare\n", dstp, srcp, len); - printf("src: "); - for (i = 0; i < len; i++) - printf("%02x ", srcp[i]); - printf("\ndst: "); - for (i = 0; i < len; i++) - printf("%02x ", dstp[i]); - printf("\n"); - abort(); - } - - if (memcmp(dst, redzone, dstp - dst)) { - printf("(%p,%p,%ld) redzone before corrupted\n", - dstp, srcp, len); - abort(); - } - - if (memcmp(dstp+len, redzone, dst+BUFLEN-(dstp+len))) { - printf("(%p,%p,%ld) redzone after corrupted\n", - dstp, srcp, len); - abort(); - } -} - -int test_copy_loop(void) -{ - char *src, *dst, *redzone, *fill; - unsigned long len, src_off, dst_off; - unsigned long i; - - src = memalign(BUFLEN, BUFLEN); - dst = memalign(BUFLEN, BUFLEN); - redzone = malloc(BUFLEN); - fill = malloc(BUFLEN); - - if (!src || !dst || !redzone || !fill) { - fprintf(stderr, "malloc failed\n"); - exit(1); - } - - memset(redzone, POISON, BUFLEN); - - /* Fill with sequential bytes */ - for (i = 0; i < BUFLEN; i++) - fill[i] = i & 0xff; - - for (len = 1; len < MAX_LEN; len++) { - for (src_off = 0; src_off < MAX_OFFSET; src_off++) { - for (dst_off = 0; dst_off < MAX_OFFSET; dst_off++) { - do_one(src, dst, src_off, dst_off, len, - redzone, fill); - } - } - } - - return 0; -} - -int main(void) -{ - return test_harness(test_copy_loop, str(COPY_LOOP)); -} |