From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by casper.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dsmA5-0006No-3C for barebox@lists.infradead.org; Fri, 15 Sep 2017 08:39:46 +0000 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7] helo=dude.pengutronix.de.) by metis.ext.pengutronix.de with esmtp (Exim 4.84_2) (envelope-from ) id 1dsm9i-0005Jd-Ur for barebox@lists.infradead.org; Fri, 15 Sep 2017 10:39:22 +0200 From: Lucas Stach Date: Fri, 15 Sep 2017 10:39:21 +0200 Message-Id: <20170915083922.25134-12-l.stach@pengutronix.de> In-Reply-To: <20170915083922.25134-1-l.stach@pengutronix.de> References: <20170915083922.25134-1-l.stach@pengutronix.de> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 11/12] of: base: add funtion to copy a device tree node To: barebox@lists.infradead.org From: Michael Olbrich Signed-off-by: Michael Olbrich Signed-off-by: Lucas Stach --- drivers/of/base.c | 16 ++++++++++++++++ include/of.h | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index fb4d2c03946e..3ca13ae44e5c 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1988,6 +1988,22 @@ out: return dn; } +struct device_node *of_copy_node(struct device_node *parent, const struct device_node *other) +{ + struct device_node *np, *child; + struct property *pp; + + np = of_new_node(parent, other->name); + + list_for_each_entry(pp, &other->properties, list) + of_new_property(np, pp->name, pp->value, pp->length); + + for_each_child_of_node(other, child) + of_copy_node(np, child); + + return np; +} + void of_delete_node(struct device_node *node) { struct device_node *n, *nt; diff --git a/include/of.h b/include/of.h index 9ba771a395b8..c21a1e95dda8 100644 --- a/include/of.h +++ b/include/of.h @@ -144,6 +144,8 @@ extern struct device_node *of_new_node(struct device_node *parent, const char *name); extern struct device_node *of_create_node(struct device_node *root, const char *path); +extern struct device_node *of_copy_node(struct device_node *parent, + const struct device_node *other); extern void of_delete_node(struct device_node *node); extern int of_machine_is_compatible(const char *compat); @@ -576,6 +578,12 @@ static inline struct device_node *of_create_node(struct device_node *root, return NULL; } +static inline struct device_node *of_copy_node(struct device_node *parent, + const struct device_node *other) +{ + return NULL; +} + static inline void of_delete_node(struct device_node *node) { } -- 2.11.0 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox