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>
This commit is contained in:
parent
bf141b96cd
commit
02563ad023
1 changed files with 8 additions and 2 deletions
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…
Reference in a new issue