summaryrefslogtreecommitdiff
path: root/package/system
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2014-12-03 20:22:32 +0000
committerJohn Crispin <john@openwrt.org>2014-12-03 20:22:32 +0000
commitc3bb3906ee5abbee7ead3970d395d2d44937a1d8 (patch)
tree6daa0a2274d556212da17dd4fad56e6e84d783e6 /package/system
parent426467bebac905ee32343aa8aad88abc444d3755 (diff)
downloadmtk-20170518-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.zip
mtk-20170518-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.tar.gz
mtk-20170518-c3bb3906ee5abbee7ead3970d395d2d44937a1d8.tar.bz2
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')
-rw-r--r--package/system/mtd/src/mtd.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/package/system/mtd/src/mtd.c b/package/system/mtd/src/mtd.c
index db3fc80..72b9ddf 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)