[PATCH v2 1/2] of: rework of_node_cmp() to support short and full node names
Yegor Yefremov
yegorslists at googlemail.com
Wed Jan 13 08:01:37 PST 2016
Hi Sascha,
On Wed, Jan 13, 2016 at 4:50 PM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> Hi Yegor,
>
> On Tue, Jan 12, 2016 at 11:16:38AM +0100, yegorslists at googlemail.com wrote:
>> + * Compare node names using the length of the node in question
>> + * and then check, if the in-tree node has '@' as next character.
>> + * This way both short names like 'name' and full like 'name at 1' will
>> + * be accepted.
>> + */
>> +int of_node_cmp(const char *s1, const char *s2)
>> +{
>> + int len = strlen(s2);
>> +
>> + if (strncasecmp(s1, s2, len) != 0)
>> + return 1;
>> +
>> + if (s1[len] == '\0')
>> + return 0;
>> + else if (!memchr(s2, '@', len) && (s1[len] == '@'))
>> + return 0;
>> + else
>> + return 1;
>> +}
>> +
>> +/*
>> * Iterate over all nodes of a tree. As a devicetree does not
>> * have a dedicated list head, the start node (usually the root
>> * node) will not be iterated over.
>> diff --git a/include/of.h b/include/of.h
>> index 75cc3c1..3b18eef 100644
>> --- a/include/of.h
>> +++ b/include/of.h
>> @@ -10,7 +10,6 @@
>> /* Default string compare functions */
>> #define of_compat_cmp(s1, s2, l) strcasecmp((s1), (s2))
>> #define of_prop_cmp(s1, s2) strcmp((s1), (s2))
>> -#define of_node_cmp(s1, s2) strcasecmp((s1), (s2))
>
> of_node_cmp is used elsewhere and a direct copy from the Kernel. You
> should introduce a new function for your purpose instead of modifying
> it.
What about of_node_eq()?
Yegor
More information about the barebox
mailing list