|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC for-4.8 v2 4/7] xen/device-tree: Make dt_match_node match props
On Mon, Jun 06, 2016 at 06:39:39PM +0100, Julien Grall wrote:
> Hi Edgar,
>
> On 03/06/16 14:29, Edgar E. Iglesias wrote:
> >From: "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxxx>
> >
> >Make dt_match_node match for existing properties.
> >We only search for the existance of the properties, not
>
> s/existance/existence/
Fixed
>
> >for specific values.
>
> [..]
>
> >diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
> >index b348913..f13d186 100644
> >--- a/xen/include/xen/device_tree.h
> >+++ b/xen/include/xen/device_tree.h
> >@@ -30,6 +30,7 @@ struct dt_device_match {
> > const char *type;
> > const char *compatible;
> > const bool_t not_available;
> >+ const char **props;
>
> I would add a comment above the field to explain the behavior.
Sounds good. I've added the following:
/*
* NULL terminated array of property names to search for.
* We only search for the properties existence.
*/
const char **props;
>
> > const void *data;
> > };
> >
> >@@ -37,11 +38,13 @@ struct dt_device_match {
> > #define __DT_MATCH_TYPE(typ) .type = typ
> > #define __DT_MATCH_COMPATIBLE(compat) .compatible = compat
> > #define __DT_MATCH_NOT_AVAILABLE() .not_available = 1
> >+#define __DT_MATCH_PROPS(p...) .props = (const char *[]) { p, NULL
> >}
>
> Why the cast?
AFAIK, it's needed to instantiate the dynamically sized array of pointers.
Another option is to make __DT_MATCH_PROPS take the char ** pointer.
The descriptor declaration would instead of looking like this:
{
__DT_MATCH_COMPATIBLE("mmio-sram"),
__DT_MATCH_PROPS("no-memory-wc"),
.data = &mattr_device_rw,
},
Look something like this:
const char *props_no_mem_wc[] = { "no-memory-wc", NULL };
....
{
__DT_MATCH_COMPATIBLE("mmio-sram"),
__DT_MATCH_PROPS(props_no_mem_wc),
.data = &mattr_device_rw,
},
Or do you have better suggestions?
Best regards,
Edgar
>
> >
> > #define DT_MATCH_PATH(p) { __DT_MATCH_PATH(p) }
> > #define DT_MATCH_TYPE(typ) { __DT_MATCH_TYPE(typ) }
> > #define DT_MATCH_COMPATIBLE(compat) { __DT_MATCH_COMPATIBLE(compat) }
> > #define DT_MATCH_NOT_AVAILABLE() { __DT_MATCH_NOT_AVAILABLE() }
> >+#define DT_MATCH_PROPS(p...) { __DT_MATCH_PROPS(p) }
> >
> > typedef u32 dt_phandle;
>
> Regards,
>
> --
> Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |