函数源码 |
Source File:lib\test_string.c |
Create Date:2022-07-27 07:22:55 |
首页 | Copyright©Brick |
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | static __init int memset64_selftest( void ) { unsigned i, j, k; u64 v, *p; p = kmalloc(256 * 2 * 8, GFP_KERNEL); if (!p) return -1; for (i = 0; i < 256; i++) { for (j = 0; j < 256; j++) { memset (p, 0xa1, 256 * 2 * sizeof (v)); memset64(p + i, 0xb1b2b3b4b5b6b7b8ULL, j); for (k = 0; k < 512; k++) { v = p[k]; if (k < i) { if (v != 0xa1a1a1a1a1a1a1a1ULL) goto fail; } else if (k < i + j) { if (v != 0xb1b2b3b4b5b6b7b8ULL) goto fail; } else { if (v != 0xa1a1a1a1a1a1a1a1ULL) goto fail; } } } } fail: kfree(p); if (i < 256) return (i << 24) | (j << 16) | k | 0x8000; return 0; } |