[RFC PATCH 22/77] dtc: Add export symbols (/export/ keyword) in generated dts file

Herve Codina posted 77 patches 3 weeks, 5 days ago
[RFC PATCH 22/77] dtc: Add export symbols (/export/ keyword) in generated dts file
Posted by Herve Codina 3 weeks, 5 days ago
The export symbols (/export/ keyword) parsing from a dts file is
supported.

Add the support for this keyword in the dts file generation.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 treesource.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/treesource.c b/treesource.c
index 1db6390..9effe38 100644
--- a/treesource.c
+++ b/treesource.c
@@ -320,6 +320,7 @@ static void write_propval(FILE *f, struct property *prop)
 
 static void write_tree_source_node(FILE *f, struct node *tree, int level)
 {
+	struct symbol *exportsym;
 	struct property *prop;
 	struct node *child;
 	struct label *l;
@@ -349,6 +350,18 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level)
 		fprintf(f, "%s", prop->name);
 		write_propval(f, prop);
 	}
+
+	if (tree->exportsymlist)
+		fprintf(f, "\n");
+	for_each_symbol(tree->exportsymlist, exportsym) {
+		write_prefix(f, level+1);
+		fprintf(f, "/export/ %s: ", exportsym->name);
+		if (exportsym->ref[0] == '/')
+			fprintf(f, "&{%s};\n", exportsym->ref);
+		else
+			fprintf(f, "&%s;\n", exportsym->ref);
+	}
+
 	for_each_child(tree, child) {
 		fprintf(f, "\n");
 		write_tree_source_node(f, child, level+1);
-- 
2.52.0