summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2010-11-03 01:27:23 -0700
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2010-11-13 13:50:25 +0200
commitcba5e67f354b16727f2417d63d726ae1cda70733 (patch)
treee897b075138d69baa6535b6124cd8fb383991184
parentaf88c36dbda09ab38f274956ed3f2d1ddd62e3fb (diff)
mtd-utils: nandwrite: Use 64-bit offset
To support large NAND devices, we need 64-bit data types for write offsets. This patch makes data type changes along with their corresponding printf() formats and the input conversion (i.e., use "strtoll()" instead of "strol()"). Signed-off-by: Brian Norris <computersforpeace@gmail.com> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--nandwrite.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/nandwrite.c b/nandwrite.c
index d05d257..b362c29 100644
--- a/nandwrite.c
+++ b/nandwrite.c
@@ -109,7 +109,7 @@ static void display_version(void)
static const char *standard_input = "-";
static const char *mtd_device, *img;
-static int mtdoffset = 0;
+static long long mtdoffset = 0;
static bool quiet = false;
static bool writeoob = false;
static bool rawoob = false;
@@ -201,7 +201,7 @@ static void process_options(int argc, char * const argv[])
writeoob = true;
break;
case 's':
- mtdoffset = strtol(optarg, NULL, 0);
+ mtdoffset = strtoll(optarg, NULL, 0);
break;
case 'b':
blockalign = atoi(optarg);
@@ -213,7 +213,7 @@ static void process_options(int argc, char * const argv[])
}
if (mtdoffset < 0) {
- fprintf(stderr, "Can't specify a negative device offset `%d'\n",
+ fprintf(stderr, "Can't specify a negative device offset `%lld'\n",
mtdoffset);
exit(EXIT_FAILURE);
}
@@ -259,7 +259,7 @@ int main(int argc, char * const argv[])
int ifd = -1;
int imglen = 0, pagelen;
bool baderaseblock = false;
- int blockstart = -1;
+ long long blockstart = -1;
struct mtd_dev_info mtd;
struct mtd_oob_buf oob;
loff_t offs;
@@ -480,7 +480,7 @@ int main(int argc, char * const argv[])
baderaseblock = false;
if (!quiet)
- fprintf(stdout, "Writing data to block %d at offset 0x%x\n",
+ fprintf(stdout, "Writing data to block %lld at offset 0x%llx\n",
blockstart / ebsize_aligned, blockstart);
/* Check all the blocks in an erase block for bad blocks */
@@ -494,7 +494,7 @@ int main(int argc, char * const argv[])
baderaseblock = true;
if (!quiet)
fprintf(stderr, "Bad block at %x, %u block(s) "
- "from %x will be skipped\n",
+ "from %llx will be skipped\n",
(int) offs, blockalign, blockstart);
}