Re: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"
In message <1250675656-12022-1-git-send-email...@denx.de> you wrote: > This fixes some compiler warnings: > tools/default_image.c:141: warning: initialization from incompatible pointer > type > tools/fit_image.c:202: warning: initialization from incompatible pointer type > and changes to code to use "const" attributes in a few places where > it's appropriate. > > Signed-off-by: Wolfgang Denk > --- > common/image.c | 39 --- > include/image.h | 34 +- > tools/mkimage.h |2 +- > 3 files changed, 38 insertions(+), 37 deletions(-) Applied to "mkimage" branch. 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: w...@denx.de Technology is dominated by those who manage what they do not under- stand. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"
> -Original Message- > From: Wolfgang Denk [mailto:w...@denx.de] > Sent: Thursday, August 20, 2009 2:58 PM > To: Prafulla Wadaskar > Cc: u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: > fix compiler warnings, use "const" > > Dear Prafulla, > > In message > <73173d32e9439e4abb5151606c3e19e202e3915...@sc-vexch1.marvell. > com> you wrote: > > > > > This fixes some compiler warnings: > > > tools/default_image.c:141: warning: initialization from > > > incompatible pointer type > > > tools/fit_image.c:202: warning: initialization from > > > incompatible pointer type > > > and changes to code to use "const" attributes in a few > places where > > > it's appropriate. > > > > 99% of the changes in this patch is to add const attributes. > > Yes, indeed. > > > Can you pls explain here- how useful it is to add const. > > Well, adding "const" where appropriate is definitely a good thing, as > it const augments data-hiding and encapsulation and allows the > compiler to check for (and prevent!) unintended modification of data > structures, i. e. for programming errors. Also, it helps the compiler > for better optimization. Ack > > > Or do it make more sense just to fix the warnings in > respective functions? > > I have posted a patch for the same > > I did not see any patch form you addressing these warnings? It's in my mailq :-(, I will repost it just FYI Regards.. Prafulla . . ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"
Dear Prafulla, In message <73173d32e9439e4abb5151606c3e19e202e3915...@sc-vexch1.marvell.com> you wrote: > > > This fixes some compiler warnings: > > tools/default_image.c:141: warning: initialization from > > incompatible pointer type > > tools/fit_image.c:202: warning: initialization from > > incompatible pointer type > > and changes to code to use "const" attributes in a few places where > > it's appropriate. > > 99% of the changes in this patch is to add const attributes. Yes, indeed. > Can you pls explain here- how useful it is to add const. Well, adding "const" where appropriate is definitely a good thing, as it const augments data-hiding and encapsulation and allows the compiler to check for (and prevent!) unintended modification of data structures, i. e. for programming errors. Also, it helps the compiler for better optimization. > Or do it make more sense just to fix the warnings in respective functions? > I have posted a patch for the same I did not see any patch form you addressing these warnings? My "const"-adding patch was the more or less direct result of getting rid of the warnings without using additional type casts. I think using const is a good thing. I am aware that it sometimes becomes painful, and some consider it a waste of time. 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: w...@denx.de God made machine language; all the rest is the work of man. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"
> -Original Message- > From: u-boot-boun...@lists.denx.de > [mailto:u-boot-boun...@lists.denx.de] On Behalf Of Wolfgang Denk > Sent: Wednesday, August 19, 2009 3:24 PM > To: u-boot@lists.denx.de > Subject: [U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix > compiler warnings, use "const" > > This fixes some compiler warnings: > tools/default_image.c:141: warning: initialization from > incompatible pointer type > tools/fit_image.c:202: warning: initialization from > incompatible pointer type > and changes to code to use "const" attributes in a few places where > it's appropriate. Dear Wolfgang 99% of the changes in this patch is to add const attributes. Can you pls explain here- how useful it is to add const. Or do it make more sense just to fix the warnings in respective functions? I have posted a patch for the same For ex. Regards.. Prafulla . . > > Signed-off-by: Wolfgang Denk > --- > common/image.c | 39 --- > include/image.h | 34 +- > tools/mkimage.h |2 +- > 3 files changed, 38 insertions(+), 37 deletions(-) > > diff --git a/common/image.c b/common/image.c > index e22c974..f3dd647 100644 > --- a/common/image.c > +++ b/common/image.c > @@ -65,7 +65,7 @@ extern int do_bdinfo(cmd_tbl_t *cmdtp, int > flag, int argc, char *argv[]); > > DECLARE_GLOBAL_DATA_PTR; > > -static image_header_t* image_get_ramdisk (ulong rd_addr, > uint8_t arch, > +static const image_header_t* image_get_ramdisk (ulong > rd_addr, uint8_t arch, > int verify); > #else > #include "mkimage.h" > @@ -166,7 +166,7 @@ static void genimg_print_time (time_t timestamp); > > /* > / > /* Legacy format routines */ > > /* > / > -int image_check_hcrc (image_header_t *hdr) > +int image_check_hcrc (const image_header_t *hdr) > { > ulong hcrc; > ulong len = image_get_header_size (); > @@ -181,7 +181,7 @@ int image_check_hcrc (image_header_t *hdr) > return (hcrc == image_get_hcrc (hdr)); > } > > -int image_check_dcrc (image_header_t *hdr) > +int image_check_dcrc (const image_header_t *hdr) > { > ulong data = image_get_data (hdr); > ulong len = image_get_data_size (hdr); > @@ -203,7 +203,7 @@ int image_check_dcrc (image_header_t *hdr) > * returns: > * number of components > */ > -ulong image_multi_count (image_header_t *hdr) > +ulong image_multi_count (const image_header_t *hdr) > { > ulong i, count = 0; > uint32_t *size; > @@ -236,7 +236,7 @@ ulong image_multi_count (image_header_t *hdr) > * data address and size of the component, if idx is valid > * 0 in data and len, if idx is out of range > */ > -void image_multi_getimg (image_header_t *hdr, ulong idx, > +void image_multi_getimg (const image_header_t *hdr, ulong idx, > ulong *data, ulong *len) > { > int i; > @@ -272,7 +272,7 @@ void image_multi_getimg (image_header_t > *hdr, ulong idx, > } > } > > -static void image_print_type (image_header_t *hdr) > +static void image_print_type (const image_header_t *hdr) > { > const char *os, *arch, *type, *comp; > > @@ -286,7 +286,7 @@ static void image_print_type (image_header_t *hdr) > > /** > * image_print_contents - prints out the contents of the > legacy format image > - * @hdr: pointer to the legacy format image header > + * @ptr: pointer to the legacy format image header > * @p: pointer to prefix string > * > * image_print_contents() formats a multi line legacy image > contents description. > @@ -296,8 +296,9 @@ static void image_print_type (image_header_t *hdr) > * returns: > * no returned results > */ > -void image_print_contents (image_header_t *hdr) > +void image_print_contents (const void *ptr) > { > + const image_header_t *hdr = (const image_header_t *)ptr; > const char *p; > > #ifdef USE_HOSTCC > @@ -363,10 +364,10 @@ void image_print_contents (image_header_t *hdr) > * pointer to a ramdisk image header, if image was found > and valid > * otherwise, return NULL > */ > -static image_header_t* image_get_ramdisk (ulong rd_addr, > uint8_t arch, > +static const image_header_t *image_get_ramdisk (ulong > rd_addr, uint8_t arch, > int verify) > { > - image_header_t *rd_hdr = (image_header_t *)rd_addr; > + co
[U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"
This fixes some compiler warnings: tools/default_image.c:141: warning: initialization from incompatible pointer type tools/fit_image.c:202: warning: initialization from incompatible pointer type and changes to code to use "const" attributes in a few places where it's appropriate. Signed-off-by: Wolfgang Denk --- common/image.c | 39 --- include/image.h | 34 +- tools/mkimage.h |2 +- 3 files changed, 38 insertions(+), 37 deletions(-) diff --git a/common/image.c b/common/image.c index e22c974..f3dd647 100644 --- a/common/image.c +++ b/common/image.c @@ -65,7 +65,7 @@ extern int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); DECLARE_GLOBAL_DATA_PTR; -static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, +static const image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, int verify); #else #include "mkimage.h" @@ -166,7 +166,7 @@ static void genimg_print_time (time_t timestamp); /*/ /* Legacy format routines */ /*/ -int image_check_hcrc (image_header_t *hdr) +int image_check_hcrc (const image_header_t *hdr) { ulong hcrc; ulong len = image_get_header_size (); @@ -181,7 +181,7 @@ int image_check_hcrc (image_header_t *hdr) return (hcrc == image_get_hcrc (hdr)); } -int image_check_dcrc (image_header_t *hdr) +int image_check_dcrc (const image_header_t *hdr) { ulong data = image_get_data (hdr); ulong len = image_get_data_size (hdr); @@ -203,7 +203,7 @@ int image_check_dcrc (image_header_t *hdr) * returns: * number of components */ -ulong image_multi_count (image_header_t *hdr) +ulong image_multi_count (const image_header_t *hdr) { ulong i, count = 0; uint32_t *size; @@ -236,7 +236,7 @@ ulong image_multi_count (image_header_t *hdr) * data address and size of the component, if idx is valid * 0 in data and len, if idx is out of range */ -void image_multi_getimg (image_header_t *hdr, ulong idx, +void image_multi_getimg (const image_header_t *hdr, ulong idx, ulong *data, ulong *len) { int i; @@ -272,7 +272,7 @@ void image_multi_getimg (image_header_t *hdr, ulong idx, } } -static void image_print_type (image_header_t *hdr) +static void image_print_type (const image_header_t *hdr) { const char *os, *arch, *type, *comp; @@ -286,7 +286,7 @@ static void image_print_type (image_header_t *hdr) /** * image_print_contents - prints out the contents of the legacy format image - * @hdr: pointer to the legacy format image header + * @ptr: pointer to the legacy format image header * @p: pointer to prefix string * * image_print_contents() formats a multi line legacy image contents description. @@ -296,8 +296,9 @@ static void image_print_type (image_header_t *hdr) * returns: * no returned results */ -void image_print_contents (image_header_t *hdr) +void image_print_contents (const void *ptr) { + const image_header_t *hdr = (const image_header_t *)ptr; const char *p; #ifdef USE_HOSTCC @@ -363,10 +364,10 @@ void image_print_contents (image_header_t *hdr) * pointer to a ramdisk image header, if image was found and valid * otherwise, return NULL */ -static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, +static const image_header_t *image_get_ramdisk (ulong rd_addr, uint8_t arch, int verify) { - image_header_t *rd_hdr = (image_header_t *)rd_addr; + const image_header_t *rd_hdr = (const image_header_t *)rd_addr; if (!image_check_magic (rd_hdr)) { puts ("Bad Magic Number\n"); @@ -628,13 +629,13 @@ int genimg_get_comp_id (const char *name) */ int genimg_get_format (void *img_addr) { - ulong format = IMAGE_FORMAT_INVALID; - image_header_t *hdr; + ulong format = IMAGE_FORMAT_INVALID; + const image_header_t *hdr; #if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT) - char*fit_hdr; + char *fit_hdr; #endif - hdr = (image_header_t *)img_addr; + hdr = (const image_header_t *)img_addr; if (image_check_magic(hdr)) format = IMAGE_FORMAT_LEGACY; #if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT) @@ -685,7 +686,7 @@ ulong genimg_get_image (ulong img_addr) /* get data size */ switch (genimg_get_format ((void *)ram_addr)) { case IMAGE_FORMAT_LEGACY: - d_size = image_get_data_size ((image_header_t *)ram_addr); + d_size = image_get_data_size ((const image_header_t *)ram_addr); debug (" Legacy format image found at