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 >