diff options
-rw-r--r-- | miscutils/flash_eraseall.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c index 0598371..bf9b739 100644 --- a/miscutils/flash_eraseall.c +++ b/miscutils/flash_eraseall.c @@ -11,10 +11,11 @@ */ //usage:#define flash_eraseall_trivial_usage -//usage: "[-jq] MTD_DEVICE" +//usage: "[-jNq] MTD_DEVICE" //usage:#define flash_eraseall_full_usage "\n\n" //usage: "Erase an MTD device\n" //usage: "\n -j Format the device for jffs2" +//usage: "\n -N Don't skip bad blocks" //usage: "\n -q Don't display progress messages" #include "libbb.h" @@ -22,9 +23,9 @@ #include <linux/jffs2.h> #define OPTION_J (1 << 0) -#define OPTION_Q (1 << 1) -#define IS_NAND (1 << 2) -#define BBTEST (1 << 3) +#define OPTION_N (1 << 1) +#define OPTION_Q (1 << 2) +#define IS_NAND (1 << 3) /* mtd/jffs2-user.h used to have this atrocity: extern int target_endian; @@ -71,7 +72,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) char *mtd_name; opt_complementary = "=1"; - flags = BBTEST | getopt32(argv, "jq"); + flags = getopt32(argv, "jNq"); mtd_name = argv[optind]; fd = xopen(mtd_name, O_RDWR); @@ -139,7 +140,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) for (erase.start = 0; erase.start < meminfo.size; erase.start += meminfo.erasesize) { - if (flags & BBTEST) { + if (!(flags & OPTION_N)) { int ret; loff_t offset = erase.start; @@ -154,7 +155,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) * types e.g. NOR */ if (errno == EOPNOTSUPP) { - flags &= ~BBTEST; + flags |= OPTION_N; if (flags & IS_NAND) bb_error_msg_and_die("bad block check not available"); } else { |