[U-Boot-Users] [PATCH] Memory footprint optimizations

As suggested by Wolfgang Denk: - remove wrappers for image printing function - merge getenv_verify and getenv_autostart into one parametrized function
Signed-off-by: Bartlomiej Sieka tur@semihalf.com ---
board/mpl/common/common_util.c | 2 +- board/siemens/common/fpga.c | 2 +- common/cmd_autoscript.c | 2 +- common/cmd_bootm.c | 14 +++++++------ common/cmd_doc.c | 4 ++-- common/cmd_fdc.c | 4 ++-- common/cmd_ide.c | 4 ++-- common/cmd_nand.c | 8 ++++--- common/cmd_scsi.c | 4 ++-- common/cmd_usb.c | 4 ++-- common/cmd_ximg.c | 4 ++-- common/image.c | 43 ++++++++-------------------------------- include/image.h | 9 +++----- lib_ppc/bootm.c | 2 +- tools/mkimage.c | 6 +++--- 15 files changed, 42 insertions(+), 70 deletions(-)
diff --git a/board/mpl/common/common_util.c b/board/mpl/common/common_util.c index 785d204..5bbd0d3 100644 --- a/board/mpl/common/common_util.c +++ b/board/mpl/common/common_util.c @@ -192,7 +192,7 @@ mpl_prg_image(uchar *ld_addr) puts("Bad Magic Number\n"); return 1; } - image_print_contents (hdr); + image_print_contents (hdr, " "); if (!image_check_os (hdr, IH_OS_U_BOOT)) { puts("No U-Boot Image\n"); return 1; diff --git a/board/siemens/common/fpga.c b/board/siemens/common/fpga.c index 48c1850..ac0022e 100644 --- a/board/siemens/common/fpga.c +++ b/board/siemens/common/fpga.c @@ -160,7 +160,7 @@ static int fpga_load (fpga_t* fpga, ulong addr, int checkall) data = (uchar*)image_get_data (hdr); len = image_get_data_size (hdr);
- verify = getenv_verify (); + verify = getenv_yesno ("verify"); if (verify) { if (!image_check_dcrc (hdr)) { strcpy (msg, "Bad Image Data CRC"); diff --git a/common/cmd_autoscript.c b/common/cmd_autoscript.c index 1a37b90..932f638 100644 --- a/common/cmd_autoscript.c +++ b/common/cmd_autoscript.c @@ -65,7 +65,7 @@ autoscript (ulong addr, const char *fit_uname) size_t fit_len; #endif
- verify = getenv_verify (); + verify = getenv_yesno ("verify");
switch (genimg_get_format ((void *)addr)) { case IMAGE_FORMAT_LEGACY: diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 9e5ce4b..94988d9 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -133,8 +133,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) struct lmb lmb;
memset ((void *)&images, 0, sizeof (images)); - images.verify = getenv_verify(); - images.autostart = getenv_autostart(); + images.verify = getenv_yesno ("verify"); + images.autostart = getenv_yesno ("autostart"); images.lmb = &lmb;
lmb_init(&lmb); @@ -377,7 +377,7 @@ static image_header_t *image_get_kernel (ulong img_addr, int verify) }
show_boot_progress (3); - image_print_contents (hdr); + image_print_contents (hdr, " ");
if (verify) { puts (" Verifying Checksum ... "); @@ -714,7 +714,7 @@ static int image_info (ulong addr) return 1; }
- image_print_contents (hdr); + image_print_contents (hdr, " ");
puts (" Verifying Checksum ... "); if (!image_check_dcrc (hdr)) { @@ -732,7 +732,7 @@ static int image_info (ulong addr) return 1; }
- fit_print_contents (hdr); + fit_print_contents (hdr, " "); return 0; #endif default: @@ -781,7 +781,7 @@ int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) goto next_sector;
printf ("Legacy Image at %08lX:\n", (ulong)hdr); - image_print_contents (hdr); + image_print_contents (hdr, " ");
puts (" Verifying Checksum ... "); if (!image_check_dcrc (hdr)) { @@ -796,7 +796,7 @@ int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) goto next_sector;
printf ("FIT Image at %08lX:\n", (ulong)hdr); - fit_print_contents (hdr); + fit_print_contents (hdr, " "); break; #endif default: diff --git a/common/cmd_doc.c b/common/cmd_doc.c index 83aba37..1b645e5 100644 --- a/common/cmd_doc.c +++ b/common/cmd_doc.c @@ -268,7 +268,7 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) case IMAGE_FORMAT_LEGACY: hdr = (image_header_t *)addr;
- image_print_contents (hdr); + image_print_contents (hdr, " ");
cnt = image_get_image_size (hdr); break; @@ -305,7 +305,7 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c index bf28370..2097a54 100644 --- a/common/cmd_fdc.c +++ b/common/cmd_fdc.c @@ -842,7 +842,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) switch (genimg_get_format ((void *)addr)) { case IMAGE_FORMAT_LEGACY: hdr = (image_header_t *)addr; - image_print_contents (hdr); + image_print_contents (hdr, " ");
imsize = image_get_image_size (hdr); break; @@ -882,7 +882,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 8ace970..c2ba996 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -462,7 +462,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) } show_boot_progress (50);
- image_print_contents (hdr); + image_print_contents (hdr, " ");
cnt = image_get_image_size (hdr); break; @@ -501,7 +501,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 7b1f830..d92c554 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -520,7 +520,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand, hdr = (image_header_t *)addr;
show_boot_progress (57); - image_print_contents (hdr); + image_print_contents (hdr, " ");
cnt = image_get_image_size (hdr); break; @@ -566,7 +566,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand, #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ @@ -1013,7 +1013,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) switch (genimg_get_format ((void *)addr)) { case IMAGE_FORMAT_LEGACY: hdr = (image_header_t *)addr; - image_print_contents (hdr); + image_print_contents (hdr, " ");
cnt = image_get_image_size (hdr); cnt -= SECTORSIZE; @@ -1051,7 +1051,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index f49531e..bc3dedb 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -285,7 +285,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return 1; }
- image_print_contents (hdr); + image_print_contents (hdr, " "); cnt = image_get_image_size (hdr); break; #if defined(CONFIG_FIT) @@ -318,7 +318,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_usb.c b/common/cmd_usb.c index 23413b5..62dead5 100644 --- a/common/cmd_usb.c +++ b/common/cmd_usb.c @@ -397,7 +397,7 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return 1; }
- image_print_contents (hdr); + image_print_contents (hdr, " ");
cnt = image_get_image_size (hdr); break; @@ -431,7 +431,7 @@ int do_usbboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #if defined(CONFIG_FIT) /* This cannot be done earlier, we need complete FIT image in RAM first */ if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) - fit_print_contents ((const void *)addr); + fit_print_contents ((const void *)addr, " "); #endif
/* Loading ok, update default load address */ diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c index 7916fc1..9e94e1e 100644 --- a/common/cmd_ximg.c +++ b/common/cmd_ximg.c @@ -51,7 +51,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) size_t fit_len; #endif
- verify = getenv_verify (); + verify = getenv_yesno ("verify");
if (argc > 1) { addr = simple_strtoul(argv[1], NULL, 16); @@ -83,7 +83,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) return 1; } #ifdef DEBUG - image_print_contents (hdr); + image_print_contents (hdr, " "); #endif
if (!image_check_type (hdr, IH_TYPE_MULTI)) { diff --git a/common/image.c b/common/image.c index f04826a..35356bd 100644 --- a/common/image.c +++ b/common/image.c @@ -316,18 +316,18 @@ static void image_print_type (image_header_t *hdr) }
/** - * __image_print_contents - prints out the contents of the legacy format image + * image_print_contents - prints out the contents of the legacy format image * @hdr: pointer to the legacy format image header * @p: pointer to prefix string * - * __image_print_contents() formats a multi line legacy image contents description. + * image_print_contents() formats a multi line legacy image contents description. * The routine prints out all header fields followed by the size/offset data * for MULTI/SCRIPT images. * * returns: * no returned results */ -static void __image_print_contents (image_header_t *hdr, const char *p) +void image_print_contents (image_header_t *hdr, const char *p) { printf ("%sImage Name: %.*s\n", p, IH_NMLEN, image_get_name (hdr)); #if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE) || defined(USE_HOSTCC) @@ -366,15 +366,6 @@ static void __image_print_contents (image_header_t *hdr, const char *p) } }
-inline void image_print_contents (image_header_t *hdr) -{ - __image_print_contents (hdr, " "); -} - -inline void image_print_contents_noindent (image_header_t *hdr) -{ - __image_print_contents (hdr, ""); -}
#ifndef USE_HOSTCC /** @@ -413,7 +404,7 @@ static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, }
show_boot_progress (10); - image_print_contents (rd_hdr); + image_print_contents (rd_hdr, " ");
if (verify) { puts(" Verifying Checksum ... "); @@ -444,15 +435,9 @@ static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, /* Shared dual-format routines */ /*****************************************************************************/ #ifndef USE_HOSTCC -int getenv_verify (void) +int getenv_yesno (char *var) { - char *s = getenv ("verify"); - return (s && (*s == 'n')) ? 0 : 1; -} - -int getenv_autostart (void) -{ - char *s = getenv ("autostart"); + char *s = getenv (var); return (s && (*s == 'n')) ? 0 : 1; }
@@ -1265,18 +1250,18 @@ static void fit_get_debug (const void *fit, int noffset, }
/** - * __fit_print_contents - prints out the contents of the FIT format image + * fit_print_contents - prints out the contents of the FIT format image * @fit: pointer to the FIT format image header * @p: pointer to prefix string * - * __fit_print_contents() formats a multi line FIT image contents description. + * fit_print_contents() formats a multi line FIT image contents description. * The routine prints out FIT image properties (root node level) follwed by * the details of each component image. * * returns: * no returned results */ -static void __fit_print_contents (const void *fit, const char *p) +void fit_print_contents (const void *fit, const char *p) { char *desc; char *uname; @@ -1361,16 +1346,6 @@ static void __fit_print_contents (const void *fit, const char *p) } }
-inline void fit_print_contents (const void *fit) -{ - __fit_print_contents (fit, " "); -} - -inline void fit_print_contents_noindent (const void *fit) -{ - __fit_print_contents (fit, ""); -} - /** * fit_image_print - prints out the FIT component image details * @fit: pointer to the FIT format image header diff --git a/include/image.h b/include/image.h index 36143e2..dbcee1c 100644 --- a/include/image.h +++ b/include/image.h @@ -363,8 +363,7 @@ int image_check_hcrc (image_header_t *hdr); int image_check_dcrc (image_header_t *hdr); #ifndef USE_HOSTCC int image_check_dcrc_wd (image_header_t *hdr, ulong chunksize); -int getenv_verify (void); -int getenv_autostart (void); +int getenv_yesno (char *var); ulong getenv_bootm_low(void); ulong getenv_bootm_size(void); void memmove_wd (void *to, void *from, size_t len, ulong chunksz); @@ -391,8 +390,7 @@ ulong image_multi_count (image_header_t *hdr); void image_multi_getimg (image_header_t *hdr, ulong idx, ulong *data, ulong *len);
-inline void image_print_contents (image_header_t *hdr); -inline void image_print_contents_noindent (image_header_t *hdr); +void image_print_contents (image_header_t *hdr, const char *p);
#ifndef USE_HOSTCC static inline int image_check_target_arch (image_header_t *hdr) @@ -466,8 +464,7 @@ inline int fit_parse_conf (const char *spec, ulong addr_curr, inline int fit_parse_subimage (const char *spec, ulong addr_curr, ulong *addr, const char **image_name);
-inline void fit_print_contents (const void *fit); -inline void fit_print_contents_noindent (const void *fit); +void fit_print_contents (const void *fit, const char *p); void fit_image_print (const void *fit, int noffset, const char *p); void fit_image_print_hash (const void *fit, int noffset, const char *p);
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index 2901607..7ba0138 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -319,7 +319,7 @@ static image_header_t *image_get_fdt (ulong fdt_addr) { image_header_t *fdt_hdr = (image_header_t *)fdt_addr;
- image_print_contents (fdt_hdr); + image_print_contents (fdt_hdr, " ");
puts (" Verifying Checksum ... "); if (!image_check_hcrc (fdt_hdr)) { diff --git a/tools/mkimage.c b/tools/mkimage.c index 6e1ff2b..8a55793 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -229,10 +229,10 @@ NXTARG: ; if (fdt_check_header (ptr)) { /* old-style image */ image_verify_header ((char *)ptr, sbuf.st_size); - image_print_contents_noindent ((image_header_t *)ptr); + image_print_contents ((image_header_t *)ptr, ""); } else { /* FIT image */ - fit_print_contents_noindent (ptr); + fit_print_contents (ptr, ""); }
(void) munmap((void *)ptr, sbuf.st_size); @@ -363,7 +363,7 @@ NXTARG: ;
image_set_hcrc (hdr, checksum);
- image_print_contents_noindent (hdr); + image_print_contents (hdr, "");
(void) munmap((void *)ptr, sbuf.st_size);

In message 20080409213733.5006.37998.stgit@pollux.denx.de you wrote:
As suggested by Wolfgang Denk:
- remove wrappers for image printing function
- merge getenv_verify and getenv_autostart into one parametrized function
...
- image_print_contents (hdr);
- image_print_contents (hdr, " ");
Now we have some 20+ calls of
image_print_contents (hdr, " ");
plus two calls of
image_print_contents (hdr, "");
Maybe there is some clever way to get rid of this second argument?
Best regards,
Wolfgang Denk

Wolfgang Denk wrote:
In message 20080409213733.5006.37998.stgit@pollux.denx.de you wrote:
As suggested by Wolfgang Denk:
- remove wrappers for image printing function
- merge getenv_verify and getenv_autostart into one parametrized function
...
- image_print_contents (hdr);
- image_print_contents (hdr, " ");
Now we have some 20+ calls of
image_print_contents (hdr, " ");
plus two calls of
image_print_contents (hdr, "");
Maybe there is some clever way to get rid of this second argument?
We could use the following two facts: 1. the image contents are printed with only two indentations: 0 or 3 spaces, 2. indentation with 3 spaces is used in U-Boot, indentation with 0 spaces is used in mkimage.
With the following change we could then drop the second argument altogether:
--- a/common/image.c +++ b/common/image.c @@ -301,8 +301,16 @@ static void image_print_type (image_header_t *hdr) * returns: * no returned results */ -void image_print_contents (image_header_t *hdr, const char *p) +void image_print_contents (image_header_t *hdr) { + const char *p; + +#ifdef USE_HOSTCC + p = ""; +#else + p = " "; +#endif +
If the above is what is wanted, I'll prepare a patch -- comments are welcome.
Regards, Bartlomiej

In message 480353D3.4090607@semihalf.com you wrote:
We could use the following two facts:
- the image contents are printed with only two indentations: 0 or 3 spaces,
- indentation with 3 spaces is used in U-Boot, indentation with 0
spaces is used in mkimage.
With the following change we could then drop the second argument altogether:
Ah! Excellent.
+#ifdef USE_HOSTCC
p = "";
+#else
p = " ";
+#endif
If the above is what is wanted, I'll prepare a patch -- comments are welcome.
Yes, please.
Best regards,
Wolfgang Denk

As suggested by Wolfgang Denk: - image printing functions: - remove wrappers - remove indentation prefix from functions' signatures - merge getenv_verify and getenv_autostart into one parametrized function
Signed-off-by: Bartlomiej Sieka tur@semihalf.com ---
board/siemens/common/fpga.c | 2 +- common/cmd_autoscript.c | 2 +- common/cmd_bootm.c | 4 ++- common/cmd_ximg.c | 2 +- common/image.c | 56 ++++++++++++++++++------------------------- include/image.h | 9 ++----- tools/mkimage.c | 6 ++--- 7 files changed, 34 insertions(+), 47 deletions(-)
diff --git a/board/siemens/common/fpga.c b/board/siemens/common/fpga.c index 48c1850..ac0022e 100644 --- a/board/siemens/common/fpga.c +++ b/board/siemens/common/fpga.c @@ -160,7 +160,7 @@ static int fpga_load (fpga_t* fpga, ulong addr, int checkall) data = (uchar*)image_get_data (hdr); len = image_get_data_size (hdr);
- verify = getenv_verify (); + verify = getenv_yesno ("verify"); if (verify) { if (!image_check_dcrc (hdr)) { strcpy (msg, "Bad Image Data CRC"); diff --git a/common/cmd_autoscript.c b/common/cmd_autoscript.c index 1a37b90..932f638 100644 --- a/common/cmd_autoscript.c +++ b/common/cmd_autoscript.c @@ -65,7 +65,7 @@ autoscript (ulong addr, const char *fit_uname) size_t fit_len; #endif
- verify = getenv_verify (); + verify = getenv_yesno ("verify");
switch (genimg_get_format ((void *)addr)) { case IMAGE_FORMAT_LEGACY: diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 3a0c83d..0722641 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -133,8 +133,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) struct lmb lmb;
memset ((void *)&images, 0, sizeof (images)); - images.verify = getenv_verify(); - images.autostart = getenv_autostart(); + images.verify = getenv_yesno ("verify"); + images.autostart = getenv_yesno ("autostart"); images.lmb = &lmb;
lmb_init(&lmb); diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c index 7916fc1..2753389 100644 --- a/common/cmd_ximg.c +++ b/common/cmd_ximg.c @@ -51,7 +51,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) size_t fit_len; #endif
- verify = getenv_verify (); + verify = getenv_yesno ("verify");
if (argc > 1) { addr = simple_strtoul(argv[1], NULL, 16); diff --git a/common/image.c b/common/image.c index d218f2f..9b1108f 100644 --- a/common/image.c +++ b/common/image.c @@ -316,19 +316,27 @@ static void image_print_type (image_header_t *hdr) }
/** - * __image_print_contents - prints out the contents of the legacy format image + * image_print_contents - prints out the contents of the legacy format image * @hdr: pointer to the legacy format image header * @p: pointer to prefix string * - * __image_print_contents() formats a multi line legacy image contents description. + * image_print_contents() formats a multi line legacy image contents description. * The routine prints out all header fields followed by the size/offset data * for MULTI/SCRIPT images. * * returns: * no returned results */ -static void __image_print_contents (image_header_t *hdr, const char *p) +void image_print_contents (image_header_t *hdr) { + const char *p; + +#ifdef USE_HOSTCC + p = ""; +#else + p = " "; +#endif + printf ("%sImage Name: %.*s\n", p, IH_NMLEN, image_get_name (hdr)); #if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE) || defined(USE_HOSTCC) printf ("%sCreated: ", p); @@ -366,15 +374,6 @@ static void __image_print_contents (image_header_t *hdr, const char *p) } }
-inline void image_print_contents (image_header_t *hdr) -{ - __image_print_contents (hdr, " "); -} - -inline void image_print_contents_noindent (image_header_t *hdr) -{ - __image_print_contents (hdr, ""); -}
#ifndef USE_HOSTCC /** @@ -444,15 +443,9 @@ static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, /* Shared dual-format routines */ /*****************************************************************************/ #ifndef USE_HOSTCC -int getenv_verify (void) -{ - char *s = getenv ("verify"); - return (s && (*s == 'n')) ? 0 : 1; -} - -int getenv_autostart (void) +int getenv_yesno (char *var) { - char *s = getenv ("autostart"); + char *s = getenv (var); return (s && (*s == 'n')) ? 0 : 1; }
@@ -1265,18 +1258,18 @@ static void fit_get_debug (const void *fit, int noffset, }
/** - * __fit_print_contents - prints out the contents of the FIT format image + * fit_print_contents - prints out the contents of the FIT format image * @fit: pointer to the FIT format image header * @p: pointer to prefix string * - * __fit_print_contents() formats a multi line FIT image contents description. + * fit_print_contents() formats a multi line FIT image contents description. * The routine prints out FIT image properties (root node level) follwed by * the details of each component image. * * returns: * no returned results */ -static void __fit_print_contents (const void *fit, const char *p) +void fit_print_contents (const void *fit) { char *desc; char *uname; @@ -1286,10 +1279,17 @@ static void __fit_print_contents (const void *fit, const char *p) int ndepth; int count = 0; int ret; + const char *p; #if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE) || defined(USE_HOSTCC) time_t timestamp; #endif
+#ifdef USE_HOSTCC + p = ""; +#else + p = " "; +#endif + /* Root node properties */ ret = fit_get_desc (fit, 0, &desc); printf ("%sFIT description: ", p); @@ -1361,16 +1361,6 @@ static void __fit_print_contents (const void *fit, const char *p) } }
-inline void fit_print_contents (const void *fit) -{ - __fit_print_contents (fit, " "); -} - -inline void fit_print_contents_noindent (const void *fit) -{ - __fit_print_contents (fit, ""); -} - /** * fit_image_print - prints out the FIT component image details * @fit: pointer to the FIT format image header diff --git a/include/image.h b/include/image.h index 60fdb2b..4076484 100644 --- a/include/image.h +++ b/include/image.h @@ -364,8 +364,7 @@ int image_check_hcrc (image_header_t *hdr); int image_check_dcrc (image_header_t *hdr); #ifndef USE_HOSTCC int image_check_dcrc_wd (image_header_t *hdr, ulong chunksize); -int getenv_verify (void); -int getenv_autostart (void); +int getenv_yesno (char *var); ulong getenv_bootm_low(void); ulong getenv_bootm_size(void); void memmove_wd (void *to, void *from, size_t len, ulong chunksz); @@ -392,8 +391,7 @@ ulong image_multi_count (image_header_t *hdr); void image_multi_getimg (image_header_t *hdr, ulong idx, ulong *data, ulong *len);
-inline void image_print_contents (image_header_t *hdr); -inline void image_print_contents_noindent (image_header_t *hdr); +void image_print_contents (image_header_t *hdr);
#ifndef USE_HOSTCC static inline int image_check_target_arch (image_header_t *hdr) @@ -469,8 +467,7 @@ inline int fit_parse_conf (const char *spec, ulong addr_curr, inline int fit_parse_subimage (const char *spec, ulong addr_curr, ulong *addr, const char **image_name);
-inline void fit_print_contents (const void *fit); -inline void fit_print_contents_noindent (const void *fit); +void fit_print_contents (const void *fit); void fit_image_print (const void *fit, int noffset, const char *p); void fit_image_print_hash (const void *fit, int noffset, const char *p);
diff --git a/tools/mkimage.c b/tools/mkimage.c index 6e1ff2b..ea7a826 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -229,10 +229,10 @@ NXTARG: ; if (fdt_check_header (ptr)) { /* old-style image */ image_verify_header ((char *)ptr, sbuf.st_size); - image_print_contents_noindent ((image_header_t *)ptr); + image_print_contents ((image_header_t *)ptr); } else { /* FIT image */ - fit_print_contents_noindent (ptr); + fit_print_contents (ptr); }
(void) munmap((void *)ptr, sbuf.st_size); @@ -363,7 +363,7 @@ NXTARG: ;
image_set_hcrc (hdr, checksum);
- image_print_contents_noindent (hdr); + image_print_contents (hdr);
(void) munmap((void *)ptr, sbuf.st_size);

In message 20080418103903.9139.17257.stgit@pollux.denx.de you wrote:
As suggested by Wolfgang Denk:
- image printing functions:
- remove wrappers
- remove indentation prefix from functions' signatures
- merge getenv_verify and getenv_autostart into one parametrized function
Signed-off-by: Bartlomiej Sieka tur@semihalf.com
board/siemens/common/fpga.c | 2 +- common/cmd_autoscript.c | 2 +- common/cmd_bootm.c | 4 ++- common/cmd_ximg.c | 2 +- common/image.c | 56 ++++++++++++++++++------------------------- include/image.h | 9 ++----- tools/mkimage.c | 6 ++--- 7 files changed, 34 insertions(+), 47 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Bartlomiej Sieka
-
Wolfgang Denk