Diff for /embedtools/src/imgupd.c between versions 1.6.2.3 and 1.6.2.5

version 1.6.2.3, 2014/02/06 00:56:16 version 1.6.2.5, 2014/02/06 09:19:51
Line 92  EmptyStore(int img) Line 92  EmptyStore(int img)
         for (i = howmany(iSize, bufSize); i < howmany(imgSize, bufSize); i++)          for (i = howmany(iSize, bufSize); i < howmany(imgSize, bufSize); i++)
                 if ((wlen = write(img, buf, bufSize)) == -1 ||                   if ((wlen = write(img, buf, bufSize)) == -1 || 
                                 (wlen && wlen != bufSize)) {                                  (wlen && wlen != bufSize)) {
                        EERROR(EIO, "Error at chunk %d init %d bytes, "                        if (wlen == -1)
                                        "should be %u\n", i, wlen, bufSize);                                ESYSERR(0);
                         else
                                 EERROR(EIO, "Error at chunk %d init %d bytes, "
                                                 "should be %u\n", i, wlen, bufSize);
                         return -1;                          return -1;
                 } else                  } else
                         VERB(1) printf("+Written chunk #%d\n", i);                          VERB(1) printf("+Written chunk #%d\n", i);
Line 106  static int Line 109  static int
 FillStore(int img, int fd)  FillStore(int img, int fd)
 {  {
         register int i, j;          register int i, j;
        u_char buf[bufSize];        u_char *pos, buf[bufSize];
        ssize_t rlen, wlen;        ssize_t rlen, wlen, len;
   
         VERB(1) printf("Fill store %s from image file %s\n", imgName, imgFile);          VERB(1) printf("Fill store %s from image file %s\n", imgName, imgFile);
   
         for (j = 0, i = howmany(iSize, bufSize); i < howmany(imgSize, bufSize);           for (j = 0, i = howmany(iSize, bufSize); i < howmany(imgSize, bufSize); 
                         i++, j++) {                          i++, j++) {
                 memset(buf, 0, sizeof buf);                  memset(buf, 0, sizeof buf);
                rlen = read(fd, buf, bufSize);                for (len = bufSize, pos = buf; len > 0; len -= rlen, pos += rlen) {
                if (rlen == -1) {                        rlen = read(fd, pos, len);
                        ESYSERR(0);                        if (rlen == -1) {
                        return -1;                                ESYSERR(0);
                } else if (!rlen)                                return -1;
                        break;                        } else if (!rlen)
                else                                break;
                        VERB(1) printf("+Readed %d bytes for chunk #%d\n", rlen, j);                        else
                                 VERB(1) printf("+Readed %d bytes for chunk #%d\n", rlen, j);
                 }
   
                 wlen = write(img, buf, bufSize);                  wlen = write(img, buf, bufSize);
                 if (wlen == -1) {                  if (wlen == -1) {
Line 271  main(int argc, char **argv) Line 276  main(int argc, char **argv)
                         return 4;                          return 4;
                 }                  }
         } else {        /* GET */          } else {        /* GET */
                   iSize ^= iSize;
                 if (EmptyStore(fd) == -1) {                  if (EmptyStore(fd) == -1) {
                         if (fd > 2)                          if (fd > 2)
                                 close(fd);                                  close(fd);

Removed from v.1.6.2.3  
changed lines
  Added in v.1.6.2.5


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