|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 09/15] hw/ppc: expand DEFINE_MACHINE for PowerPC machines
Expand DEFINE_MACHINE() and DEFINE_MACHINE_EXTENDED() in the PowerPC
machine files to explicit TypeInfo and type_register_static() calls,
adding the pegasos base machine to pegasos_machine_types[] in
hw/ppc/pegasos.c.
Signed-off-by: Yonggang Luo <luoyonggang@xxxxxxxxx>
---
hw/ppc/amigaone.c | 18 ++++++++++++++++--
hw/ppc/pegasos.c | 21 ++++++++++++++-------
hw/ppc/ppc440_bamboo.c | 18 ++++++++++++++++--
hw/ppc/prep.c | 18 ++++++++++++++++--
hw/ppc/sam460ex.c | 18 ++++++++++++++++--
hw/ppc/virtex_ml507.c | 18 ++++++++++++++++--
6 files changed, 94 insertions(+), 17 deletions(-)
diff --git a/hw/ppc/amigaone.c b/hw/ppc/amigaone.c
index 2e94e80b569..3cd3e92d2d8 100644
--- a/hw/ppc/amigaone.c
+++ b/hw/ppc/amigaone.c
@@ -416,8 +416,10 @@ static void amigaone_init(MachineState *machine)
}
}
-static void amigaone_machine_init(MachineClass *mc)
+static void amigaone_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "Eyetech AmigaOne/Mai Logic Teron";
mc->init = amigaone_init;
mc->block_default_type = IF_IDE;
@@ -427,4 +429,16 @@ static void amigaone_machine_init(MachineClass *mc)
mc->default_ram_size = 512 * MiB;
}
-DEFINE_MACHINE("amigaone", amigaone_machine_init)
+static const TypeInfo amigaone_machine_typeinfo = {
+ .name = MACHINE_TYPE_NAME("amigaone"),
+ .parent = TYPE_MACHINE,
+ .class_init = amigaone_machine_class_init,
+ .instance_size = sizeof(MachineState),
+};
+
+static void amigaone_machine_register_types(void)
+{
+ type_register_static(&amigaone_machine_typeinfo);
+}
+
+type_init(amigaone_machine_register_types)
diff --git a/hw/ppc/pegasos.c b/hw/ppc/pegasos.c
index fba2a558905..ffa63456320 100644
--- a/hw/ppc/pegasos.c
+++ b/hw/ppc/pegasos.c
@@ -732,8 +732,9 @@ static bool pegasos_setprop(MachineState *ms, const char
*path,
return true;
}
-static void pegasos_machine_init(MachineClass *mc)
+static void pegasos_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
PPCVirtualHypervisorClass *vhc = PPC_VIRTUAL_HYPERVISOR_CLASS(mc);
VofMachineIfClass *vmc = VOF_MACHINE_CLASS(mc);
@@ -787,13 +788,19 @@ static void pegasos2_machine_class_init(ObjectClass *oc,
const void *data)
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("7457_v1.2");
}
-DEFINE_MACHINE_EXTENDED("pegasos", MACHINE, PegasosMachineState,
- pegasos_machine_init, true, false,
- (const InterfaceInfo[]) {
- { TYPE_PPC_VIRTUAL_HYPERVISOR },
- { TYPE_VOF_MACHINE_IF }, { } })
-
static const TypeInfo pegasos_machine_types[] = {
+ {
+ .name = MACHINE_TYPE_NAME("pegasos"),
+ .parent = TYPE_MACHINE,
+ .class_init = pegasos_machine_class_init,
+ .instance_size = sizeof(PegasosMachineState),
+ .abstract = true,
+ .interfaces = (const InterfaceInfo[]) {
+ { TYPE_PPC_VIRTUAL_HYPERVISOR },
+ { TYPE_VOF_MACHINE_IF },
+ { }
+ },
+ },
{
.name = MACHINE_TYPE_NAME("pegasos1"),
.parent = TYPE_PEGASOS_MACHINE,
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 2dde008b0e4..401f7bee572 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -256,8 +256,10 @@ static void bamboo_init(MachineState *machine)
}
}
-static void bamboo_machine_init(MachineClass *mc)
+static void bamboo_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "bamboo";
mc->init = bamboo_init;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("440epb");
@@ -265,4 +267,16 @@ static void bamboo_machine_init(MachineClass *mc)
mc->default_nic = "e1000";
}
-DEFINE_MACHINE("bamboo", bamboo_machine_init)
+static const TypeInfo bamboo_machine_typeinfo = {
+ .name = MACHINE_TYPE_NAME("bamboo"),
+ .parent = TYPE_MACHINE,
+ .class_init = bamboo_machine_class_init,
+ .instance_size = sizeof(MachineState),
+};
+
+static void bamboo_machine_register_types(void)
+{
+ type_register_static(&bamboo_machine_typeinfo);
+}
+
+type_init(bamboo_machine_register_types)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 2672eb9e7a7..4afc4e20c67 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -441,8 +441,10 @@ static void ibm_40p_init(MachineState *machine)
}
}
-static void ibm_40p_machine_init(MachineClass *mc)
+static void ibm_40p_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "IBM RS/6000 7020 (40p)",
mc->init = ibm_40p_init;
mc->max_cpus = 1;
@@ -456,4 +458,16 @@ static void ibm_40p_machine_init(MachineClass *mc)
machine_add_audiodev_property(mc);
}
-DEFINE_MACHINE("40p", ibm_40p_machine_init)
+static const TypeInfo ibm_40p_machine_typeinfo = {
+ .name = MACHINE_TYPE_NAME("40p"),
+ .parent = TYPE_MACHINE,
+ .class_init = ibm_40p_machine_class_init,
+ .instance_size = sizeof(MachineState),
+};
+
+static void ibm_40p_machine_register_types(void)
+{
+ type_register_static(&ibm_40p_machine_typeinfo);
+}
+
+type_init(ibm_40p_machine_register_types)
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index b13dd224ba1..934ae3874c3 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -509,8 +509,10 @@ static void sam460ex_init(MachineState *machine)
boot_info->entry = entry;
}
-static void sam460ex_machine_init(MachineClass *mc)
+static void sam460ex_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "aCube Sam460ex";
mc->init = sam460ex_init;
mc->block_default_type = IF_IDE;
@@ -519,4 +521,16 @@ static void sam460ex_machine_init(MachineClass *mc)
mc->default_ram_id = "ppc4xx.sdram";
}
-DEFINE_MACHINE("sam460ex", sam460ex_machine_init)
+static const TypeInfo sam460ex_machine_typeinfo = {
+ .name = MACHINE_TYPE_NAME("sam460ex"),
+ .parent = TYPE_MACHINE,
+ .class_init = sam460ex_machine_class_init,
+ .instance_size = sizeof(MachineState),
+};
+
+static void sam460ex_machine_register_types(void)
+{
+ type_register_static(&sam460ex_machine_typeinfo);
+}
+
+type_init(sam460ex_machine_register_types)
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 09686360e16..2a4c8c9fc93 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -281,12 +281,26 @@ static void virtex_init(MachineState *machine)
env->load_info = &boot_info;
}
-static void virtex_machine_init(MachineClass *mc)
+static void virtex_machine_class_init(ObjectClass *oc, const void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
mc->desc = "Xilinx Virtex ML507 reference design";
mc->init = virtex_init;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("440-xilinx");
mc->default_ram_id = "ram";
}
-DEFINE_MACHINE("virtex-ml507", virtex_machine_init)
+static const TypeInfo virtex_machine_typeinfo = {
+ .name = MACHINE_TYPE_NAME("virtex-ml507"),
+ .parent = TYPE_MACHINE,
+ .class_init = virtex_machine_class_init,
+ .instance_size = sizeof(MachineState),
+};
+
+static void virtex_machine_register_types(void)
+{
+ type_register_static(&virtex_machine_typeinfo);
+}
+
+type_init(virtex_machine_register_types)
--
2.55.0.windows.3
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |