From 46ed9702a0005da87edd0cc3d34dbe24d1526784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 6 Jun 2013 17:01:39 +0200 Subject: [PATCH] use tx as the type specifier instead of zx A couple of printf() commands use "zx" as a type specifier for printing a difference of 2 pointers. "z" means a size_t, but using "t" which is ptrdiff_t is correct. The issue was found on s390 (32-bit) where size_t is defined as "unsigned long" as opposed to the usual "unsigned int". Rebased-by: Breno Leitao --- diff --git a/fdtdump.c b/fdtdump.c index 4eaade9..4dcac19 100644 --- a/fdtdump.c +++ b/fdtdump.c @@ -98,7 +98,7 @@ static void dump_blob(void *blob, bool debug) p = p_struct; while ((tag = fdt32_to_cpu(GET_CELL(p))) != FDT_END) { - dumpf("%04zx: tag: 0x%08x (%s)\n", + dumpf("%04tx: tag: 0x%08x (%s)\n", (uintptr_t)p - blob_off - 4, tag, tagname(tag)); if (tag == FDT_BEGIN_NODE) { @@ -138,8 +138,8 @@ static void dump_blob(void *blob, bool debug) p = PALIGN(p + sz, 4); - dumpf("%04zx: string: %s\n", (uintptr_t)s - blob_off, s); - dumpf("%04zx: value\n", (uintptr_t)t - blob_off); + dumpf("%04tx: string: %s\n", (uintptr_t)s - blob_off, s); + dumpf("%04tx: value\n", (uintptr_t)t - blob_off); printf("%*s%s", depth * shift, "", s); utilfdt_print_data(t, sz); printf(";\n"); @@ -222,14 +222,14 @@ int main(int argc, char *argv[]) if (valid_header(p, this_len)) break; if (debug) - printf("%s: skipping fdt magic at offset %#zx\n", + printf("%s: skipping fdt magic at offset %#tx\n", file, p - buf); } ++p; } if (!p || endp - p < sizeof(struct fdt_header)) die("%s: could not locate fdt magic\n", file); - printf("%s: found fdt at offset %#zx\n", file, p - buf); + printf("%s: found fdt at offset %#tx\n", file, p - buf); buf = p; } else if (!valid_header(buf, len)) die("%s: header is not valid\n", file);