summaryrefslogtreecommitdiff
path: root/treesource.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2007-11-02 16:10:30 +1100
committerJon Loeliger <jdl@freescale.com>2007-11-05 08:41:23 -0600
commit02563ad023122ac2dbd6de6169eaf4b911ddcc7e (patch)
tree1383948e016883522caec6284aa23c16a2f3fc21 /treesource.c
parentbf141b96cda8affecf7404198f72c08c8c2c542e (diff)
downloaddtc-02563ad023122ac2dbd6de6169eaf4b911ddcc7e.tar.gz
dtc: Make -Idts -Odts preserve node/property labels
This patch changes -Odts mode output so that labels on properties, nodes and memreserve entries in input source are preserved in the output. Preserving labels within property values is trickier - another patch coming later. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'treesource.c')
-rw-r--r--treesource.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/treesource.c b/treesource.c
index f62041f..376ebc8 100644
--- a/treesource.c
+++ b/treesource.c
@@ -176,6 +176,8 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level)
struct node *child;
write_prefix(f, level);
+ if (tree->label)
+ fprintf(f, "%s: ", tree->label);
if (tree->name && (*tree->name))
fprintf(f, "%s {\n", tree->name);
else
@@ -184,8 +186,10 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level)
for_each_property(tree, prop) {
enum proptype type;
- write_prefix(f, level);
- fprintf(f, "\t%s", prop->name);
+ write_prefix(f, level+1);
+ if (prop->label)
+ fprintf(f, "%s: ", prop->label);
+ fprintf(f, "%s", prop->name);
type = guess_type(prop);
switch (type) {
@@ -220,6 +224,8 @@ void dt_to_source(FILE *f, struct boot_info *bi)
struct reserve_info *re;
for (re = bi->reservelist; re; re = re->next) {
+ if (re->label)
+ fprintf(f, "%s: ", re->label);
fprintf(f, "/memreserve/\t%016llx-%016llx;\n",
(unsigned long long)re->re.address,
(unsigned long long)(re->re.address + re->re.size - 1));