diff options
author | John Crispin <john@openwrt.org> | 2014-12-03 20:22:32 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2014-12-03 20:22:32 +0000 |
commit | c3bb3906ee5abbee7ead3970d395d2d44937a1d8 (patch) | |
tree | 6daa0a2274d556212da17dd4fad56e6e84d783e6 /package/system/mtd | |
parent | 426467bebac905ee32343aa8aad88abc444d3755 (diff) | |
download | upstream-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.tar.gz upstream-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.tar.bz2 upstream-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.zip |
mtd: make the dump commnd honour the -o option
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 43512
Diffstat (limited to 'package/system/mtd')
-rw-r--r-- | package/system/mtd/src/mtd.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/package/system/mtd/src/mtd.c b/package/system/mtd/src/mtd.c index db3fc804c9..72b9ddfe21 100644 --- a/package/system/mtd/src/mtd.c +++ b/package/system/mtd/src/mtd.c @@ -274,7 +274,7 @@ mtd_erase(const char *mtd) } static int -mtd_dump(const char *mtd, int size) +mtd_dump(const char *mtd, int part_offset, int size) { int ret = 0, offset = 0; int fd; @@ -292,6 +292,9 @@ mtd_dump(const char *mtd, int size) if (!size) size = mtdsize; + if (part_offset) + lseek(fd, part_offset, SEEK_SET); + buf = malloc(erasesize); if (!buf) return -1; @@ -769,10 +772,6 @@ int main (int argc, char **argv) } break; case 'o': - if (!mtd_fixtrx) { - fprintf(stderr, "-o: is not available on this platform\n"); - usage(); - } errno = 0; offset = strtoul(optarg, 0, 0); if (errno) { @@ -872,7 +871,7 @@ int main (int argc, char **argv) mtd_verify(device, imagefile); break; case CMD_DUMP: - mtd_dump(device, dump_len); + mtd_dump(device, offset, dump_len); break; case CMD_ERASE: if (!unlocked) |