[Pdbg] [PATCH v2 06/22] libpdbg: Construct unique path based on virtual nodes

Amitay Isaacs amitay at ozlabs.org
Fri Sep 20 15:16:35 AEST 2019


Even though there can be two different paths to a node, libpdbg users
should always see the path as defined in system device tree (view) which
is the same and independent of the backend device tree.

Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
Reviewed-by: Alistair Popple <alistair at popple.id.au>
---
 libpdbg/device.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libpdbg/device.c b/libpdbg/device.c
index cba4475..9cb2a0a 100644
--- a/libpdbg/device.c
+++ b/libpdbg/device.c
@@ -219,6 +219,9 @@ static char *dt_get_path(struct pdbg_target *node)
 		return strdup("<NULL>");
 
 	for (n = node; n; n = n->parent) {
+		if (n->vnode && n->compatible)
+			n = n->vnode;
+
 		len += strlen(n->dn_name);
 		if (n->parent || n == node)
 			len++;
@@ -227,6 +230,9 @@ static char *dt_get_path(struct pdbg_target *node)
 	assert(path);
 	p = path + len;
 	for (n = node; n; n = n->parent) {
+		if (n->vnode && n->compatible)
+			n = n->vnode;
+
 		len = strlen(n->dn_name);
 		p -= len;
 		memcpy(p, n->dn_name, len);
-- 
2.21.0



More information about the Pdbg mailing list