Skip to content
Snippets Groups Projects
Commit bc4147ab authored by Thierry Reding's avatar Thierry Reding Committed by Simon Glass
Browse files

fdt: Add a function to count strings


Given a device tree node and a property name, the fdt_count_strings()
function counts the number of strings found in the property value.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
Acked-by: default avatarSimon Glass <sjg@chromium.org>
parent a84c8107
No related branches found
No related tags found
No related merge requests found
...@@ -857,6 +857,15 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset, ...@@ -857,6 +857,15 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
*/ */
int fdt_stringlist_contains(const char *strlist, int listlen, const char *str); int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
/**
* fdt_count_strings - count the number of strings in a string list
* @fdt: pointer to the device tree blob
* @node: offset of the node
* @property: name of the property containing the string list
* @return: the number of strings in the given property
*/
int fdt_count_strings(const void *fdt, int node, const char *property);
/**********************************************************************/ /**********************************************************************/
/* Read-only functions (addressing related) */ /* Read-only functions (addressing related) */
/**********************************************************************/ /**********************************************************************/
......
...@@ -491,6 +491,26 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str) ...@@ -491,6 +491,26 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
return 0; return 0;
} }
int fdt_count_strings(const void *fdt, int node, const char *property)
{
int length, i, count = 0;
const char *list;
list = fdt_getprop(fdt, node, property, &length);
if (!list)
return -length;
for (i = 0; i < length; i++) {
int len = strlen(list);
list += len + 1;
i += len;
count++;
}
return count;
}
int fdt_node_check_compatible(const void *fdt, int nodeoffset, int fdt_node_check_compatible(const void *fdt, int nodeoffset,
const char *compatible) const char *compatible)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment