Re: [PATCH 07/10] fdtgrep: Move property checking into a function

2024-01-01 Thread Simon Glass
The h_include() function includes a piece which checks if a node
contains a property being searched for. Move this into its own
function to reduce the size of the h_include() function.

Signed-off-by: Simon Glass 
---

 tools/fdtgrep.c | 48 +++-
 1 file changed, 35 insertions(+), 13 deletions(-)

Applied to u-boot-dm/next, thanks!


[PATCH 07/10] fdtgrep: Move property checking into a function

2023-12-17 Thread Simon Glass
The h_include() function includes a piece which checks if a node
contains a property being searched for. Move this into its own
function to reduce the size of the h_include() function.

Signed-off-by: Simon Glass 
---

 tools/fdtgrep.c | 48 +++-
 1 file changed, 35 insertions(+), 13 deletions(-)

diff --git a/tools/fdtgrep.c b/tools/fdtgrep.c
index b06a1a7a8384..ca639a2d9f4f 100644
--- a/tools/fdtgrep.c
+++ b/tools/fdtgrep.c
@@ -575,6 +575,40 @@ static int check_type_include(void *priv, int type, const 
char *data, int size)
return 0;
 }
 
+/**
+ * check_props() - Check if a node has properties that we want to include
+ *
+ * Calls check_type_include() for each property in the nodn, returning 1 if
+ * that function returns 1 for any of them
+ *
+ * @disp:  Display structure, holding info about our options
+ * @fdt:   Devicetree blob to check
+ * @node:  Node offset to check
+ * @inc:   Current value of the 'include' variable (see h_include())
+ * Return: 0 to exclude, 1 to include, -1 if no information is available
+ */
+static int check_props(struct display_info *disp, const void *fdt, int node,
+  int inc)
+{
+   int offset;
+
+   for (offset = fdt_first_property_offset(fdt, node);
+offset > 0 && inc != 1;
+offset = fdt_next_property_offset(fdt, offset)) {
+   const struct fdt_property *prop;
+   const char *str;
+
+   prop = fdt_get_property_by_offset(fdt, offset, NULL);
+   if (!prop)
+   continue;
+   str = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
+   inc = check_type_include(disp, FDT_NODE_HAS_PROP, str,
+strlen(str));
+   }
+
+   return inc;
+}
+
 /**
  * h_include() - Include handler function for fdt_first_region()
  *
@@ -617,19 +651,7 @@ static int h_include(void *priv, const void *fdt, int 
offset, int type,
(disp->types_inc & FDT_NODE_HAS_PROP)) {
debug("   - checking node '%s'\n",
  fdt_get_name(fdt, offset, NULL));
-   for (offset = fdt_first_property_offset(fdt, offset);
-offset > 0 && inc != 1;
-offset = fdt_next_property_offset(fdt, offset)) {
-   const struct fdt_property *prop;
-   const char *str;
-
-   prop = fdt_get_property_by_offset(fdt, offset, NULL);
-   if (!prop)
-   continue;
-   str = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
-   inc = check_type_include(priv, FDT_NODE_HAS_PROP, str,
-strlen(str));
-   }
+   inc = check_props(disp, fdt, offset, inc);
if (inc == -1)
inc = 0;
}
-- 
2.43.0.472.g3155946c3a-goog