[U-Boot] [PATCH "mkimage" branch] tools/mkimage: fix compiler warnings, use "const"

Prafulla Wadaskar prafulla at marvell.com
Thu Aug 20 10:37:22 CEST 2009


 

> -----Original Message-----
> From: u-boot-bounces at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Wolfgang Denk
> Sent: Wednesday, August 19, 2009 3:24 PM
> To: u-boot at 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 at 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 at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 


More information about the U-Boot mailing list