Diff for /embedtools/src/imgupd.c between versions 1.1.2.1 and 1.1.2.2

version 1.1.2.1, 2014/02/05 12:37:31 version 1.1.2.2, 2014/02/05 12:59:55
Line 26  EmptyStore(int img) Line 26  EmptyStore(int img)
         u_char buf[IMGBLOCK_SIZE];          u_char buf[IMGBLOCK_SIZE];
         ssize_t wlen;          ssize_t wlen;
   
           VERB(1) printf("Erase store %s\n", imgName);
   
         memset(buf, 0, sizeof buf);          memset(buf, 0, sizeof buf);
         for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++)          for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++)
                 if ((wlen = write(img, buf, sizeof buf)) == -1 ||                   if ((wlen = write(img, buf, sizeof buf)) == -1 || 
                                 wlen != sizeof buf) {                                  wlen != sizeof buf) {
                        printf("Error:: at chunk %d init %d bytes, should be %u",                         EERROR(EIO, "Error at chunk %d init %d bytes, should be %u\n", 
                                         i, wlen, sizeof buf);                                          i, wlen, sizeof buf);
                         return -1;                          return -1;
                 } else                  } else
Line 40  EmptyStore(int img) Line 42  EmptyStore(int img)
         return iSize;          return iSize;
 }  }
   
   static int
   FillStore(int img, int fd)
   {
           register int i;
           u_char buf[IMGBLOCK_SIZE];
           ssize_t rlen, wlen;
   
           VERB(1) printf("Fill store %s from image file %s\n", imgName, imgFile);
   
           for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++) {
                   memset(buf, 0, sizeof buf);
                   rlen = read(fd, buf, sizeof buf);
                   if (rlen == -1) {
                           ESYSERR(0);
                           return -1;
                   } else if (!rlen)
                           break;
                   else
                           VERB(1) printf("+Readed %d bytes for chunk #%d\n", rlen, i);
   
                   wlen = write(img, buf, rlen);
                   if (wlen == -1) {
                           ESYSERR(0);
                           return -1;
                   } else if (!wlen || wlen != rlen) {
                           EERROR(EIO, "Readed %d bytes are not equal to written %d bytes\n", 
                                           rlen, wlen);
                   } else
                           VERB(1) printf("+Written %d bytes at chunk #%d\n", wlen, i);
           }
   
           return 0;
   }
   
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
Line 107  main(int argc, char **argv) Line 143  main(int argc, char **argv)
                 return 3;                  return 3;
         } else          } else
                 lseek(img, 0, SEEK_SET);                  lseek(img, 0, SEEK_SET);
   
           if (FillStore(img, fd) == -1) {
                   close(fd);
                   close(img);
                   unlink(imgName);
                   return 4;
           }
   
         close(img);          close(img);
         close(fd);          close(fd);

Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>