Fix showhostkey script (#444)
[openwrt.git] / package / mtd / src / mtd.c
index 1e9d316..80d09ab 100644 (file)
@@ -40,7 +40,7 @@
 #include <sys/reboot.h>
 #include <string.h>
 
-#include <linux/mtd/mtd.h>
+#include "mtd.h"
 
 #define TRX_MAGIC       0x30524448      /* "HDR0" */
 #define BUFSIZE (16 * 1024)
@@ -64,8 +64,9 @@ char buf[BUFSIZE];
 int buflen;
 int quiet;
 
+#ifdef target_brcm
 int
-image_check_bcom(int imagefd, const char *mtd)
+image_check_brcm(int imagefd, const char *mtd)
 {
        struct trx_header *trx = (struct trx_header *) buf;
        struct mtd_info_user mtdInfo;
@@ -121,6 +122,7 @@ image_check_bcom(int imagefd, const char *mtd)
        close(fd);
        return 1;
 }
+#endif /* target_brcm */
 
 int
 image_check(int imagefd, const char *mtd)
@@ -130,23 +132,9 @@ image_check(int imagefd, const char *mtd)
        char *c;
        FILE *f;
 
-       systype = SYSTYPE_UNKNOWN;
-       f = fopen("/proc/cpuinfo", "r");
-       while (!feof(f) && (fgets(buf, BUFSIZE - 1, f) != NULL)) {
-               if ((strncmp(buf, "system type", 11) == 0) && (c = strchr(buf, ':'))) {
-                       c += 2;
-                       if (strncmp(c, "Broadcom BCM947XX", 17) == 0)
-                               systype = SYSTYPE_BROADCOM;
-               }
-       }
-       fclose(f);
-       
-       switch(systype) {
-               case SYSTYPE_BROADCOM:
-                       return image_check_bcom(imagefd, mtd);
-               default:
-                       return 1;
-       }
+#ifdef target_brcm
+       return image_check_brcm(imagefd, mtd);
+#endif
 }
 
 int mtd_check(char *mtd)
@@ -247,11 +235,8 @@ mtd_erase(const char *mtd)
                 mtdEraseInfo.start += mtdInfo.erasesize) {
                
                ioctl(fd, MEMUNLOCK, &mtdEraseInfo);
-               if(ioctl(fd, MEMERASE, &mtdEraseInfo)) {
-                       fprintf(stderr, "Could not erase MTD device: %s\n", mtd);
-                       close(fd);
-                       exit(1);
-               }
+               if(ioctl(fd, MEMERASE, &mtdEraseInfo))
+                       fprintf(stderr, "Failed to erase block on %s at 0x%x\n", mtd, mtdEraseInfo.start);
        }               
 
        close(fd);
This page took 0.024365 seconds and 4 git commands to generate.