Memory footprint optimizations
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>
This commit is contained in:
parent
0a0b606faa
commit
edbed247a1
@ -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");
|
||||
|
@ -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:
|
||||
|
@ -132,8 +132,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);
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
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 +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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user