summaryrefslogtreecommitdiff
path: root/flash_info.c
diff options
context:
space:
mode:
Diffstat (limited to 'flash_info.c')
-rw-r--r--flash_info.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/flash_info.c b/flash_info.c
index f8b7efa..d4887da 100644
--- a/flash_info.c
+++ b/flash_info.c
@@ -12,24 +12,31 @@
#include <sys/ioctl.h>
#include <sys/mount.h>
+#include "common.h"
#include <mtd/mtd-user.h>
+static void usage(int status)
+{
+ fprintf(status ? stderr : stdout,
+ "Usage: %s <device>\n",
+ PROGRAM_NAME);
+ exit(status);
+}
+
int main(int argc, char *argv[])
{
int regcount;
int fd;
- if (1 >= argc) {
- fprintf(stderr, "Usage: %s device\n", PROGRAM_NAME);
- return 16;
- }
+ if (argc < 2)
+ usage(1);
+ if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))
+ usage(0);
/* Open and size the device */
fd = open(argv[1], O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, "File open error\n");
- return 8;
- }
+ if (fd < 0)
+ sys_errmsg_die("could not open: %s", argv[1]);
if (ioctl(fd, MEMGETREGIONCOUNT, &regcount) == 0) {
int i;
@@ -42,8 +49,8 @@ int main(int argc, char *argv[])
"has 0x%x blocks\n", i, reginfo.offset,
reginfo.erasesize, reginfo.numblocks);
} else {
- printf("Strange can not read region %d from a %d region device\n",
- i, regcount);
+ warnmsg("can not read region %d from a %d region device",
+ i, regcount);
}
}
}