Diff for /fwmaker/src/cmds.c between versions 1.1 and 1.2

version 1.1, 2026/01/04 18:08:18 version 1.2, 2026/01/04 18:52:50
Line 10  cmd_Show(void *lb, int idx, char **args) Line 10  cmd_Show(void *lb, int idx, char **args)
   
         printf("FW Image file: %s\n", image);          printf("FW Image file: %s\n", image);
         printf("FW Image size: %zu\n", imgsiz);          printf("FW Image size: %zu\n", imgsiz);
        printf("FW Image descriptor: %d\n\n", imgfd);        printf("FW Image descriptor: %d\n", imgfd);
         printf("FW Image empty byte: 0x%02x\n\n", fillCh);
   
         printf("MTD loaded: 0x%zx\n", mtd.mtd_fsiz);          printf("MTD loaded: 0x%zx\n", mtd.mtd_fsiz);
         printf("MTD file: %s\n", mtd.mtd_file);          printf("MTD file: %s\n", mtd.mtd_file);
Line 228  cmd_Mtd(void *lb, int idx, char **args) Line 229  cmd_Mtd(void *lb, int idx, char **args)
 int  int
 cmd_Image(void *lb, int idx, char **args)  cmd_Image(void *lb, int idx, char **args)
 {  {
           u_char buf[BUFSIZ];
           int wlen;
           size_t siz;
   
         ETRACE();          ETRACE();
   
         args++;          args++;
Line 269  cmd_Image(void *lb, int idx, char **args) Line 274  cmd_Image(void *lb, int idx, char **args)
                         return -1;                          return -1;
                 }                  }
                 if (imageOpen(O_CREAT) > 2) {                  if (imageOpen(O_CREAT) > 2) {
                        imgsiz = (size_t) strtol(args[1], NULL, 0);                        memset(buf, fillCh, sizeof buf);
                         imgsiz = siz = (size_t) strtol(args[1], NULL, 0);
                         if (ftruncate(imgfd, imgsiz) == -1) {                          if (ftruncate(imgfd, imgsiz) == -1) {
                                 ESYSERR(0);                                  ESYSERR(0);
                                 imageClose();                                  imageClose();
                                 unlink(image);                                  unlink(image);
                                 return -1;                                  return -1;
                        } else                        }
                                EVERBOSE(1, "Image '%s' created with size=%lu\n", image, imgsiz);                        lseek(imgfd, 0, SEEK_SET);
                         while (siz > 0) {
                                 wlen = MIN(siz, sizeof buf);
                                 wlen = write(imgfd, buf, wlen);
                                 if (wlen < 1) {
                                         ESYSERR(0);
                                         imageClose();
                                         unlink(image);
                                         return -1;
                                 } else
                                         siz -= wlen;
                         }
                         EVERBOSE(1, "Image '%s' created successful with size=%lu/remain=#%lu bytes\n",
                                         image, imgsiz, siz);
                 }                  }
         } else {          } else {
                 printf("Error:: unknown command '%s'\n", args[0]);                  printf("Error:: unknown command '%s'\n", args[0]);
                 return -1;                  return -1;
         }          }
   
           return 0;
   }
   
   int
   cmd_FillCh(void *lb, int idx, char **args)
   {
           char str[STRSIZ];
   
           ETRACE();
   
           args++;
           if (!args[0]) {
                   if (!dialog(lb, "Byte=", str, sizeof str))
                           fillCh = (u_char) strtol(str, NULL, 0);
                   else
                           return -1;
           } else
                   fillCh = (u_char) strtol(args[0], NULL, 0);
   
         return 0;          return 0;
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.2


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