* [U-Boot-Users] [PATCH] Memory footprint optimizations
@ 2008-04-09 21:37 Bartlomiej Sieka
2008-04-09 22:56 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Bartlomiej Sieka @ 2008-04-09 21:37 UTC (permalink / raw
To: u-boot
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);
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH] Memory footprint optimizations
2008-04-09 21:37 [U-Boot-Users] [PATCH] Memory footprint optimizations Bartlomiej Sieka
@ 2008-04-09 22:56 ` Wolfgang Denk
2008-04-14 12:53 ` Bartlomiej Sieka
0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2008-04-09 22:56 UTC (permalink / raw
To: u-boot
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
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Die meisten Menschen pflegen im Kindesalter vom Zeigen auf Gegenst?n-
de (Mausbewegung) und "ga" sagen (Mausklick) abzukommen, zugunsten
eines m?chtigeren und langwierig zu erlernenden Tools (Sprache).
-- Achim Linder in de.comp.os.linux.misc
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH] Memory footprint optimizations
2008-04-09 22:56 ` Wolfgang Denk
@ 2008-04-14 12:53 ` Bartlomiej Sieka
2008-04-14 19:50 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Bartlomiej Sieka @ 2008-04-14 12:53 UTC (permalink / raw
To: u-boot
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH] Memory footprint optimizations
2008-04-14 12:53 ` Bartlomiej Sieka
@ 2008-04-14 19:50 ` Wolfgang Denk
2008-04-18 10:39 ` [U-Boot-Users] [PATCH v2] " Bartlomiej Sieka
0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2008-04-14 19:50 UTC (permalink / raw
To: u-boot
In message <480353D3.4090607@semihalf.com> you wrote:
>
> 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:
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
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
War isn't a good life, but it's life.
-- Kirk, "A Private Little War", stardate 4211.8
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH v2] Memory footprint optimizations
2008-04-14 19:50 ` Wolfgang Denk
@ 2008-04-18 10:39 ` Bartlomiej Sieka
2008-04-24 15:23 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Bartlomiej Sieka @ 2008-04-18 10:39 UTC (permalink / raw
To: u-boot
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);
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH v2] Memory footprint optimizations
2008-04-18 10:39 ` [U-Boot-Users] [PATCH v2] " Bartlomiej Sieka
@ 2008-04-24 15:23 ` Wolfgang Denk
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2008-04-24 15:23 UTC (permalink / raw
To: u-boot
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
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"There was no difference between the behavior of a god and the
operations of pure chance..." - Thomas Pynchon, _Gravity's Rainbow_
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-04-24 15:23 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-09 21:37 [U-Boot-Users] [PATCH] Memory footprint optimizations Bartlomiej Sieka
2008-04-09 22:56 ` Wolfgang Denk
2008-04-14 12:53 ` Bartlomiej Sieka
2008-04-14 19:50 ` Wolfgang Denk
2008-04-18 10:39 ` [U-Boot-Users] [PATCH v2] " Bartlomiej Sieka
2008-04-24 15:23 ` Wolfgang Denk
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.