On Fri, 22 Mar 2013 11:12:39 +0100, Thierry Reding wrote: > This sounds like you're trying to do too much within the for loop. When > we discussed this previously I had a vague idea that this functionality > could be wrapped into something a bit more object-like. > > What I had in mind was something like: > > struct of_pci_range_parser; > struct of_pci_range; > > struct of_pci_range_parser parser; > struct of_pci_range range; > > err = of_pci_range_parser(&parser, np); > if (err < 0) > return err; > > for_each_of_pci_range(range, parser) { > struct resource res; > > ... > usage of range similar to iterator > ... > > of_pci_range_to_resource(&res, &range); > } > > In the above the of_pci_range structure pretty much replaces the > iterator and the whole is wrapped up within a parser structure to give > some extra flexibility and provides for easier (or more structured) > setup compared to doing all of it within the loop statement. > > But aside from the (perceived?) increased robustness there's not a lot > of technical benefit over your implementation, so it isn't a very hard > objection. I find it to be a little more encapsulated and therefore > easier to work with, but that's possibly just a matter of taste. I don't have a strong opinion on this. Andrew, what do you think? Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html