
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@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 wd@denx.de
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 0x%08lx, size 0x%08lx\n", ram_addr, d_size); break; @@ -762,7 +763,7 @@ int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images, { ulong rd_addr, rd_load; ulong rd_data, rd_len;
- image_header_t *rd_hdr;
- const image_header_t *rd_hdr;
#if defined(CONFIG_FIT) void *fit_hdr; const char *fit_uname_config = NULL; @@ -1085,9 +1086,9 @@ static void fdt_error (const char *msg) puts (" - must RESET the board to recover.\n"); }
-static image_header_t *image_get_fdt (ulong fdt_addr) +static const image_header_t *image_get_fdt (ulong fdt_addr) {
- image_header_t *fdt_hdr = (image_header_t *)fdt_addr;
- const image_header_t *fdt_hdr = (const image_header_t
*)fdt_addr;
image_print_contents (fdt_hdr);
@@ -1283,8 +1284,8 @@ error: int boot_get_fdt (int flag, int argc, char *argv[], bootm_headers_t *images, char **of_flat_tree, ulong *of_size) {
- const image_header_t *fdt_hdr; ulong fdt_addr;
- image_header_t *fdt_hdr; char *fdt_blob = NULL; ulong image_start, image_end; ulong load_start, load_end;
diff --git a/include/image.h b/include/image.h index beb3a16..a62669f 100644 --- a/include/image.h +++ b/include/image.h @@ -333,7 +333,7 @@ static inline uint32_t image_get_header_size (void) }
#define image_get_hdr_l(f) \
- static inline uint32_t image_get_##f(image_header_t *hdr) \
- static inline uint32_t image_get_##f(const
image_header_t *hdr) \ { \ return uimage_to_cpu (hdr->ih_##f); \ } @@ -346,7 +346,7 @@ image_get_hdr_l (ep); /* image_get_ep */ image_get_hdr_l (dcrc); /* image_get_dcrc */
#define image_get_hdr_b(f) \
- static inline uint8_t image_get_##f(image_header_t *hdr) \
- static inline uint8_t image_get_##f(const image_header_t *hdr) \ { \ return hdr->ih_##f; \ }
@@ -355,12 +355,12 @@ image_get_hdr_b (arch); /* image_get_arch */ image_get_hdr_b (type); /* image_get_type */ image_get_hdr_b (comp); /* image_get_comp */
-static inline char *image_get_name (image_header_t *hdr) +static inline char *image_get_name (const image_header_t *hdr) { return (char *)hdr->ih_name; }
-static inline uint32_t image_get_data_size (image_header_t *hdr) +static inline uint32_t image_get_data_size (const image_header_t *hdr) { return image_get_size (hdr); } @@ -376,16 +376,16 @@ static inline uint32_t image_get_data_size (image_header_t *hdr)
- returns:
image payload data start address
*/ -static inline ulong image_get_data (image_header_t *hdr) +static inline ulong image_get_data (const image_header_t *hdr) { return ((ulong)hdr + image_get_header_size ()); }
-static inline uint32_t image_get_image_size (image_header_t *hdr) +static inline uint32_t image_get_image_size (const image_header_t *hdr) { return (image_get_size (hdr) + image_get_header_size ()); } -static inline ulong image_get_image_end (image_header_t *hdr) +static inline ulong image_get_image_end (const image_header_t *hdr) { return ((ulong)hdr + image_get_image_size (hdr)); } @@ -418,8 +418,8 @@ static inline void image_set_name (image_header_t *hdr, const char *name) strncpy (image_get_name (hdr), name, IH_NMLEN); }
-int image_check_hcrc (image_header_t *hdr); -int image_check_dcrc (image_header_t *hdr); +int image_check_hcrc (const image_header_t *hdr); +int image_check_dcrc (const image_header_t *hdr); #ifndef USE_HOSTCC int getenv_yesno (char *var); ulong getenv_bootm_low(void); @@ -427,31 +427,31 @@ phys_size_t getenv_bootm_size(void); void memmove_wd (void *to, void *from, size_t len, ulong chunksz); #endif
-static inline int image_check_magic (image_header_t *hdr) +static inline int image_check_magic (const image_header_t *hdr) { return (image_get_magic (hdr) == IH_MAGIC); } -static inline int image_check_type (image_header_t *hdr, uint8_t type) +static inline int image_check_type (const image_header_t *hdr, uint8_t type) { return (image_get_type (hdr) == type); } -static inline int image_check_arch (image_header_t *hdr, uint8_t arch) +static inline int image_check_arch (const image_header_t *hdr, uint8_t arch) { return (image_get_arch (hdr) == arch); } -static inline int image_check_os (image_header_t *hdr, uint8_t os) +static inline int image_check_os (const image_header_t *hdr, uint8_t os) { return (image_get_os (hdr) == os); }
-ulong image_multi_count (image_header_t *hdr); -void image_multi_getimg (image_header_t *hdr, ulong idx, +ulong image_multi_count (const image_header_t *hdr); +void image_multi_getimg (const image_header_t *hdr, ulong idx, ulong *data, ulong *len);
-void image_print_contents (image_header_t *hdr); +void image_print_contents (const void *hdr);
#ifndef USE_HOSTCC -static inline int image_check_target_arch (image_header_t *hdr) +static inline int image_check_target_arch (const image_header_t *hdr) { #if defined(__ARM__) if (!image_check_arch (hdr, IH_ARCH_ARM)) diff --git a/tools/mkimage.h b/tools/mkimage.h index a9295b6..1e92825 100644 --- a/tools/mkimage.h +++ b/tools/mkimage.h @@ -105,7 +105,7 @@ struct image_type_params { */ int (*verify_header) (unsigned char *, int, struct mkimage_params *); /* Prints image information abstracting from image header */
- void (*print_header) (void *);
- void (*print_header) (const void *); /*
- The header or image contents need to be set as per
image type to * be generated using this callback function. -- 1.6.0.6
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot