Thread (24 messages) flat view 24 messages, 4 authors, 2011-09-01

RE: [PATCH v3 11/13] of: add property iteration helpers

From: Stephen Warren <hidden>
Date: 2011-08-26 16:00:15
Also in: linux-arm-kernel, linux-tegra, lkml

Jamie Iles wrote at Friday, August 26, 2011 3:27 AM:
On Thu, Aug 25, 2011 at 05:43:42PM -0600, Stephen Warren wrote:
quoted
This patch adds macros for_each_u32_property_value and
for_each_string_property_value, which iterate over an array of values
within a device-tree property. Usage is for example:

struct of_iter_string_prop iter;
for_each_string_property_value(iter, np, "pins")
        printk("Got value %s\n", iter.value);

Signed-off-by: Stephen Warren <redacted>
Nicely implemented!
Thanks!
For the !CONFIG_OF case, I *think* that
of_iter_u32_prop and of_iter_string_prop can be empty struct's, but I
wouldn't want to bet money on that!
Empty structs themselves certainly did compile OK, but the code that
uses these macros references iter.value directly, and isn't under #ifdef
CONFIG_OF, so that field has to exist.

I suppose an alternative would be to add an accessor function:

struct of_iter_string_prop iter;
for_each_string_property_value(iter, np, "pins")
        printk("Got value %s\n", of_iter_string_value(iter));

which would return NULL/"" when !CONFIG_OF, and hence allow iter.value
to be removed too. Do you think that's a good approach? It'd be easy to
implement.

-- 
nvpublic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help