Il 14/11/2013 11:37, Michael S. Tsirkin ha scritto: > Several changes that affect compatibility between 1.8 and 1.7 are > already planned, so we need pc compat structures in place. > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > > Changes from v1: > make 1.6 call 1.7 as suggested by Paolo > > hw/i386/pc_piix.c | 30 +++++++++++++++++++++++++----- > hw/i386/pc_q35.c | 27 ++++++++++++++++++++++++--- > 2 files changed, 49 insertions(+), 8 deletions(-) > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > index 049f216..b6347e2 100644 > --- a/hw/i386/pc_piix.c > +++ b/hw/i386/pc_piix.c > @@ -238,8 +238,13 @@ static void pc_init_pci(QEMUMachineInitArgs *args) > pc_init1(args, 1, 1); > } > > +static void pc_compat_1_7(QEMUMachineInitArgs *args) > +{ > +} > + > static void pc_compat_1_6(QEMUMachineInitArgs *args) > { > + pc_compat_1_6(args);
It's calling itself now. :) q35 is fine. With the obvious blunder fixed, Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> > has_pci_info = false; > rom_file_in_ram = false; > has_acpi_build = false; > @@ -272,6 +277,12 @@ static void pc_compat_1_2(QEMUMachineInitArgs *args) > disable_kvm_pv_eoi(); > } > > +static void pc_init_pci_1_7(QEMUMachineInitArgs *args) > +{ > + pc_compat_1_7(args); > + pc_init_pci(args); > +} > + > static void pc_init_pci_1_6(QEMUMachineInitArgs *args) > { > pc_compat_1_6(args); > @@ -344,16 +355,24 @@ static void pc_xen_hvm_init(QEMUMachineInitArgs *args) > .desc = "Standard PC (i440FX + PIIX, 1996)", \ > .hot_add_cpu = pc_hot_add_cpu > > -#define PC_I440FX_1_7_MACHINE_OPTIONS PC_I440FX_MACHINE_OPTIONS > -static QEMUMachine pc_i440fx_machine_v1_7 = { > - PC_I440FX_1_7_MACHINE_OPTIONS, > - .name = "pc-i440fx-1.7", > + > +#define PC_I440FX_1_8_MACHINE_OPTIONS PC_I440FX_MACHINE_OPTIONS > +static QEMUMachine pc_i440fx_machine_v1_8 = { > + PC_I440FX_1_8_MACHINE_OPTIONS, > + .name = "pc-i440fx-1.8", > .alias = "pc", > .init = pc_init_pci, > .is_default = 1, > }; > > -#define PC_I440FX_1_6_MACHINE_OPTIONS PC_I440FX_MACHINE_OPTIONS > +#define PC_I440FX_1_7_MACHINE_OPTIONS PC_I440FX_1_8_MACHINE_OPTIONS > +static QEMUMachine pc_i440fx_machine_v1_7 = { > + PC_I440FX_1_7_MACHINE_OPTIONS, > + .name = "pc-i440fx-1.7", > + .init = pc_init_pci_1_7, > +}; > + > +#define PC_I440FX_1_6_MACHINE_OPTIONS PC_I440FX_1_7_MACHINE_OPTIONS > > static QEMUMachine pc_i440fx_machine_v1_6 = { > PC_I440FX_1_6_MACHINE_OPTIONS, > @@ -752,6 +771,7 @@ static QEMUMachine xenfv_machine = { > > static void pc_machine_init(void) > { > + qemu_register_machine(&pc_i440fx_machine_v1_8); > qemu_register_machine(&pc_i440fx_machine_v1_7); > qemu_register_machine(&pc_i440fx_machine_v1_6); > qemu_register_machine(&pc_i440fx_machine_v1_5); > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > index d297000..9f3876f 100644 > --- a/hw/i386/pc_q35.c > +++ b/hw/i386/pc_q35.c > @@ -222,8 +222,13 @@ static void pc_q35_init(QEMUMachineInitArgs *args) > } > } > > +static void pc_compat_1_7(QEMUMachineInitArgs *args) > +{ > +} > + > static void pc_compat_1_6(QEMUMachineInitArgs *args) > { > + pc_compat_1_7(args); > has_pci_info = false; > rom_file_in_ram = false; > has_acpi_build = false; > @@ -243,6 +248,12 @@ static void pc_compat_1_4(QEMUMachineInitArgs *args) > x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, > CPUID_EXT_PCLMULQDQ); > } > > +static void pc_q35_init_1_7(QEMUMachineInitArgs *args) > +{ > + pc_compat_1_7(args); > + pc_q35_init(args); > +} > + > static void pc_q35_init_1_6(QEMUMachineInitArgs *args) > { > pc_compat_1_6(args); > @@ -266,16 +277,25 @@ static void pc_q35_init_1_4(QEMUMachineInitArgs *args) > .desc = "Standard PC (Q35 + ICH9, 2009)", \ > .hot_add_cpu = pc_hot_add_cpu > > -#define PC_Q35_1_7_MACHINE_OPTIONS PC_Q35_MACHINE_OPTIONS > +#define PC_Q35_1_8_MACHINE_OPTIONS PC_Q35_MACHINE_OPTIONS > + > +static QEMUMachine pc_q35_machine_v1_8 = { > + PC_Q35_1_8_MACHINE_OPTIONS, > + .name = "pc-q35-1.8", > + .alias = "q35", > + .init = pc_q35_init, > +}; > + > +#define PC_Q35_1_7_MACHINE_OPTIONS PC_Q35_1_8_MACHINE_OPTIONS > > static QEMUMachine pc_q35_machine_v1_7 = { > PC_Q35_1_7_MACHINE_OPTIONS, > .name = "pc-q35-1.7", > .alias = "q35", > - .init = pc_q35_init, > + .init = pc_q35_init_1_7, > }; > > -#define PC_Q35_1_6_MACHINE_OPTIONS PC_Q35_MACHINE_OPTIONS > +#define PC_Q35_1_6_MACHINE_OPTIONS PC_Q35_1_7_MACHINE_OPTIONS > > static QEMUMachine pc_q35_machine_v1_6 = { > PC_Q35_1_6_MACHINE_OPTIONS, > @@ -313,6 +333,7 @@ static QEMUMachine pc_q35_machine_v1_4 = { > > static void pc_q35_machine_init(void) > { > + qemu_register_machine(&pc_q35_machine_v1_8); > qemu_register_machine(&pc_q35_machine_v1_7); > qemu_register_machine(&pc_q35_machine_v1_6); > qemu_register_machine(&pc_q35_machine_v1_5); >