Il 03/12/2013 14:44, Andreas Färber ha scritto: >> > >> > You can check "if (current_machine && >> > current_machine->get_fw_dev_path)", and move current_machine from vl.c >> > to hw/qdev/core.c. > Please don't encourage moving random stuff into "core" device code. > > If needed, we can easily add a machine.c, but that should remain > softmmu-only.
Another solution would be to: (1) add an interface which contains "get_fw_dev_path". When qdev_get_fw_dev_path is called, walk the QOM tree until an object that implements the interface is found. If none is found, call the bus implementation as usual. (2) in vl.c, add a way for current_machine to override the /machine object. A 100%-QOMified machine indeed could put a SOC-like Device there. (3) for spapr, define the machine object to something that implements said interface. It seemed a bit complicated for this particular problem, but I cannot say it's overengineered. More aspects of the configuration could be moved to the new interface over time, for example compat properties. Paolo