diff options
author | Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> | 2014-04-28 10:14:18 -0300 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2014-05-05 10:32:33 +0300 |
commit | 7d2839b8dede3ae368780364b4a07473d2303219 (patch) | |
tree | 155292e05cdd95b446ff6ad4da6e654e70163ccf | |
parent | b4a2417a181a219f925e479d0c24cc344279d870 (diff) |
nandtest: Move the "read and compare" code to a function
This commit makes no functionality change, and simply moves the
read and compare code into a separate read_and_compare() function.
Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-rw-r--r-- | nandtest.c | 79 |
1 files changed, 43 insertions, 36 deletions
@@ -37,46 +37,11 @@ int fd; int markbad=0; int seed; -int erase_and_write(loff_t ofs, unsigned char *data, unsigned char *rbuf) +void read_and_compare(loff_t ofs, unsigned char *data, unsigned char *rbuf) { - struct erase_info_user er; ssize_t len; int i; - printf("\r%08x: erasing... ", (unsigned)ofs); - fflush(stdout); - - er.start = ofs; - er.length = meminfo.erasesize; - - if (ioctl(fd, MEMERASE, &er)) { - perror("MEMERASE"); - if (markbad) { - printf("Mark block bad at %08lx\n", (long)ofs); - ioctl(fd, MEMSETBADBLOCK, &ofs); - } - return 1; - } - - printf("\r%08x: writing...", (unsigned)ofs); - fflush(stdout); - - len = pwrite(fd, data, meminfo.erasesize, ofs); - if (len < 0) { - printf("\n"); - perror("write"); - if (markbad) { - printf("Mark block bad at %08lx\n", (long)ofs); - ioctl(fd, MEMSETBADBLOCK, &ofs); - } - return 1; - } - if (len < meminfo.erasesize) { - printf("\n"); - fprintf(stderr, "Short write (%zd bytes)\n", len); - exit(1); - } - printf("\r%08x: reading...", (unsigned)ofs); fflush(stdout); @@ -121,6 +86,48 @@ int erase_and_write(loff_t ofs, unsigned char *data, unsigned char *rbuf) } exit(1); } +} + +int erase_and_write(loff_t ofs, unsigned char *data, unsigned char *rbuf) +{ + struct erase_info_user er; + ssize_t len; + + printf("\r%08x: erasing... ", (unsigned)ofs); + fflush(stdout); + + er.start = ofs; + er.length = meminfo.erasesize; + + if (ioctl(fd, MEMERASE, &er)) { + perror("MEMERASE"); + if (markbad) { + printf("Mark block bad at %08lx\n", (long)ofs); + ioctl(fd, MEMSETBADBLOCK, &ofs); + } + return 1; + } + + printf("\r%08x: writing...", (unsigned)ofs); + fflush(stdout); + + len = pwrite(fd, data, meminfo.erasesize, ofs); + if (len < 0) { + printf("\n"); + perror("write"); + if (markbad) { + printf("Mark block bad at %08lx\n", (long)ofs); + ioctl(fd, MEMSETBADBLOCK, &ofs); + } + return 1; + } + if (len < meminfo.erasesize) { + printf("\n"); + fprintf(stderr, "Short write (%zd bytes)\n", len); + exit(1); + } + + read_and_compare(ofs, data, rbuf); return 0; } |