Duncan Laurie has uploaded this change for review.

View Change

sconfig: Add function for parse+override of tree

Extract the steps to parse and override a devicetree into a function
so it can be used multiple times without copying the same logic.

Change-Id: I4e496a223757beb22e3bd678eb6115968bd32529
Signed-off-by: Duncan Laurie <dlaurie@google.com>
---
M util/sconfig/main.c
1 file changed, 14 insertions(+), 10 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/36/44036/1
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 66f9cbf..251aa3f 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -1666,6 +1666,18 @@
}
}

+static void parse_override_devicetree(const char *file, struct device *dev)
+{
+ parse_devicetree(file, dev->bus);
+
+ if (!dev_has_children(dev)) {
+ fprintf(stderr, "ERROR: Override tree needs at least one device!\n");
+ exit(1);
+ }
+
+ override_devicetree(&base_root_bus, dev->bus);
+}
+
int main(int argc, char **argv)
{
static const struct option long_options[] = {
@@ -1708,16 +1720,8 @@

parse_devicetree(base_devtree, &base_root_bus);

- if (override_devtree) {
- parse_devicetree(override_devtree, &override_root_bus);
-
- if (!dev_has_children(&override_root_dev)) {
- fprintf(stderr, "ERROR: Override tree needs at least one device!\n");
- exit(1);
- }
-
- override_devicetree(&base_root_bus, &override_root_bus);
- }
+ if (override_devtree)
+ parse_override_devicetree(override_devtree, &override_root_dev);

FILE *autogen = fopen(outputc, "w");
if (!autogen) {

To view, visit change 44036. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I4e496a223757beb22e3bd678eb6115968bd32529
Gerrit-Change-Number: 44036
Gerrit-PatchSet: 1
Gerrit-Owner: Duncan Laurie <dlaurie@chromium.org>
Gerrit-Reviewer: Martin Roth <martinroth@google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-MessageType: newchange