As part of implementing the virtio-rng backend support, I decided it was best to split off the generic part of the series to make review easier.
This series does a few things. It adds a realized property to DeviceState. It does so in the least invasive way possible and I think this is the right way to break the log jam here. It also introduced two new command line options which are basically the same: -object and -object-late. These options are like -device but let you create arbitrary QOM objects. -device is now equivalent to -object with a little bit of additional magic to do bus resolution. Instead of: -device virtio-rng-pci,rng=rng0 You can do: -late-object virtio-rng-pci,parent_bus=pci.0,rng=rng0,id=dev0 The reason for having both -object and -late-object is that late-object is made after machine init whereas -object is made before machine init. As soon as machine init becomes a fully QOM mechanism, the distinction between these two commands will disappear.