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

Reply via email to