[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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.