On Tue, 2014-04-29 at 16:55 +0200, Andreas Färber wrote: > Am 27.04.2014 11:08, schrieb Marcel Apfelbaum: > > On Sat, 2014-04-26 at 00:30 +0200, Andreas Färber wrote: > >> Am 09.04.2014 19:34, schrieb Marcel Apfelbaum: > >>> Next steps: > >>> - Replace QemuOpts queries by MachineState fields. > >>> - Follow Paolo's suggestions to get rid of QEMUMachineInitArgs. > >> > >> Another next step will be re-evaluating the PC machines: If we let > >> pc-x.y inherit from either an abstract base type or from the latest PC > >> machine, then macro'ified copying of machine options can be replaced > >> with overriding the actually changing values. > > Are you referring to PC_COMPAT_xxx macros - compat_props? > > Actually I rather meant PC_COMMON_MACHINE_OPTIONS, > PC_DEFAULT_MACHINE_OPTIONS, PC_I440FX_MACHINE_OPTIONS, > PC_Q35_MACHINE_OPTIONS et al. which are setting QEMUMachine fields, to > be converted to MachineClass fields. Rather than just have them > converted from ".foo = bar," to "dc->foo = bar;" I was thinking we might > put the common parts into a base type's *_class_init while at it, and > let the values be inherited via QOM rather than through repeated macro > usage. This would be the QOM way :), sure
> > Another more crazy thought would be whether we can construct a clever > type inheritance hierarchy so that the 1.7 is based off 2.0, etc. > That's about pc_compat_*() and pc_init_pci_*() / pc_q35_init_*() functions. I was thinking about what would be the 'right' hierarchy that will let us inherit/override all properties that are currently defined as macros. This is definitely on my todo list. > > But you are of course right that we could/should at some point also > re-evaluate the rest of our PC macros, such as PC_COMPAT_xxx. :) > > > If yes, I was thinking about approaching this in a not distant future. > > Good. Maybe it makes sense to track these TODO items on a Wiki page, > such as http://wiki.qemu-project.org/Features/QOM/Machine? Yes, I was thinking to add the plans in DeveloperNews and CodeTransitions, but a full page will do it too :). I'll get to it. Thanks, Marcel > > Cheers, > Andreas >