On Thu, Sep 15, 2011 at 04:14:45PM +0200, Paolo Bonzini wrote: > On 09/15/2011 03:57 PM, Anthony Liguori wrote: > > > >void generate_tree(Device *node) > >{ > > if (IS_PCI_BUS(node)) { > > for (i = 0; i < 32; i++) { > > generate_tree(lookup_device(get_property(node, "slot[%d]", i))); > > } > > } else if (IS_ISA_BUS(node)) { > > .... > > } else { > > // leaf node, generate path segment > > } > >} > > > >There are certainly ways to walk the graph generically (by coloring or > >following the composition paths) but that won't give you the desired > >ordering. > > It seems easier to go backwards from the target device. That what we do in qdev.
> > Each device most likely will have a canonical parent link, and > together they will give the OF path. > Yeah, this canonical parent link should be marked somehow. -- Gleb.