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: Thierry Reding <treding@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a84c8107d9
commit
bc4147ab2d
|
@ -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)
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue