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.