
hdr_size variable is initialized at the begining of image creation algorithm instead of reading it each time. This facilitate to use the common code for other image type implementations for ex. kwbimage
Signed-off-by: Prafulla Wadaskar prafulla@marvell.com --- hdr_size declaration moved at the top
tools/mkimage.c | 18 ++++++++---------- 1 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/tools/mkimage.c b/tools/mkimage.c index 967fe9a..40363a9 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -66,6 +66,7 @@ main (int argc, char **argv) struct stat sbuf; unsigned char *ptr; char *name = ""; + int hdr_size;
cmdname = *argv;
@@ -250,9 +251,9 @@ NXTARG: ; * * write dummy header, to be fixed later */ - memset (hdr, 0, image_get_header_size ()); - - if (write(ifd, hdr, image_get_header_size ()) != image_get_header_size ()) { + hdr_size = image_get_header_size (); + memset (hdr, 0, hdr_size); + if (write(ifd, hdr, hdr_size) != hdr_size) { fprintf (stderr, "%s: Write error on %s: %s\n", cmdname, imagefile, strerror(errno)); exit (EXIT_FAILURE); @@ -339,14 +340,12 @@ NXTARG: ; hdr = (image_header_t *)ptr;
checksum = crc32 (0, - (const char *)(ptr + image_get_header_size ()), - sbuf.st_size - image_get_header_size () - ); - + (const char *)(ptr + hdr_size), + sbuf.st_size - hdr_size); /* Build new header */ image_set_magic (hdr, IH_MAGIC); image_set_time (hdr, sbuf.st_mtime); - image_set_size (hdr, sbuf.st_size - image_get_header_size ()); + image_set_size (hdr, sbuf.st_size - hdr_size); image_set_load (hdr, addr); image_set_ep (hdr, ep); image_set_dcrc (hdr, checksum); @@ -354,10 +353,9 @@ NXTARG: ; image_set_arch (hdr, opt_arch); image_set_type (hdr, opt_type); image_set_comp (hdr, opt_comp); - image_set_name (hdr, name);
- checksum = crc32 (0, (const char *)hdr, image_get_header_size ()); + checksum = crc32 (0, (const char *)hdr, hdr_size);
image_set_hcrc (hdr, checksum);