From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZSiH3-0003GS-I9 for qemu-devel@nongnu.org; Fri, 21 Aug 2015 05:06:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZSiH0-0002F9-Bs for qemu-devel@nongnu.org; Fri, 21 Aug 2015 05:06:09 -0400 From: Jason Wang Date: Fri, 21 Aug 2015 17:05:46 +0800 Message-Id: <1440147950-1178-3-git-send-email-jasowang@redhat.com> In-Reply-To: <1440147950-1178-1-git-send-email-jasowang@redhat.com> References: <1440147950-1178-1-git-send-email-jasowang@redhat.com> Subject: [Qemu-devel] [PATCH 2/6] ppc: spapr: introduce 2.5 machine type List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, mst@redhat.com Cc: Jason Wang , qemu-ppc@nongnu.org, Alexander Graf , David Gibson This will be used by virtio 1.0 virtio-pci virtqueue migration backward compatibility. Cc: David Gibson Cc: Alexander Graf Cc: qemu-ppc@nongnu.org Signed-off-by: Jason Wang --- 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