[PATCH] print out resource_size_t correctly

Sascha Hauer s.hauer at pengutronix.de
Mon Jun 25 08:47:19 EDT 2012


resource_size_t can be 32bit or 64bit depending on the architecture.
Add a define for it to be able to printf a resource_size_t correctly

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/iomem.c       |    3 ++-
 drivers/base/driver.c  |    3 ++-
 include/linux/ioport.h |    6 ++++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/commands/iomem.c b/commands/iomem.c
index 96b03ba..70355fd 100644
--- a/commands/iomem.c
+++ b/commands/iomem.c
@@ -30,7 +30,8 @@ static void __print_resources(struct resource *res, int indent)
 	for (i = 0; i < indent; i++)
 		printf("  ");
 
-	printf("0x%08x - 0x%08x (size 0x%08x) %s\n", res->start,
+	printf(PRINTF_CONVERSION_RESOURCE " - " PRINTF_CONVERSION_RESOURCE
+			" (size " PRINTF_CONVERSION_RESOURCE ") %s\n", res->start,
 			res->start + res->size - 1,
 			res->size, res->name);
 
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 547d684..3be4b99 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -388,7 +388,8 @@ static int do_devinfo(int argc, char *argv[])
 			printf("num   : %d\n", i);
 			if (res->name)
 				printf("name  : %s\n", res->name);
-			printf("start : 0x%08x\nsize  : 0x%08x\n",
+			printf("start : " PRINTF_CONVERSION_RESOURCE "\nsize  : "
+					PRINTF_CONVERSION_RESOURCE "\n",
 			       res->start, res->size);
 		}
 
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index c837b53..3f95ddd 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -25,6 +25,12 @@ struct resource {
 	struct list_head sibling;
 };
 
+#ifdef CONFIG_PHYS_ADDR_T_64BIT
+#define PRINTF_CONVERSION_RESOURCE	"0x%016llx"
+#else
+#define PRINTF_CONVERSION_RESOURCE	"0x%08x"
+#endif
+
 /*
  * IO resources have these defined flags.
  */
-- 
1.7.10




More information about the barebox mailing list