[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 |