Il 24/07/2013 17:09, Andreas Färber ha scritto:
Hi,
Am 24.07.2013 17:04, schrieb Gerd Hoffmann:
/me suggests to check out qmp_qom_get() in qmp.c. Some qom aequivalent for qdev_find_recursive would be handy, dunno whenever such a thing exists already, Andreas?
Not sure what's needed here? object_resolve_path() and object_foreach_child() come to mind...
object_resolve_path should do to (a) figure whenever we are i440fx or q35 and (b) get the pcihost device (then read enable_s3 etc properties).
For pvpanic (and maybe others) it might be handy to have "find me the device of type TYPE_ISA_PVPANIC_DEVICE, anywhere in the tree" functionality, so the same code works no matter where the isa bridge happens to live. Or "find me all pci bridges in the system".
I think Paolo used object_resolve_path_type("", TYPE_...) for that somewhere in audio code.
Yes. It returns NULL if there is more than one device, but in some cases it may be exactly what you want...
Paolo
Is object_foreach_child recursive? Then it might do the job ...
No, recursion would need to be implemented in the callback - my recent recursive QOM realization series had an example of a deep search for devices.
Regards, Andreas