* [U-Boot-Users] [PATCH 11/17] For fdt_find_node_by_path(), handle the root path properly.
@ 2007-07-05 1:19 Jerry Van Baren
2007-07-05 3:01 ` Grant Likely
0 siblings, 1 reply; 2+ messages in thread
From: Jerry Van Baren @ 2007-07-05 1:19 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] 2+ messages in thread* [U-Boot-Users] [PATCH 11/17] For fdt_find_node_by_path(), handle the root path properly.
2007-07-05 1:19 [U-Boot-Users] [PATCH 11/17] For fdt_find_node_by_path(), handle the root path properly Jerry Van Baren
@ 2007-07-05 3:01 ` Grant Likely
0 siblings, 0 replies; 2+ messages in thread
From: Grant Likely @ 2007-07-05 3:01 UTC (permalink / raw)
To: u-boot
On 7/4/07, Jerry Van Baren <gvb.uboot@gmail.com> wrote:
> 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>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
> ---
> 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
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-07-05 3:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-05 1:19 [U-Boot-Users] [PATCH 11/17] For fdt_find_node_by_path(), handle the root path properly Jerry Van Baren
2007-07-05 3:01 ` Grant Likely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox