]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
imagetool: make the image_save_datafile() available to all image types
authorGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Thu, 15 Jan 2015 04:48:06 +0000 (02:48 -0200)
committerTom Rini <trini@ti.com>
Thu, 29 Jan 2015 18:38:41 +0000 (13:38 -0500)
Move the image_save_datafile() function from an U-Multi specific file
(default_image.c) to a file common to all image types (image.c). And rename it
to genimg_save_datafile(), to make clear it is useful for any image type.

Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
common/image.c
tools/default_image.c
tools/imagetool.c
tools/imagetool.h

index ad7a46d08d827fb18f7005132342d19c7d97cf5d..a911aa9b4d128227520fba77555c4879e5e93ff3 100644 (file)
@@ -756,7 +756,7 @@ int genimg_get_format(const void *img_addr)
  * genimg_get_image - get image from special storage (if necessary)
  * @img_addr: image start address
  *
- * genimg_get_image() checks if provided image start adddress is located
+ * genimg_get_image() checks if provided image start address is located
  * in a dataflash storage. If so, image is moved to a system RAM memory.
  *
  * returns:
index 0a0792e503eadefe058f51db90c5fe98fcc2e1e2..a92fa8015b1eafdf84c857cc4dcdb0d174ad2d60 100644 (file)
@@ -117,32 +117,6 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd,
        image_set_hcrc(hdr, checksum);
 }
 
-static int image_save_datafile(struct image_tool_params *params,
-                              ulong file_data, ulong file_len)
-{
-       int dfd;
-       const char *datafile = params->outfile;
-
-       dfd = open(datafile, O_RDWR | O_CREAT | O_TRUNC | O_BINARY,
-                  S_IRUSR | S_IWUSR);
-       if (dfd < 0) {
-               fprintf(stderr, "%s: Can't open \"%s\": %s\n",
-                       params->cmdname, datafile, strerror(errno));
-               return -1;
-       }
-
-       if (write(dfd, (void *)file_data, file_len) != (ssize_t)file_len) {
-               fprintf(stderr, "%s: Write error on \"%s\": %s\n",
-                       params->cmdname, datafile, strerror(errno));
-               close(dfd);
-               return -1;
-       }
-
-       close(dfd);
-
-       return 0;
-}
-
 static int image_extract_datafile(void *ptr, struct image_tool_params *params)
 {
        const image_header_t *hdr = (const image_header_t *)ptr;
@@ -170,7 +144,7 @@ static int image_extract_datafile(void *ptr, struct image_tool_params *params)
        }
 
        /* save the "data file" into the file system */
-       return image_save_datafile(params, file_data, file_len);
+       return imagetool_save_datafile(params->outfile, file_data, file_len);
 }
 
 /*
index e4de7af9845753eda63045d2da1ea5a30111f3af..a25b86b36ebafa3baaa43344a1ab3c08033c033e 100644 (file)
@@ -113,3 +113,30 @@ int imagetool_verify_print_header(
 
        return retval;
 }
+
+int imagetool_save_datafile(
+       const char *file_name,
+       ulong file_data,
+       ulong file_len)
+{
+       int dfd;
+
+       dfd = open(file_name, O_RDWR | O_CREAT | O_TRUNC | O_BINARY,
+                  S_IRUSR | S_IWUSR);
+       if (dfd < 0) {
+               fprintf(stderr, "Can't open \"%s\": %s\n",
+                       file_name, strerror(errno));
+               return -1;
+       }
+
+       if (write(dfd, (void *)file_data, file_len) != (ssize_t)file_len) {
+               fprintf(stderr, "Write error on \"%s\": %s\n",
+                       file_name, strerror(errno));
+               close(dfd);
+               return -1;
+       }
+
+       close(dfd);
+
+       return 0;
+}
index eb2750cf69eca6c0b079f63cf30e304c3e009ed8..44d9380995b9a28e5b99c85cc3a66d8735f12468 100644 (file)
@@ -181,6 +181,23 @@ int imagetool_verify_print_header(
        struct image_type_params *tparams,
        struct image_tool_params *params);
 
+/**
+ * imagetool_save_datafile - store data into a file
+ * @file_name: name of the destination file
+ * @file_data: data to be written
+ * @file_len: the amount of data to store
+ *
+ * imagetool_save_datafile() store file_len bytes of data pointed by file_data
+ * into the file name by file_name.
+ *
+ * returns:
+ *     zero in case of success or a negative value if fail.
+ */
+int imagetool_save_datafile(
+       const char *file_name,
+       ulong file_data,
+       ulong file_len);
+
 /*
  * There is a c file associated with supported image type low level code
  * for ex. default_image.c, fit_image.c