]> www.infradead.org Git - mtd-utils.git/commitdiff
flash_{lock,unlock}: merge into one util
authorMike Frysinger <vapier@gentoo.org>
Mon, 6 Jun 2011 04:09:12 +0000 (00:09 -0400)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Mon, 6 Jun 2011 12:32:43 +0000 (15:32 +0300)
Now that the utils have equivalent functionality, merge the two source
code bases so they can't diverge in the future.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
flash_lock.c
flash_unlock.c

index 164eaa4ad4f39c377c472f6eac5c69396b14e6ca..33f76c7e11b5a96d617f7a46e4d2c82e471491d9 100644 (file)
@@ -1,83 +1,8 @@
 /*
- * FILE flash_lock.c
- *
- * This utility locks one or more sectors of flash device.
+ * flash_{lock,unlock}
  *
+ * utilities for locking/unlocking sectors of flash devices
  */
 
 #define PROGRAM_NAME "flash_lock"
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <time.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <string.h>
-
-#include <mtd/mtd-user.h>
-
-int main(int argc, char *argv[])
-{
-       int fd;
-       struct mtd_info_user mtdInfo;
-       struct erase_info_user mtdLockInfo;
-       int count;
-
-       /*
-        * Parse command line options
-        */
-       if (argc < 2) {
-               fprintf(stderr, "USAGE: %s <mtd device> <offset> <block count>\n", PROGRAM_NAME);
-               exit(1);
-       } else if (strncmp(argv[1], "/dev/mtd", 8) != 0) {
-               fprintf(stderr, "'%s' is not a MTD device.  Must specify mtd device: /dev/mtd?\n", argv[1]);
-               exit(1);
-       }
-
-       fd = open(argv[1], O_RDWR);
-       if (fd < 0) {
-               fprintf(stderr, "Could not open mtd device: %s\n", argv[1]);
-               exit(1);
-       }
-
-       if (ioctl(fd, MEMGETINFO, &mtdInfo)) {
-               fprintf(stderr, "Could not get MTD device info from %s\n", argv[1]);
-               close(fd);
-               exit(1);
-       }
-
-       if (argc > 2)
-               mtdLockInfo.start = strtol(argv[2], NULL, 0);
-       else
-               mtdLockInfo.start = 0;
-       if (mtdLockInfo.start > mtdInfo.size) {
-               fprintf(stderr, "%#x is beyond device size %#x\n",
-                       mtdLockInfo.start, mtdInfo.size);
-               close(fd);
-               exit(1);
-       }
-
-       if (argc > 3) {
-               count = strtol(argv[3], NULL, 0);
-               if (count == -1)
-                       mtdLockInfo.length = mtdInfo.size - mtdInfo.erasesize;
-               else
-                       mtdLockInfo.length = mtdInfo.erasesize * count;
-       } else {
-               mtdLockInfo.length = mtdInfo.size - mtdInfo.erasesize;
-       }
-       if (mtdLockInfo.start + mtdLockInfo.length > mtdInfo.size) {
-               fprintf(stderr, "lock range is more than device supports\n");
-               exit(1);
-       }
-
-       if (ioctl(fd, MEMLOCK, &mtdLockInfo)) {
-               fprintf(stderr, "Could not lock MTD device: %s\n", argv[1]);
-               close(fd);
-               exit(1);
-       }
-
-       return 0;
-}
+#include "flash_unlock.c"
index 690825d817613a08efad41ee2c960195f7695344..759a5bc29ecb46bb9b7874d3d5afa9da9a45d0eb 100644 (file)
@@ -1,11 +1,17 @@
 /*
- * FILE flash_unlock.c
- *
- * This utility unlock all sectors of flash device.
+ * flash_{lock,unlock}
  *
+ * utilities for locking/unlocking sectors of flash devices
  */
 
+#ifndef PROGRAM_NAME
 #define PROGRAM_NAME "flash_unlock"
+#define FLASH_MSG    "unlock"
+#define FLASH_UNLOCK 1
+#else
+#define FLASH_MSG    "lock"
+#define FLASH_UNLOCK 0
+#endif
 
 #include <unistd.h>
 #include <stdlib.h>
@@ -20,7 +26,7 @@
 
 int main(int argc, char *argv[])
 {
-       int fd;
+       int fd, request;
        struct mtd_info_user mtdInfo;
        struct erase_info_user mtdLockInfo;
        int count;
@@ -69,12 +75,14 @@ int main(int argc, char *argv[])
                mtdLockInfo.length = mtdInfo.size - mtdInfo.erasesize;
        }
        if (mtdLockInfo.start + mtdLockInfo.length > mtdInfo.size) {
-               fprintf(stderr, "unlock range is more than device supports\n");
+               fprintf(stderr, "%s range is more than device supports\n", FLASH_MSG);
                exit(1);
        }
 
-       if (ioctl(fd, MEMUNLOCK, &mtdLockInfo)) {
-               fprintf(stderr, "Could not unlock MTD device: %s\n", argv[1]);
+       request = FLASH_UNLOCK ? MEMUNLOCK : MEMLOCK;
+       if (ioctl(fd, request, &mtdLockInfo)) {
+               fprintf(stderr, "Could not %s MTD device: %s\n",
+                       FLASH_MSG, argv[1]);
                close(fd);
                exit(1);
        }