[PATCH v2 1/2] of: rework of_node_cmp() to support short and full node names
Sascha Hauer
s.hauer at pengutronix.de
Wed Jan 13 07:50:13 PST 2016
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.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list