Browse Source

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>
main
David Gibson 17 years ago committed by Jon Loeliger
parent
commit
02563ad023
  1. 10
      treesource.c

10
treesource.c

@ -176,6 +176,8 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level)
struct node *child; struct node *child;


write_prefix(f, level); write_prefix(f, level);
if (tree->label)
fprintf(f, "%s: ", tree->label);
if (tree->name && (*tree->name)) if (tree->name && (*tree->name))
fprintf(f, "%s {\n", tree->name); fprintf(f, "%s {\n", tree->name);
else else
@ -184,8 +186,10 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level)
for_each_property(tree, prop) { for_each_property(tree, prop) {
enum proptype type; enum proptype type;


write_prefix(f, level); write_prefix(f, level+1);
fprintf(f, "\t%s", prop->name); if (prop->label)
fprintf(f, "%s: ", prop->label);
fprintf(f, "%s", prop->name);
type = guess_type(prop); type = guess_type(prop);


switch (type) { switch (type) {
@ -220,6 +224,8 @@ void dt_to_source(FILE *f, struct boot_info *bi)
struct reserve_info *re; struct reserve_info *re;


for (re = bi->reservelist; re; re = re->next) { for (re = bi->reservelist; re; re = re->next) {
if (re->label)
fprintf(f, "%s: ", re->label);
fprintf(f, "/memreserve/\t%016llx-%016llx;\n", fprintf(f, "/memreserve/\t%016llx-%016llx;\n",
(unsigned long long)re->re.address, (unsigned long long)re->re.address,
(unsigned long long)(re->re.address + re->re.size - 1)); (unsigned long long)(re->re.address + re->re.size - 1));

Loading…
Cancel
Save