summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPantelis Antoniou <panto@antoniou-consulting.com>2013-01-04 21:12:46 +0200
committerJon Loeliger <jdl@jdl.com>2013-01-06 15:35:10 -0600
commit94a4799b200451d4037ec9219023becfe8c45ef1 (patch)
treee4adcf8c98913cdda233a8f83d238263cb9577c4
parente4b497f367a3b2ae99cc52089a14a221b13a76ef (diff)
downloaddtc-94a4799b200451d4037ec9219023becfe8c45ef1.tar.gz
fdtdump: properly handle multi-string properties
Device tree can store multiple strings in a single property. We didn't handle that case properly. Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com> Acked-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--fdtdump.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fdtdump.c b/fdtdump.c
index 207a46d..d4fa6d7 100644
--- a/fdtdump.c
+++ b/fdtdump.c
@@ -21,13 +21,23 @@ static void print_data(const char *data, int len)
{
int i;
const char *p = data;
+ const char *s;
/* no data, don't print */
if (len == 0)
return;
if (util_is_printable_string(data, len)) {
- printf(" = \"%s\"", (const char *)data);
+ printf(" = ");
+
+ s = data;
+ do {
+ printf("\"%s\"", s);
+ s += strlen(s) + 1;
+ if (s < data + len)
+ printf(", ");
+ } while (s < data + len);
+
} else if ((len % 4) == 0) {
printf(" = <");
for (i = 0; i < len; i += 4)