* [U-Boot-Users] [PATCH: u-boot-fdt 3/3] For fdt_find_node_by_path(), handle the root path properly.
@ 2007-05-22 3:35 Jerry Van Baren
0 siblings, 0 replies; only message in thread
From: Jerry Van Baren @ 2007-05-22 3:35 UTC (permalink / raw)
To: u-boot
Also removes the special case root path detection in cmd_fdt.c since it
is no longer necessary.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
---
common/cmd_fdt.c | 35 ++++++++++++-----------------------
libfdt/fdt_ro.c | 4 ++++
2 files changed, 16 insertions(+), 23 deletions(-)
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 5a2c3fd..aa65297 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -52,25 +52,6 @@ static int fdt_parse_prop(char *pathp, char *prop, char *newval,
char *data, int *len);
static int fdt_print(char *pathp, char *prop, int depth);
-static int findnodeoffset(const char *pathp)
-{
- int nodeoffset;
-
- if (strcmp(pathp, "/") == 0) {
- nodeoffset = 0;
- } else {
- nodeoffset = fdt_find_node_by_path (fdt, pathp);
- if (nodeoffset < 0) {
- /*
- * Not found or something else bad happened.
- */
- printf ("findnodeoffset() libfdt: %s\n",
- fdt_strerror(nodeoffset));
- }
- }
- return nodeoffset;
-}
-
/*
* Flattened Device Tree command, see the help for parameter definitions.
*/
@@ -187,11 +168,13 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
pathp = argv[2];
nodep = argv[3];
- nodeoffset = findnodeoffset(pathp);
+ nodeoffset = fdt_find_node_by_path (fdt, pathp);
if (nodeoffset < 0) {
/*
* Not found or something else bad happened.
*/
+ printf ("libfdt fdt_find_node_by_path() returned %s\n",
+ fdt_strerror(nodeoffset));
return 1;
}
err = fdt_add_subnode(fdt, nodeoffset, nodep);
@@ -225,11 +208,13 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
prop = argv[3];
newval = argv[4];
- nodeoffset = findnodeoffset(pathp);
+ nodeoffset = fdt_find_node_by_path (fdt, pathp);
if (nodeoffset < 0) {
/*
* Not found or something else bad happened.
*/
+ printf ("libfdt fdt_find_node_by_path() returned %s\n",
+ fdt_strerror(nodeoffset));
return 1;
}
ret = fdt_parse_prop(pathp, prop, newval, data, &len);
@@ -283,11 +268,13 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
* Get the path. The root node is an oddball, the offset
* is zero and has no name.
*/
- nodeoffset = findnodeoffset(argv[2]);
+ nodeoffset = fdt_find_node_by_path (fdt, argv[2]);
if (nodeoffset < 0) {
/*
* Not found or something else bad happened.
*/
+ printf ("libfdt fdt_find_node_by_path() returned %s\n",
+ fdt_strerror(nodeoffset));
return 1;
}
/*
@@ -584,11 +571,13 @@ static int fdt_print(char *pathp, char *prop, int depth)
int len; /* length of the property */
int level = 0; /* keep track of nesting level */
- nodeoffset = findnodeoffset(pathp);
+ nodeoffset = fdt_find_node_by_path (fdt, pathp);
if (nodeoffset < 0) {
/*
* Not found or something else bad happened.
*/
+ printf ("libfdt fdt_find_node_by_path() returned %s\n",
+ fdt_strerror(nodeoffset));
return 1;
}
/*
diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c
index 923c389..ffd9209 100644
--- a/libfdt/fdt_ro.c
+++ b/libfdt/fdt_ro.c
@@ -283,6 +283,10 @@ int fdt_find_node_by_path(const void *fdt, const char *path)
if (*path != '/')
return -FDT_ERR_BADPATH;
+ /* Handle the root path: root offset is 0 */
+ if (strcmp(path, "/") == 0)
+ return 0;
+
while (*p) {
const char *q;
--
1.4.4.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-05-22 3:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-22 3:35 [U-Boot-Users] [PATCH: u-boot-fdt 3/3] For fdt_find_node_by_path(), handle the root path properly Jerry Van Baren
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.