[U-Boot] [PATCH 08/10] scsi: Use correct printf() format string for uintptr_t

Masahiro YAMADA yamada.m at jp.panasonic.com
Mon Dec 15 19:32:00 CET 2014


2014-10-15 19:38 GMT+09:00 Simon Glass <sjg at chromium.org>:
> Use the inttypes header file to provide this.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  common/cmd_scsi.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
> index b3f7687..cbc107e 100644
> --- a/common/cmd_scsi.c
> +++ b/common/cmd_scsi.c
> @@ -10,6 +10,7 @@
>   */
>  #include <common.h>
>  #include <command.h>
> +#include <inttypes.h>
>  #include <asm/processor.h>
>  #include <scsi.h>
>  #include <image.h>
> @@ -391,7 +392,7 @@ static ulong scsi_read(int device, lbaint_t blknr, lbaint_t blkcnt,
>                         blks=0;
>                 }
>                 debug("scsi_read_ext: startblk " LBAF
> -                     ", blccnt %x buffer %lx\n",
> +                     ", blccnt %x buffer %" PRIXPTR "\n",
>                       start, smallblks, buf_addr);


The root cause of the problem is to use uintptr_t provided by
the compiler.

"unsigned long" can store a pointer whether it is 32bit or 64bit system.
(I have never seen LLP64 on Unix-like 64bit system.)



-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list