On Tue, Aug 18, 2015 at 12:08:52PM -0700, Eduardo Habkost wrote: > DEFINE_PC_MACHINE should be eventually replaced by DEFINE_MACHINE, we > just need to eliminate the pc_compat_*() functions first. > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> > --- > include/hw/i386/pc.h | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index d0cad87..dc22608 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -694,23 +694,12 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t > *); > }, > > #define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \ > - static void pc_machine_##suffix##_class_init(ObjectClass *oc, void > *data) \ > + static void pc_machine_##suffix##_class_init(MachineClass *mc) \ > { \ > - MachineClass *mc = MACHINE_CLASS(oc); \ > optsfn(mc); \ > - mc->name = namestr; \ > mc->init = initfn; \ > } \ > - static const TypeInfo pc_machine_type_##suffix = { \ > - .name = namestr TYPE_MACHINE_SUFFIX, \ > - .parent = TYPE_PC_MACHINE, \ > - .class_init = pc_machine_##suffix##_class_init, \ > - }; \ > - static void pc_machine_init_##suffix(void) \ > - { \ > - type_register(&pc_machine_type_##suffix); \ > - } \ > - machine_init(pc_machine_init_##suffix) > + DEFINE_MACHINE(namestr, pc_machine_##suffix##_class_init)
Please drop this patch, it is broken: $ ./x86_64-softmmu/qemu-system-x86_64 -machine '?' qemu/hw/i386/pc_piix.c:502:pc_i440fx_1_6_machine_options: Object 0x555563d0adb0 is not an instance of type generic-pc-machine Aborted (core dumped) The parent class is being incorrectly changed from TYPE_PC_MACHINE to TYPE_MACHINE. -- Eduardo