mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
pc: Generate init functions with a macro
All pc-i440fx and pc-q35 init functions simply call the corresponding compat function and then call the main init function. Use a macro to generate that code. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
211b5b1d0a
commit
99fbeafee8
2 changed files with 76 additions and 170 deletions
|
@ -413,18 +413,6 @@ static void pc_compat_1_2(MachineState *machine)
|
|||
x86_cpu_compat_kvm_no_autoenable(FEAT_KVM, 1 << KVM_FEATURE_PV_EOI);
|
||||
}
|
||||
|
||||
static void pc_init_pci_2_3(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_3(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_2_2(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_2(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
/* PC compat function for pc-0.10 to pc-0.13 */
|
||||
static void pc_compat_0_13(MachineState *machine)
|
||||
{
|
||||
|
@ -432,62 +420,6 @@ static void pc_compat_0_13(MachineState *machine)
|
|||
kvmclock_enabled = false;
|
||||
}
|
||||
|
||||
static void pc_init_pci_2_1(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_1(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_2_0(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_0(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_1_7(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_7(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_1_6(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_6(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_1_5(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_5(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_1_4(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_4(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_pci_1_3(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_3(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
/* PC machine init function for pc-0.14 to pc-1.2 */
|
||||
static void pc_init_pci_1_2(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_2(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
/* PC init function for pc-0.10 to pc-0.13 */
|
||||
static void pc_init_pci_no_kvmclock(MachineState *machine)
|
||||
{
|
||||
pc_compat_0_13(machine);
|
||||
pc_init1(machine);
|
||||
}
|
||||
|
||||
static void pc_init_isa(MachineState *machine)
|
||||
{
|
||||
pci_enabled = false;
|
||||
|
@ -520,6 +452,16 @@ static void pc_xen_hvm_init(MachineState *machine)
|
|||
}
|
||||
#endif
|
||||
|
||||
#define DEFINE_I440FX_MACHINE(suffix, name, compatfn, optionfn) \
|
||||
static void pc_init_##suffix(MachineState *machine) \
|
||||
{ \
|
||||
void (*compat)(MachineState *m) = (compatfn); \
|
||||
if (compat) { \
|
||||
compat(machine); \
|
||||
} \
|
||||
pc_init1(machine); \
|
||||
} \
|
||||
DEFINE_PC_MACHINE(suffix, name, pc_init_##suffix, optionfn)
|
||||
|
||||
static void pc_i440fx_machine_options(MachineClass *m)
|
||||
{
|
||||
|
@ -538,7 +480,7 @@ static void pc_i440fx_2_4_machine_options(MachineClass *m)
|
|||
m->is_default = 1;
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_4, "pc-i440fx-2.4", pc_init1,
|
||||
DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL,
|
||||
pc_i440fx_2_4_machine_options)
|
||||
|
||||
|
||||
|
@ -550,7 +492,7 @@ static void pc_i440fx_2_3_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_3);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_3, "pc-i440fx-2.3", pc_init_pci_2_3,
|
||||
DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3,
|
||||
pc_i440fx_2_3_machine_options);
|
||||
|
||||
|
||||
|
@ -560,7 +502,7 @@ static void pc_i440fx_2_2_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_2);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_2, "pc-i440fx-2.2", pc_init_pci_2_2,
|
||||
DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2,
|
||||
pc_i440fx_2_2_machine_options);
|
||||
|
||||
|
||||
|
@ -571,7 +513,7 @@ static void pc_i440fx_2_1_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_1);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_1, "pc-i440fx-2.1", pc_init_pci_2_1,
|
||||
DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1,
|
||||
pc_i440fx_2_1_machine_options);
|
||||
|
||||
|
||||
|
@ -582,7 +524,7 @@ static void pc_i440fx_2_0_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_0);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_0, "pc-i440fx-2.0", pc_init_pci_2_0,
|
||||
DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0,
|
||||
pc_i440fx_2_0_machine_options);
|
||||
|
||||
|
||||
|
@ -593,7 +535,7 @@ static void pc_i440fx_1_7_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_7);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_7, "pc-i440fx-1.7", pc_init_pci_1_7,
|
||||
DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7,
|
||||
pc_i440fx_1_7_machine_options);
|
||||
|
||||
|
||||
|
@ -603,7 +545,7 @@ static void pc_i440fx_1_6_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_6);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_6, "pc-i440fx-1.6", pc_init_pci_1_6,
|
||||
DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6,
|
||||
pc_i440fx_1_6_machine_options);
|
||||
|
||||
|
||||
|
@ -613,7 +555,7 @@ static void pc_i440fx_1_5_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_5);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_5, "pc-i440fx-1.5", pc_init_pci_1_5,
|
||||
DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5,
|
||||
pc_i440fx_1_5_machine_options);
|
||||
|
||||
|
||||
|
@ -624,7 +566,7 @@ static void pc_i440fx_1_4_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_4);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_4, "pc-i440fx-1.4", pc_init_pci_1_4,
|
||||
DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4,
|
||||
pc_i440fx_1_4_machine_options);
|
||||
|
||||
|
||||
|
@ -655,7 +597,7 @@ static void pc_i440fx_1_3_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_3);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_3, "pc-1.3", pc_init_pci_1_3,
|
||||
DEFINE_I440FX_MACHINE(v1_3, "pc-1.3", pc_compat_1_3,
|
||||
pc_i440fx_1_3_machine_options);
|
||||
|
||||
|
||||
|
@ -693,7 +635,7 @@ static void pc_i440fx_1_2_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_2);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_2, "pc-1.2", pc_init_pci_1_2,
|
||||
DEFINE_I440FX_MACHINE(v1_2, "pc-1.2", pc_compat_1_2,
|
||||
pc_i440fx_1_2_machine_options);
|
||||
|
||||
|
||||
|
@ -735,7 +677,7 @@ static void pc_i440fx_1_1_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_1);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_1, "pc-1.1", pc_init_pci_1_2,
|
||||
DEFINE_I440FX_MACHINE(v1_1, "pc-1.1", pc_compat_1_2,
|
||||
pc_i440fx_1_1_machine_options);
|
||||
|
||||
|
||||
|
@ -766,7 +708,7 @@ static void pc_i440fx_1_0_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_0);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_0, "pc-1.0", pc_init_pci_1_2,
|
||||
DEFINE_I440FX_MACHINE(v1_0, "pc-1.0", pc_compat_1_2,
|
||||
pc_i440fx_1_0_machine_options);
|
||||
|
||||
|
||||
|
@ -780,7 +722,7 @@ static void pc_i440fx_0_15_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_15);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_15, "pc-0.15", pc_init_pci_1_2,
|
||||
DEFINE_I440FX_MACHINE(v0_15, "pc-0.15", pc_compat_1_2,
|
||||
pc_i440fx_0_15_machine_options);
|
||||
|
||||
|
||||
|
@ -819,7 +761,7 @@ static void pc_i440fx_0_14_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_14);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_14, "pc-0.14", pc_init_pci_1_2,
|
||||
DEFINE_I440FX_MACHINE(v0_14, "pc-0.14", pc_compat_1_2,
|
||||
pc_i440fx_0_14_machine_options);
|
||||
|
||||
|
||||
|
@ -854,7 +796,7 @@ static void pc_i440fx_0_13_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_13);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_13, "pc-0.13", pc_init_pci_no_kvmclock,
|
||||
DEFINE_I440FX_MACHINE(v0_13, "pc-0.13", pc_compat_0_13,
|
||||
pc_i440fx_0_13_machine_options);
|
||||
|
||||
|
||||
|
@ -889,7 +831,7 @@ static void pc_i440fx_0_12_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_12);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_12, "pc-0.12", pc_init_pci_no_kvmclock,
|
||||
DEFINE_I440FX_MACHINE(v0_12, "pc-0.12", pc_compat_0_13,
|
||||
pc_i440fx_0_12_machine_options);
|
||||
|
||||
|
||||
|
@ -920,7 +862,7 @@ static void pc_i440fx_0_11_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_11);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_11, "pc-0.11", pc_init_pci_no_kvmclock,
|
||||
DEFINE_I440FX_MACHINE(v0_11, "pc-0.11", pc_compat_0_13,
|
||||
pc_i440fx_0_11_machine_options);
|
||||
|
||||
|
||||
|
@ -955,7 +897,7 @@ static void pc_i440fx_0_10_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_0_10);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v0_10, "pc-0.10", pc_init_pci_no_kvmclock,
|
||||
DEFINE_I440FX_MACHINE(v0_10, "pc-0.10", pc_compat_0_13,
|
||||
pc_i440fx_0_10_machine_options);
|
||||
|
||||
|
||||
|
|
|
@ -366,53 +366,17 @@ static void pc_compat_1_4(MachineState *machine)
|
|||
x86_cpu_compat_set_features("Westmere", FEAT_1_ECX, 0, CPUID_EXT_PCLMULQDQ);
|
||||
}
|
||||
|
||||
static void pc_q35_init_2_3(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_3(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
#define DEFINE_Q35_MACHINE(suffix, name, compatfn, optionfn) \
|
||||
static void pc_init_##suffix(MachineState *machine) \
|
||||
{ \
|
||||
void (*compat)(MachineState *m) = (compatfn); \
|
||||
if (compat) { \
|
||||
compat(machine); \
|
||||
} \
|
||||
pc_q35_init(machine); \
|
||||
} \
|
||||
DEFINE_PC_MACHINE(suffix, name, pc_init_##suffix, optionfn)
|
||||
|
||||
static void pc_q35_init_2_2(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_2(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_2_1(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_1(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_2_0(MachineState *machine)
|
||||
{
|
||||
pc_compat_2_0(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_1_7(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_7(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_1_6(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_6(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_1_5(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_5(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_init_1_4(MachineState *machine)
|
||||
{
|
||||
pc_compat_1_4(machine);
|
||||
pc_q35_init(machine);
|
||||
}
|
||||
|
||||
static void pc_q35_machine_options(MachineClass *m)
|
||||
{
|
||||
|
@ -431,7 +395,7 @@ static void pc_q35_2_4_machine_options(MachineClass *m)
|
|||
m->alias = "q35";
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_4, "pc-q35-2.4", pc_q35_init,
|
||||
DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL,
|
||||
pc_q35_2_4_machine_options);
|
||||
|
||||
|
||||
|
@ -442,7 +406,7 @@ static void pc_q35_2_3_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_3);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_3, "pc-q35-2.3", pc_q35_init_2_3,
|
||||
DEFINE_Q35_MACHINE(v2_3, "pc-q35-2.3", pc_compat_2_3,
|
||||
pc_q35_2_3_machine_options);
|
||||
|
||||
|
||||
|
@ -452,7 +416,7 @@ static void pc_q35_2_2_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_2);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_2, "pc-q35-2.2", pc_q35_init_2_2,
|
||||
DEFINE_Q35_MACHINE(v2_2, "pc-q35-2.2", pc_compat_2_2,
|
||||
pc_q35_2_2_machine_options);
|
||||
|
||||
|
||||
|
@ -463,7 +427,7 @@ static void pc_q35_2_1_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_1);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_1, "pc-q35-2.1", pc_q35_init_2_1,
|
||||
DEFINE_Q35_MACHINE(v2_1, "pc-q35-2.1", pc_compat_2_1,
|
||||
pc_q35_2_1_machine_options);
|
||||
|
||||
|
||||
|
@ -473,7 +437,7 @@ static void pc_q35_2_0_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_2_0);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v2_0, "pc-q35-2.0", pc_q35_init_2_0,
|
||||
DEFINE_Q35_MACHINE(v2_0, "pc-q35-2.0", pc_compat_2_0,
|
||||
pc_q35_2_0_machine_options);
|
||||
|
||||
|
||||
|
@ -484,7 +448,7 @@ static void pc_q35_1_7_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_7);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_7, "pc-q35-1.7", pc_q35_init_1_7,
|
||||
DEFINE_Q35_MACHINE(v1_7, "pc-q35-1.7", pc_compat_1_7,
|
||||
pc_q35_1_7_machine_options);
|
||||
|
||||
|
||||
|
@ -494,7 +458,7 @@ static void pc_q35_1_6_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_6);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_6, "pc-q35-1.6", pc_q35_init_1_6,
|
||||
DEFINE_Q35_MACHINE(v1_6, "pc-q35-1.6", pc_compat_1_6,
|
||||
pc_q35_1_6_machine_options);
|
||||
|
||||
|
||||
|
@ -504,7 +468,7 @@ static void pc_q35_1_5_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_5);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_5, "pc-q35-1.5", pc_q35_init_1_5,
|
||||
DEFINE_Q35_MACHINE(v1_5, "pc-q35-1.5", pc_compat_1_5,
|
||||
pc_q35_1_5_machine_options);
|
||||
|
||||
|
||||
|
@ -515,5 +479,5 @@ static void pc_q35_1_4_machine_options(MachineClass *m)
|
|||
SET_MACHINE_COMPAT(m, PC_COMPAT_1_4);
|
||||
}
|
||||
|
||||
DEFINE_PC_MACHINE(v1_4, "pc-q35-1.4", pc_q35_init_1_4,
|
||||
DEFINE_Q35_MACHINE(v1_4, "pc-q35-1.4", pc_compat_1_4,
|
||||
pc_q35_1_4_machine_options);
|
||||
|
|
Loading…
Reference in a new issue