[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 2/6] ppc: spapr: introduce 2.5 machine type
From: |
Jason Wang |
Subject: |
[Qemu-ppc] [PATCH 2/6] ppc: spapr: introduce 2.5 machine type |
Date: |
Fri, 21 Aug 2015 17:05:46 +0800 |
This will be used by virtio 1.0 virtio-pci virtqueue migration
backward compatibility.
Cc: David Gibson <address@hidden>
Cc: Alexander Graf <address@hidden>
Cc: address@hidden
Signed-off-by: Jason Wang <address@hidden>
---
hw/ppc/spapr.c | 40 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index a6f1947..7d5b0db 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1855,7 +1855,11 @@ static const TypeInfo spapr_machine_info = {
},
};
+#define SPAPR_COMPAT_2_4 \
+ HW_COMPAT_2_4
+
#define SPAPR_COMPAT_2_3 \
+ SPAPR_COMPAT_2_4 \
HW_COMPAT_2_3 \
{\
.driver = "spapr-pci-host-bridge",\
@@ -1876,8 +1880,13 @@ static const TypeInfo spapr_machine_info = {
SPAPR_COMPAT_2_2 \
HW_COMPAT_2_1
+static void spapr_compat_2_4(Object *obj)
+{
+}
+
static void spapr_compat_2_3(Object *obj)
{
+ spapr_compat_2_4(obj);
savevm_skip_section_footers();
global_state_set_optional();
}
@@ -1892,6 +1901,12 @@ static void spapr_compat_2_1(Object *obj)
spapr_compat_2_2(obj);
}
+static void spapr_machine_2_4_instance_init(Object *obj)
+{
+ spapr_compat_2_4(obj);
+ spapr_machine_initfn(obj);
+}
+
static void spapr_machine_2_3_instance_init(Object *obj)
{
spapr_compat_2_3(obj);
@@ -1972,18 +1987,38 @@ static const TypeInfo spapr_machine_2_3_info = {
static void spapr_machine_2_4_class_init(ObjectClass *oc, void *data)
{
+ static GlobalProperty compat_props[] = {
+ SPAPR_COMPAT_2_4
+ { /* end of list */ }
+ };
MachineClass *mc = MACHINE_CLASS(oc);
mc->name = "pseries-2.4";
mc->desc = "pSeries Logical Partition (PAPR compliant) v2.4";
- mc->alias = "pseries";
- mc->is_default = 1;
+ mc->compat_props = compat_props;
}
static const TypeInfo spapr_machine_2_4_info = {
.name = TYPE_SPAPR_MACHINE "2.4",
.parent = TYPE_SPAPR_MACHINE,
.class_init = spapr_machine_2_4_class_init,
+ .instance_init = spapr_machine_2_4_instance_init,
+};
+
+static void spapr_machine_2_5_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->name = "pseries-2.5";
+ mc->desc = "pSeries Logical Partition (PAPR compliant) v2.5";
+ mc->alias = "pseries";
+ mc->is_default = 1;
+}
+
+static const TypeInfo spapr_machine_2_5_info = {
+ .name = TYPE_SPAPR_MACHINE "2.5",
+ .parent = TYPE_SPAPR_MACHINE,
+ .class_init = spapr_machine_2_5_class_init,
};
static void spapr_machine_register_types(void)
@@ -1993,6 +2028,7 @@ static void spapr_machine_register_types(void)
type_register_static(&spapr_machine_2_2_info);
type_register_static(&spapr_machine_2_3_info);
type_register_static(&spapr_machine_2_4_info);
+ type_register_static(&spapr_machine_2_5_info);
}
type_init(spapr_machine_register_types)
--
2.1.4
- [Qemu-ppc] [PATCH 2/6] ppc: spapr: introduce 2.5 machine type,
Jason Wang <=