From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383269126840.0780550012787; Fri, 21 Dec 2018 01:07:49 -0800 (PST) Received: from localhost ([::1]:44353 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGmZ-000588-IX for importer@patchew.org; Fri, 21 Dec 2018 04:07:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjb-0002yM-PR for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjV-0000Ym-HH for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:41 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48412) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjT-0000OC-L1 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:36 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F0EEF796E8 for ; Fri, 21 Dec 2018 09:04:19 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5540C10018F8; Fri, 21 Dec 2018 09:04:17 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:43 +0400 Message-Id: <20181221090410.27250-2-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 21 Dec 2018 09:04:20 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 01/28] hw: apply accel compat properties without touching globals X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Instead of registering compat properties as globals, let's keep them in their own array, to avoid mixing with user globals. Introduce object_apply_global_props() function, to apply compatibility properties from a GPtrArray. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck --- include/hw/qdev-core.h | 10 ++++++++++ include/qom/object.h | 3 +++ include/sysemu/accel.h | 4 +--- accel/accel.c | 12 ------------ hw/core/qdev.c | 9 +++++++++ hw/xen/xen-common.c | 9 ++++++--- qom/object.c | 25 +++++++++++++++++++++++++ vl.c | 1 - 8 files changed, 54 insertions(+), 19 deletions(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 92851e55df..84e612f473 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -267,6 +267,16 @@ typedef struct GlobalProperty { Error **errp; } GlobalProperty; =20 +static inline void +compat_props_add(GPtrArray *arr, + GlobalProperty props[], size_t nelem) +{ + int i; + for (i =3D 0; i < nelem; i++) { + g_ptr_array_add(arr, (void *)&props[i]); + } +} + /*** Board API. This should go away once we have a machine config file. = ***/ =20 DeviceState *qdev_create(BusState *bus, const char *name); diff --git a/include/qom/object.h b/include/qom/object.h index bcae3f4951..e0262962b5 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -675,6 +675,9 @@ Object *object_new_with_propv(const char *typename, Error **errp, va_list vargs); =20 +void object_apply_global_props(Object *obj, const GPtrArray *props, + Error **errp); + /** * object_set_props: * @obj: the object instance to set properties on diff --git a/include/sysemu/accel.h b/include/sysemu/accel.h index 637358f430..f331d128e9 100644 --- a/include/sysemu/accel.h +++ b/include/sysemu/accel.h @@ -49,7 +49,7 @@ typedef struct AccelClass { * global properties may be overridden by machine-type * compat_props or user-provided global properties. */ - GlobalProperty *global_props; + GPtrArray *compat_props; } AccelClass; =20 #define TYPE_ACCEL "accel" @@ -67,8 +67,6 @@ typedef struct AccelClass { extern unsigned long tcg_tb_size; =20 void configure_accelerator(MachineState *ms); -/* Register accelerator specific global properties */ -void accel_register_compat_props(AccelState *accel); /* Called just before os_setup_post (ie just before drop OS privs) */ void accel_setup_post(MachineState *ms); =20 diff --git a/accel/accel.c b/accel/accel.c index 3da26eb90f..6db5d8f4df 100644 --- a/accel/accel.c +++ b/accel/accel.c @@ -119,18 +119,6 @@ void configure_accelerator(MachineState *ms) } } =20 -void accel_register_compat_props(AccelState *accel) -{ - AccelClass *class =3D ACCEL_GET_CLASS(accel); - GlobalProperty *prop =3D class->global_props; - - for (; prop && prop->driver; prop++) { - /* Any compat_props must never cause error */ - prop->errp =3D &error_abort; - qdev_prop_register_global(prop); - } -} - void accel_setup_post(MachineState *ms) { AccelState *accel =3D ms->accelerator; diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 6b3cc55b27..53b507164f 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -972,6 +972,15 @@ static void device_initfn(Object *obj) =20 static void device_post_init(Object *obj) { + if (object_dynamic_cast(qdev_get_machine(), TYPE_MACHINE)) { + MachineState *m =3D MACHINE(qdev_get_machine()); + AccelClass *ac =3D ACCEL_GET_CLASS(m->accelerator); + + if (ac->compat_props) { + object_apply_global_props(obj, ac->compat_props, &error_abort); + } + } + qdev_prop_set_globals(DEVICE(obj)); } =20 diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index 6ec14c73ca..4532aa8632 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -174,18 +174,21 @@ static GlobalProperty xen_compat_props[] =3D { .driver =3D "migration", .property =3D "send-section-footer", .value =3D "off", - }, - { /* end of list */ }, + } }; =20 static void xen_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac =3D ACCEL_CLASS(oc); + ac->name =3D "Xen"; ac->init_machine =3D xen_init; ac->setup_post =3D xen_setup_post; ac->allowed =3D &xen_allowed; - ac->global_props =3D xen_compat_props; + ac->compat_props =3D g_ptr_array_new(); + + compat_props_add(ac->compat_props, + xen_compat_props, G_N_ELEMENTS(xen_compat_props)); } =20 #define TYPE_XEN_ACCEL ACCEL_CLASS_NAME("xen") diff --git a/qom/object.c b/qom/object.c index 17921c0a71..dbdab0aead 100644 --- a/qom/object.c +++ b/qom/object.c @@ -370,6 +370,31 @@ static void object_post_init_with_type(Object *obj, Ty= peImpl *ti) } } =20 +void object_apply_global_props(Object *obj, const GPtrArray *props, Error = **errp) +{ + Error *err =3D NULL; + int i; + + if (!props) { + return; + } + + for (i =3D 0; i < props->len; i++) { + GlobalProperty *p =3D g_ptr_array_index(props, i); + + if (object_dynamic_cast(obj, p->driver) =3D=3D NULL) { + continue; + } + p->used =3D true; + object_property_parse(obj, p->value, p->property, &err); + if (err !=3D NULL) { + error_prepend(&err, "can't apply global %s.%s=3D%s: ", + p->driver, p->property, p->value); + error_propagate(errp, err); + } + } +} + static void object_initialize_with_type(void *data, size_t size, TypeImpl = *type) { Object *obj =3D data; diff --git a/vl.c b/vl.c index f5c8ef973c..7971470539 100644 --- a/vl.c +++ b/vl.c @@ -2984,7 +2984,6 @@ static void user_register_global_props(void) */ static void register_global_properties(MachineState *ms) { - accel_register_compat_props(ms->accelerator); machine_register_compat_props(ms); user_register_global_props(); } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383407516761.3400062647829; Fri, 21 Dec 2018 01:10:07 -0800 (PST) Received: from localhost ([::1]:44363 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGom-00079r-Ul for importer@patchew.org; Fri, 21 Dec 2018 04:10:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37976) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjb-0002yL-PR for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjV-0000Ys-Ib for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:41 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59586) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjT-0000Rt-Jm for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:36 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 35F20AB416 for ; Fri, 21 Dec 2018 09:04:27 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id CC28B17130; Fri, 21 Dec 2018 09:04:23 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:44 +0400 Message-Id: <20181221090410.27250-3-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:04:27 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 02/28] machines: replace COMPAT define with a static array X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 10 +- hw/arm/virt.c | 45 +-- hw/i386/pc_piix.c | 563 +++++++++++++++++++++---------------- hw/i386/pc_q35.c | 66 ++++- hw/ppc/spapr.c | 201 ++++++------- hw/s390x/s390-virtio-ccw.c | 219 ++++++++------- 6 files changed, 622 insertions(+), 482 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f82f28468b..92aa43a40e 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -288,18 +288,14 @@ struct MachineState { } \ type_init(machine_initfn##_register_types) =20 -#define SET_MACHINE_COMPAT(m, COMPAT) \ +#define SET_MACHINE_COMPAT(m, compat) \ do { \ int i; \ - static GlobalProperty props[] =3D { \ - COMPAT \ - { /* end of list */ } \ - }; \ if (!m->compat_props) { \ m->compat_props =3D g_array_new(false, false, sizeof(void *));= \ } \ - for (i =3D 0; props[i].driver !=3D NULL; i++) { \ - GlobalProperty *prop =3D &props[i]; \ + for (i =3D 0; i < G_N_ELEMENTS(compat); i++) { \ + GlobalProperty *prop =3D &compat[i]; \ g_array_append_val(m->compat_props, prop); \ } \ } while (0) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 5b678237b7..f3155efa07 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1872,84 +1872,91 @@ static void virt_machine_4_0_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE_AS_LATEST(4, 0) =20 -#define VIRT_COMPAT_3_1 \ +static GlobalProperty virt_compat_3_1[] =3D { HW_COMPAT_3_1 +}; =20 static void virt_machine_3_1_options(MachineClass *mc) { virt_machine_4_0_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_3_1); + SET_MACHINE_COMPAT(mc, virt_compat_3_1); } DEFINE_VIRT_MACHINE(3, 1) =20 -#define VIRT_COMPAT_3_0 \ +static GlobalProperty virt_compat_3_0[] =3D { HW_COMPAT_3_0 +}; =20 static void virt_machine_3_0_options(MachineClass *mc) { virt_machine_3_1_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_3_0); + SET_MACHINE_COMPAT(mc, virt_compat_3_0); } DEFINE_VIRT_MACHINE(3, 0) =20 -#define VIRT_COMPAT_2_12 \ +static GlobalProperty virt_compat_2_12[] =3D { HW_COMPAT_2_12 +}; =20 static void virt_machine_2_12_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_3_0_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_12); + SET_MACHINE_COMPAT(mc, virt_compat_2_12); vmc->no_highmem_ecam =3D true; mc->max_cpus =3D 255; } DEFINE_VIRT_MACHINE(2, 12) =20 -#define VIRT_COMPAT_2_11 \ +static GlobalProperty virt_compat_2_11[] =3D { HW_COMPAT_2_11 +}; =20 static void virt_machine_2_11_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_12_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_11); + SET_MACHINE_COMPAT(mc, virt_compat_2_11); vmc->smbios_old_sys_ver =3D true; } DEFINE_VIRT_MACHINE(2, 11) =20 -#define VIRT_COMPAT_2_10 \ +static GlobalProperty virt_compat_2_10[] =3D { HW_COMPAT_2_10 +}; =20 static void virt_machine_2_10_options(MachineClass *mc) { virt_machine_2_11_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_10); + SET_MACHINE_COMPAT(mc, virt_compat_2_10); /* before 2.11 we never faulted accesses to bad addresses */ mc->ignore_memory_transaction_failures =3D true; } DEFINE_VIRT_MACHINE(2, 10) =20 -#define VIRT_COMPAT_2_9 \ +static GlobalProperty virt_compat_2_9[] =3D { HW_COMPAT_2_9 +}; =20 static void virt_machine_2_9_options(MachineClass *mc) { virt_machine_2_10_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_9); + SET_MACHINE_COMPAT(mc, virt_compat_2_9); } DEFINE_VIRT_MACHINE(2, 9) =20 -#define VIRT_COMPAT_2_8 \ +static GlobalProperty virt_compat_2_8[] =3D { HW_COMPAT_2_8 +}; =20 static void virt_machine_2_8_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_9_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_8); + SET_MACHINE_COMPAT(mc, virt_compat_2_8); /* For 2.8 and earlier we falsely claimed in the DT that * our timers were edge-triggered, not level-triggered. */ @@ -1957,15 +1964,16 @@ static void virt_machine_2_8_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE(2, 8) =20 -#define VIRT_COMPAT_2_7 \ +static GlobalProperty virt_compat_2_7[] =3D { HW_COMPAT_2_7 +}; =20 static void virt_machine_2_7_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_8_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_7); + SET_MACHINE_COMPAT(mc, virt_compat_2_7); /* ITS was introduced with 2.8 */ vmc->no_its =3D true; /* Stick with 1K pages for migration compatibility */ @@ -1973,15 +1981,16 @@ static void virt_machine_2_7_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE(2, 7) =20 -#define VIRT_COMPAT_2_6 \ +static GlobalProperty virt_compat_2_6[] =3D { HW_COMPAT_2_6 +}; =20 static void virt_machine_2_6_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_7_options(mc); - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_6); + SET_MACHINE_COMPAT(mc, virt_compat_2_6); vmc->disallow_affinity_adjustment =3D true; /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ vmc->no_pmu =3D true; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 6981cfa740..8ade7318e0 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -438,83 +438,117 @@ static void pc_i440fx_4_0_machine_options(MachineCla= ss *m) DEFINE_I440FX_MACHINE(v4_0, "pc-i440fx-4.0", NULL, pc_i440fx_4_0_machine_options); =20 +static GlobalProperty pc_compat_3_1[] =3D { + PC_COMPAT_3_1 +}; + static void pc_i440fx_3_1_machine_options(MachineClass *m) { pc_i440fx_4_0_machine_options(m); m->is_default =3D 0; m->alias =3D NULL; - SET_MACHINE_COMPAT(m, PC_COMPAT_3_1); + SET_MACHINE_COMPAT(m, pc_compat_3_1); } =20 DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, pc_i440fx_3_1_machine_options); =20 +static GlobalProperty pc_compat_3_0[] =3D { + PC_COMPAT_3_0 +}; + static void pc_i440fx_3_0_machine_options(MachineClass *m) { pc_i440fx_3_1_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_3_0); + SET_MACHINE_COMPAT(m, pc_compat_3_0); } =20 DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, pc_i440fx_3_0_machine_options); =20 +static GlobalProperty pc_compat_2_12[] =3D { + PC_COMPAT_2_12 +}; + static void pc_i440fx_2_12_machine_options(MachineClass *m) { pc_i440fx_3_0_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); + SET_MACHINE_COMPAT(m, pc_compat_2_12); } =20 DEFINE_I440FX_MACHINE(v2_12, "pc-i440fx-2.12", NULL, pc_i440fx_2_12_machine_options); =20 +static GlobalProperty pc_compat_2_11[] =3D { + PC_COMPAT_2_11 +}; + static void pc_i440fx_2_11_machine_options(MachineClass *m) { pc_i440fx_2_12_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_11); + SET_MACHINE_COMPAT(m, pc_compat_2_11); } =20 DEFINE_I440FX_MACHINE(v2_11, "pc-i440fx-2.11", NULL, pc_i440fx_2_11_machine_options); =20 +static GlobalProperty pc_compat_2_10[] =3D { + PC_COMPAT_2_10 +}; + static void pc_i440fx_2_10_machine_options(MachineClass *m) { pc_i440fx_2_11_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_10); + SET_MACHINE_COMPAT(m, pc_compat_2_10); m->auto_enable_numa_with_memhp =3D false; } =20 DEFINE_I440FX_MACHINE(v2_10, "pc-i440fx-2.10", NULL, pc_i440fx_2_10_machine_options); =20 +static GlobalProperty pc_compat_2_9[] =3D { + PC_COMPAT_2_9 +}; + static void pc_i440fx_2_9_machine_options(MachineClass *m) { pc_i440fx_2_10_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_9); + SET_MACHINE_COMPAT(m, pc_compat_2_9); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; } =20 DEFINE_I440FX_MACHINE(v2_9, "pc-i440fx-2.9", NULL, pc_i440fx_2_9_machine_options); =20 +static GlobalProperty pc_compat_2_8[] =3D { + PC_COMPAT_2_8 +}; + static void pc_i440fx_2_8_machine_options(MachineClass *m) { pc_i440fx_2_9_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_8); + SET_MACHINE_COMPAT(m, pc_compat_2_8); } =20 DEFINE_I440FX_MACHINE(v2_8, "pc-i440fx-2.8", NULL, pc_i440fx_2_8_machine_options); =20 +static GlobalProperty pc_compat_2_7[] =3D { + PC_COMPAT_2_7 +}; =20 static void pc_i440fx_2_7_machine_options(MachineClass *m) { pc_i440fx_2_8_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_7); + SET_MACHINE_COMPAT(m, pc_compat_2_7); } =20 DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, pc_i440fx_2_7_machine_options); =20 +static GlobalProperty pc_compat_2_6[] =3D { + PC_COMPAT_2_6 +}; =20 static void pc_i440fx_2_6_machine_options(MachineClass *m) { @@ -522,12 +556,15 @@ static void pc_i440fx_2_6_machine_options(MachineClas= s *m) pc_i440fx_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_6); + SET_MACHINE_COMPAT(m, pc_compat_2_6); } =20 DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, pc_i440fx_2_6_machine_options); =20 +static GlobalProperty pc_compat_2_5[] =3D { + PC_COMPAT_2_5 +}; =20 static void pc_i440fx_2_5_machine_options(MachineClass *m) { @@ -535,12 +572,15 @@ static void pc_i440fx_2_5_machine_options(MachineClas= s *m) pc_i440fx_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_5); + SET_MACHINE_COMPAT(m, pc_compat_2_5); } =20 DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL, pc_i440fx_2_5_machine_options); =20 +static GlobalProperty pc_compat_2_4[] =3D { + PC_COMPAT_2_4 +}; =20 static void pc_i440fx_2_4_machine_options(MachineClass *m) { @@ -548,23 +588,29 @@ static void pc_i440fx_2_4_machine_options(MachineClas= s *m) pc_i440fx_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_4); + SET_MACHINE_COMPAT(m, pc_compat_2_4); } =20 DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL, pc_i440fx_2_4_machine_options) =20 +static GlobalProperty pc_compatp_2_3[] =3D { + PC_COMPAT_2_3 +}; =20 static void pc_i440fx_2_3_machine_options(MachineClass *m) { pc_i440fx_2_4_machine_options(m); m->hw_version =3D "2.3.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_3); + SET_MACHINE_COMPAT(m, pc_compatp_2_3); } =20 DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3, pc_i440fx_2_3_machine_options); =20 +static GlobalProperty pc_compatp_2_2[] =3D { + PC_COMPAT_2_2 +}; =20 static void pc_i440fx_2_2_machine_options(MachineClass *m) { @@ -572,13 +618,16 @@ static void pc_i440fx_2_2_machine_options(MachineClas= s *m) pc_i440fx_2_3_machine_options(m); m->hw_version =3D "2.2.0"; m->default_machine_opts =3D "firmware=3Dbios-256k.bin,suppress-vmdesc= =3Don"; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_2); + SET_MACHINE_COMPAT(m, pc_compatp_2_2); pcmc->rsdp_in_ram =3D false; } =20 DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2, pc_i440fx_2_2_machine_options); =20 +static GlobalProperty pc_compatp_2_1[] =3D { + PC_COMPAT_2_1 +}; =20 static void pc_i440fx_2_1_machine_options(MachineClass *m) { @@ -586,7 +635,7 @@ static void pc_i440fx_2_1_machine_options(MachineClass = *m) pc_i440fx_2_2_machine_options(m); m->hw_version =3D "2.1.0"; m->default_display =3D NULL; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_1); + SET_MACHINE_COMPAT(m, pc_compatp_2_1); pcmc->smbios_uuid_encoded =3D false; pcmc->enforce_aligned_dimm =3D false; } @@ -594,14 +643,16 @@ static void pc_i440fx_2_1_machine_options(MachineClas= s *m) DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1, pc_i440fx_2_1_machine_options); =20 - +static GlobalProperty pc_compatp_2_0[] =3D { + PC_COMPAT_2_0 +}; =20 static void pc_i440fx_2_0_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_2_1_machine_options(m); m->hw_version =3D "2.0.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_0); + SET_MACHINE_COMPAT(m, pc_compatp_2_0); pcmc->smbios_legacy_mode =3D true; pcmc->has_reserved_memory =3D false; /* This value depends on the actual DSDT and SSDT compiled into @@ -627,6 +678,9 @@ static void pc_i440fx_2_0_machine_options(MachineClass = *m) DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0, pc_i440fx_2_0_machine_options); =20 +static GlobalProperty pc_compatp_1_7[] =3D { + PC_COMPAT_1_7 +}; =20 static void pc_i440fx_1_7_machine_options(MachineClass *m) { @@ -635,7 +689,7 @@ static void pc_i440fx_1_7_machine_options(MachineClass = *m) m->hw_version =3D "1.7.0"; m->default_machine_opts =3D NULL; m->option_rom_has_mr =3D true; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_7); + SET_MACHINE_COMPAT(m, pc_compatp_1_7); pcmc->smbios_defaults =3D false; pcmc->gigabyte_align =3D false; pcmc->legacy_acpi_table_size =3D 6414; @@ -644,6 +698,9 @@ static void pc_i440fx_1_7_machine_options(MachineClass = *m) DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7, pc_i440fx_1_7_machine_options); =20 +static GlobalProperty pc_compatp_1_6[] =3D { + PC_COMPAT_1_6 +}; =20 static void pc_i440fx_1_6_machine_options(MachineClass *m) { @@ -651,368 +708,378 @@ static void pc_i440fx_1_6_machine_options(MachineCl= ass *m) pc_i440fx_1_7_machine_options(m); m->hw_version =3D "1.6.0"; m->rom_file_has_mr =3D false; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_6); + SET_MACHINE_COMPAT(m, pc_compatp_1_6); pcmc->has_acpi_build =3D false; } =20 DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6, pc_i440fx_1_6_machine_options); =20 +static GlobalProperty pc_compatp_1_5[] =3D { + PC_COMPAT_1_5 +}; =20 static void pc_i440fx_1_5_machine_options(MachineClass *m) { pc_i440fx_1_6_machine_options(m); m->hw_version =3D "1.5.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_5); + SET_MACHINE_COMPAT(m, pc_compatp_1_5); } =20 DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5, pc_i440fx_1_5_machine_options); =20 +static GlobalProperty pc_compatp_1_4[] =3D { + PC_COMPAT_1_4 +}; =20 static void pc_i440fx_1_4_machine_options(MachineClass *m) { pc_i440fx_1_5_machine_options(m); m->hw_version =3D "1.4.0"; m->hot_add_cpu =3D NULL; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_4); + SET_MACHINE_COMPAT(m, pc_compatp_1_4); } =20 DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4, pc_i440fx_1_4_machine_options); =20 - -#define PC_COMPAT_1_3 \ - PC_CPU_MODEL_IDS("1.3.0") \ - {\ - .driver =3D "usb-tablet",\ - .property =3D "usb_version",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "virtio-net-pci",\ - .property =3D "ctrl_mac_addr",\ - .value =3D "off", \ - },{ \ - .driver =3D "virtio-net-pci", \ - .property =3D "mq", \ - .value =3D "off", \ - }, {\ - .driver =3D "e1000",\ - .property =3D "autonegotiation",\ - .value =3D "off",\ - }, - +static GlobalProperty pc_compatp_1_3[] =3D { + PC_CPU_MODEL_IDS("1.3.0") + { + .driver =3D "usb-tablet", + .property =3D "usb_version", + .value =3D stringify(1), + },{ + .driver =3D "virtio-net-pci", + .property =3D "ctrl_mac_addr", + .value =3D "off", + },{ + .driver =3D "virtio-net-pci", + .property =3D "mq", + .value =3D "off", + }, { + .driver =3D "e1000", + .property =3D "autonegotiation", + .value =3D "off", + }, +}; =20 static void pc_i440fx_1_3_machine_options(MachineClass *m) { pc_i440fx_1_4_machine_options(m); m->hw_version =3D "1.3.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_3); + SET_MACHINE_COMPAT(m, pc_compatp_1_3); } =20 DEFINE_I440FX_MACHINE(v1_3, "pc-1.3", pc_compat_1_3, pc_i440fx_1_3_machine_options); =20 =20 -#define PC_COMPAT_1_2 \ - PC_CPU_MODEL_IDS("1.2.0") \ - {\ - .driver =3D "nec-usb-xhci",\ - .property =3D "msi",\ - .value =3D "off",\ - },{\ - .driver =3D "nec-usb-xhci",\ - .property =3D "msix",\ - .value =3D "off",\ - },{\ - .driver =3D "ivshmem",\ - .property =3D "use64",\ - .value =3D "0",\ - },{\ - .driver =3D "qxl",\ - .property =3D "revision",\ - .value =3D stringify(3),\ - },{\ - .driver =3D "qxl-vga",\ - .property =3D "revision",\ - .value =3D stringify(3),\ - },{\ - .driver =3D "VGA",\ - .property =3D "mmio",\ - .value =3D "off",\ - }, +static GlobalProperty pc_compatp_1_2[] =3D { + PC_CPU_MODEL_IDS("1.2.0") + { + .driver =3D "nec-usb-xhci", + .property =3D "msi", + .value =3D "off", + },{ + .driver =3D "nec-usb-xhci", + .property =3D "msix", + .value =3D "off", + },{ + .driver =3D "ivshmem", + .property =3D "use64", + .value =3D "0", + },{ + .driver =3D "qxl", + .property =3D "revision", + .value =3D stringify(3), + },{ + .driver =3D "qxl-vga", + .property =3D "revision", + .value =3D stringify(3), + },{ + .driver =3D "VGA", + .property =3D "mmio", + .value =3D "off", + }, +}; =20 static void pc_i440fx_1_2_machine_options(MachineClass *m) { pc_i440fx_1_3_machine_options(m); m->hw_version =3D "1.2.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_2); + SET_MACHINE_COMPAT(m, pc_compatp_1_2); } =20 DEFINE_I440FX_MACHINE(v1_2, "pc-1.2", pc_compat_1_2, pc_i440fx_1_2_machine_options); =20 =20 -#define PC_COMPAT_1_1 \ - PC_CPU_MODEL_IDS("1.1.0") \ - {\ - .driver =3D "virtio-scsi-pci",\ - .property =3D "hotplug",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-scsi-pci",\ - .property =3D "param_change",\ - .value =3D "off",\ - },{\ - .driver =3D "VGA",\ - .property =3D "vgamem_mb",\ - .value =3D stringify(8),\ - },{\ - .driver =3D "vmware-svga",\ - .property =3D "vgamem_mb",\ - .value =3D stringify(8),\ - },{\ - .driver =3D "qxl-vga",\ - .property =3D "vgamem_mb",\ - .value =3D stringify(8),\ - },{\ - .driver =3D "qxl",\ - .property =3D "vgamem_mb",\ - .value =3D stringify(8),\ - },{\ - .driver =3D "virtio-blk-pci",\ - .property =3D "config-wce",\ - .value =3D "off",\ - }, +static GlobalProperty pc_compatp_1_1[] =3D { + PC_CPU_MODEL_IDS("1.1.0") + { + .driver =3D "virtio-scsi-pci", + .property =3D "hotplug", + .value =3D "off", + },{ + .driver =3D "virtio-scsi-pci", + .property =3D "param_change", + .value =3D "off", + },{ + .driver =3D "VGA", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "vmware-svga", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "qxl-vga", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "qxl", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "virtio-blk-pci", + .property =3D "config-wce", + .value =3D "off", + }, +}; =20 static void pc_i440fx_1_1_machine_options(MachineClass *m) { pc_i440fx_1_2_machine_options(m); m->hw_version =3D "1.1.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_1); + SET_MACHINE_COMPAT(m, pc_compatp_1_1); } =20 DEFINE_I440FX_MACHINE(v1_1, "pc-1.1", pc_compat_1_2, pc_i440fx_1_1_machine_options); =20 - -#define PC_COMPAT_1_0 \ - PC_CPU_MODEL_IDS("1.0") \ - {\ - .driver =3D TYPE_ISA_FDC,\ - .property =3D "check_media_rate",\ - .value =3D "off",\ - }, {\ - .driver =3D "virtio-balloon-pci",\ - .property =3D "class",\ - .value =3D stringify(PCI_CLASS_MEMORY_RAM),\ - },{\ - .driver =3D "apic-common",\ - .property =3D "vapic",\ - .value =3D "off",\ - },{\ - .driver =3D TYPE_USB_DEVICE,\ - .property =3D "full-path",\ - .value =3D "no",\ - }, +static GlobalProperty pc_compatp_1_0[] =3D { + PC_CPU_MODEL_IDS("1.0") + { + .driver =3D TYPE_ISA_FDC, + .property =3D "check_media_rate", + .value =3D "off", + },{ + .driver =3D "virtio-balloon-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_MEMORY_RAM), + },{ + .driver =3D "apic-common", + .property =3D "vapic", + .value =3D "off", + },{ + .driver =3D TYPE_USB_DEVICE, + .property =3D "full-path", + .value =3D "no", + }, +}; =20 static void pc_i440fx_1_0_machine_options(MachineClass *m) { pc_i440fx_1_1_machine_options(m); m->hw_version =3D "1.0"; - SET_MACHINE_COMPAT(m, PC_COMPAT_1_0); + SET_MACHINE_COMPAT(m, pc_compatp_1_0); } =20 DEFINE_I440FX_MACHINE(v1_0, "pc-1.0", pc_compat_1_2, pc_i440fx_1_0_machine_options); =20 =20 -#define PC_COMPAT_0_15 \ - PC_CPU_MODEL_IDS("0.15") +static GlobalProperty pc_compatp_0_15[] =3D { + PC_CPU_MODEL_IDS("0.15") +}; =20 static void pc_i440fx_0_15_machine_options(MachineClass *m) { pc_i440fx_1_0_machine_options(m); m->hw_version =3D "0.15"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_15); + SET_MACHINE_COMPAT(m, pc_compatp_0_15); } =20 DEFINE_I440FX_MACHINE(v0_15, "pc-0.15", pc_compat_1_2, pc_i440fx_0_15_machine_options); =20 =20 -#define PC_COMPAT_0_14 \ - PC_CPU_MODEL_IDS("0.14") \ - {\ - .driver =3D "virtio-blk-pci",\ - .property =3D "event_idx",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-serial-pci",\ - .property =3D "event_idx",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-net-pci",\ - .property =3D "event_idx",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-balloon-pci",\ - .property =3D "event_idx",\ - .value =3D "off",\ - },{\ - .driver =3D "qxl",\ - .property =3D "revision",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "qxl-vga",\ - .property =3D "revision",\ - .value =3D stringify(2),\ - }, +static GlobalProperty pc_compatp_0_14[] =3D { + PC_CPU_MODEL_IDS("0.14") + { + .driver =3D "virtio-blk-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-serial-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-net-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-balloon-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "qxl", + .property =3D "revision", + .value =3D stringify(2), + },{ + .driver =3D "qxl-vga", + .property =3D "revision", + .value =3D stringify(2), + }, +}; =20 static void pc_i440fx_0_14_machine_options(MachineClass *m) { pc_i440fx_0_15_machine_options(m); m->hw_version =3D "0.14"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_14); + SET_MACHINE_COMPAT(m, pc_compatp_0_14); } =20 DEFINE_I440FX_MACHINE(v0_14, "pc-0.14", pc_compat_1_2, pc_i440fx_0_14_machine_options); =20 - -#define PC_COMPAT_0_13 \ - PC_CPU_MODEL_IDS("0.13") \ - {\ - .driver =3D TYPE_PCI_DEVICE,\ - .property =3D "command_serr_enable",\ - .value =3D "off",\ - },{\ - .driver =3D "AC97",\ - .property =3D "use_broken_id",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "virtio-9p-pci",\ - .property =3D "vectors",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "VGA",\ - .property =3D "rombar",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "vmware-svga",\ - .property =3D "rombar",\ - .value =3D stringify(0),\ - }, +static GlobalProperty pc_compatp_0_13[] =3D { + PC_CPU_MODEL_IDS("0.13") + { + .driver =3D TYPE_PCI_DEVICE, + .property =3D "command_serr_enable", + .value =3D "off", + },{ + .driver =3D "AC97", + .property =3D "use_broken_id", + .value =3D stringify(1), + },{ + .driver =3D "virtio-9p-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "VGA", + .property =3D "rombar", + .value =3D stringify(0), + },{ + .driver =3D "vmware-svga", + .property =3D "rombar", + .value =3D stringify(0), + }, +}; =20 static void pc_i440fx_0_13_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_0_14_machine_options(m); m->hw_version =3D "0.13"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_13); + SET_MACHINE_COMPAT(m, pc_compatp_0_13); pcmc->kvmclock_enabled =3D false; } =20 DEFINE_I440FX_MACHINE(v0_13, "pc-0.13", pc_compat_0_13, pc_i440fx_0_13_machine_options); =20 - -#define PC_COMPAT_0_12 \ - PC_CPU_MODEL_IDS("0.12") \ - {\ - .driver =3D "virtio-serial-pci",\ - .property =3D "max_ports",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "virtio-serial-pci",\ - .property =3D "vectors",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "usb-mouse",\ - .property =3D "serial",\ - .value =3D "1",\ - },{\ - .driver =3D "usb-tablet",\ - .property =3D "serial",\ - .value =3D "1",\ - },{\ - .driver =3D "usb-kbd",\ - .property =3D "serial",\ - .value =3D "1",\ - }, +static GlobalProperty pc_compat_0_12[] =3D { + PC_CPU_MODEL_IDS("0.12") + { + .driver =3D "virtio-serial-pci", + .property =3D "max_ports", + .value =3D stringify(1), + },{ + .driver =3D "virtio-serial-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "usb-mouse", + .property =3D "serial", + .value =3D "1", + },{ + .driver =3D "usb-tablet", + .property =3D "serial", + .value =3D "1", + },{ + .driver =3D "usb-kbd", + .property =3D "serial", + .value =3D "1", + }, +}; =20 static void pc_i440fx_0_12_machine_options(MachineClass *m) { pc_i440fx_0_13_machine_options(m); m->hw_version =3D "0.12"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_12); + SET_MACHINE_COMPAT(m, pc_compat_0_12); } =20 DEFINE_I440FX_MACHINE(v0_12, "pc-0.12", pc_compat_0_13, pc_i440fx_0_12_machine_options); =20 =20 -#define PC_COMPAT_0_11 \ - PC_CPU_MODEL_IDS("0.11") \ - {\ - .driver =3D "virtio-blk-pci",\ - .property =3D "vectors",\ - .value =3D stringify(0),\ - },{\ - .driver =3D TYPE_PCI_DEVICE,\ - .property =3D "rombar",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "ide-drive",\ - .property =3D "ver",\ - .value =3D "0.11",\ - },{\ - .driver =3D "scsi-disk",\ - .property =3D "ver",\ - .value =3D "0.11",\ - }, +static GlobalProperty pc_compat_0_11[] =3D { + PC_CPU_MODEL_IDS("0.11") + { + .driver =3D "virtio-blk-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D TYPE_PCI_DEVICE, + .property =3D "rombar", + .value =3D stringify(0), + },{ + .driver =3D "ide-drive", + .property =3D "ver", + .value =3D "0.11", + },{ + .driver =3D "scsi-disk", + .property =3D "ver", + .value =3D "0.11", + }, +}; =20 static void pc_i440fx_0_11_machine_options(MachineClass *m) { pc_i440fx_0_12_machine_options(m); m->hw_version =3D "0.11"; m->deprecation_reason =3D "use a newer machine type instead"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_11); + SET_MACHINE_COMPAT(m, pc_compat_0_11); } =20 DEFINE_I440FX_MACHINE(v0_11, "pc-0.11", pc_compat_0_13, pc_i440fx_0_11_machine_options); =20 - -#define PC_COMPAT_0_10 \ - PC_CPU_MODEL_IDS("0.10") \ - {\ - .driver =3D "virtio-blk-pci",\ - .property =3D "class",\ - .value =3D stringify(PCI_CLASS_STORAGE_OTHER),\ - },{\ - .driver =3D "virtio-serial-pci",\ - .property =3D "class",\ - .value =3D stringify(PCI_CLASS_DISPLAY_OTHER),\ - },{\ - .driver =3D "virtio-net-pci",\ - .property =3D "vectors",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "ide-drive",\ - .property =3D "ver",\ - .value =3D "0.10",\ - },{\ - .driver =3D "scsi-disk",\ - .property =3D "ver",\ - .value =3D "0.10",\ +static GlobalProperty pc_compat_0_10[] =3D { + PC_CPU_MODEL_IDS("0.10") + { + .driver =3D "virtio-blk-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_STORAGE_OTHER), + },{ + .driver =3D "virtio-serial-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_DISPLAY_OTHER), + },{ + .driver =3D "virtio-net-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "ide-drive", + .property =3D "ver", + .value =3D "0.10", + },{ + .driver =3D "scsi-disk", + .property =3D "ver", + .value =3D "0.10", }, +}; =20 static void pc_i440fx_0_10_machine_options(MachineClass *m) { pc_i440fx_0_11_machine_options(m); m->hw_version =3D "0.10"; - SET_MACHINE_COMPAT(m, PC_COMPAT_0_10); + SET_MACHINE_COMPAT(m, pc_compat_0_10); } =20 DEFINE_I440FX_MACHINE(v0_10, "pc-0.10", pc_compat_0_13, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 58459bdab5..0c02a72e00 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -320,50 +320,70 @@ static void pc_q35_4_0_machine_options(MachineClass *= m) DEFINE_Q35_MACHINE(v4_0, "pc-q35-4.0", NULL, pc_q35_4_0_machine_options); =20 +static GlobalProperty pc_compat_3_1[] =3D { + PC_COMPAT_3_1 +}; + static void pc_q35_3_1_machine_options(MachineClass *m) { pc_q35_4_0_machine_options(m); m->alias =3D NULL; - SET_MACHINE_COMPAT(m, PC_COMPAT_3_1); + SET_MACHINE_COMPAT(m, pc_compat_3_1); } =20 DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, pc_q35_3_1_machine_options); =20 +static GlobalProperty pc_compat_3_0[] =3D { + PC_COMPAT_3_0 +}; + static void pc_q35_3_0_machine_options(MachineClass *m) { pc_q35_3_1_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_3_0); + SET_MACHINE_COMPAT(m, pc_compat_3_0); } =20 DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, pc_q35_3_0_machine_options); =20 +static GlobalProperty pc_compat_2_12[] =3D { + PC_COMPAT_2_12 +}; + static void pc_q35_2_12_machine_options(MachineClass *m) { pc_q35_3_0_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); + SET_MACHINE_COMPAT(m, pc_compat_2_12); } =20 DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL, pc_q35_2_12_machine_options); =20 +static GlobalProperty pc_compat_2_11[] =3D { + PC_COMPAT_2_11 +}; + static void pc_q35_2_11_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); =20 pc_q35_2_12_machine_options(m); pcmc->default_nic_model =3D "e1000"; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_11); + SET_MACHINE_COMPAT(m, pc_compat_2_11); } =20 DEFINE_Q35_MACHINE(v2_11, "pc-q35-2.11", NULL, pc_q35_2_11_machine_options); =20 +static GlobalProperty pc_compat_2_10[] =3D { + PC_COMPAT_2_10 +}; + static void pc_q35_2_10_machine_options(MachineClass *m) { pc_q35_2_11_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_10); + SET_MACHINE_COMPAT(m, pc_compat_2_10); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; m->auto_enable_numa_with_memhp =3D false; } @@ -371,65 +391,89 @@ static void pc_q35_2_10_machine_options(MachineClass = *m) DEFINE_Q35_MACHINE(v2_10, "pc-q35-2.10", NULL, pc_q35_2_10_machine_options); =20 +static GlobalProperty pc_compat_2_9[] =3D { + PC_COMPAT_2_9 +}; + static void pc_q35_2_9_machine_options(MachineClass *m) { pc_q35_2_10_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_9); + SET_MACHINE_COMPAT(m, pc_compat_2_9); } =20 DEFINE_Q35_MACHINE(v2_9, "pc-q35-2.9", NULL, pc_q35_2_9_machine_options); =20 +static GlobalProperty pc_compat_2_8[] =3D { + PC_COMPAT_2_8 +}; + static void pc_q35_2_8_machine_options(MachineClass *m) { pc_q35_2_9_machine_options(m); - SET_MACHINE_COMPAT(m, PC_COMPAT_2_8); + SET_MACHINE_COMPAT(m, pc_compat_2_8); } =20 DEFINE_Q35_MACHINE(v2_8, "pc-q35-2.8", NULL, pc_q35_2_8_machine_options); =20 +static GlobalProperty pc_compat_2_7[] =3D { + PC_COMPAT_2_7 +}; + static void pc_q35_2_7_machine_options(MachineClass *m) { pc_q35_2_8_machine_options(m); m->max_cpus =3D 255; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_7); + SET_MACHINE_COMPAT(m, pc_compat_2_7); } =20 DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, pc_q35_2_7_machine_options); =20 +static GlobalProperty pc_compat_2_6[] =3D { + PC_COMPAT_2_6 +}; + static void pc_q35_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_6); + SET_MACHINE_COMPAT(m, pc_compat_2_6); } =20 DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, pc_q35_2_6_machine_options); =20 +static GlobalProperty pc_compat_2_5[] =3D { + PC_COMPAT_2_5 +}; + static void pc_q35_2_5_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_5); + SET_MACHINE_COMPAT(m, pc_compat_2_5); } =20 DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL, pc_q35_2_5_machine_options); =20 +static GlobalProperty pc_compat_2_4[] =3D { + PC_COMPAT_2_4 +}; + static void pc_q35_2_4_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_q35_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - SET_MACHINE_COMPAT(m, PC_COMPAT_2_4); + SET_MACHINE_COMPAT(m, pc_compat_2_4); } =20 DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 55be0f56cb..6145a9909d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3963,13 +3963,14 @@ DEFINE_SPAPR_MACHINE(4_0, "4.0", true); /* * pseries-3.1 */ -#define SPAPR_COMPAT_3_1 \ +static GlobalProperty spapr_compat_3_1[] =3D { HW_COMPAT_3_1 +}; =20 static void spapr_machine_3_1_class_options(MachineClass *mc) { spapr_machine_4_0_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_3_1); + SET_MACHINE_COMPAT(mc, spapr_compat_3_1); } =20 DEFINE_SPAPR_MACHINE(3_1, "3.1", false); @@ -3977,15 +3978,16 @@ DEFINE_SPAPR_MACHINE(3_1, "3.1", false); /* * pseries-3.0 */ -#define SPAPR_COMPAT_3_0 \ +static GlobalProperty spapr_compat_3_0[] =3D { HW_COMPAT_3_0 +}; =20 static void spapr_machine_3_0_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_3_1_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_3_0); + SET_MACHINE_COMPAT(mc, spapr_compat_3_0); =20 smc->legacy_irq_allocation =3D true; smc->irq =3D &spapr_irq_xics_legacy; @@ -3996,25 +3998,26 @@ DEFINE_SPAPR_MACHINE(3_0, "3.0", false); /* * pseries-2.12 */ -#define SPAPR_COMPAT_2_12 \ - HW_COMPAT_2_12 \ - { \ - .driver =3D TYPE_POWERPC_CPU, \ - .property =3D "pre-3.0-migration", \ - .value =3D "on", \ - }, \ - { \ - .driver =3D TYPE_SPAPR_CPU_CORE, \ - .property =3D "pre-3.0-migration", \ - .value =3D "on", \ +static GlobalProperty spapr_compat_2_12[] =3D { + HW_COMPAT_2_12 + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-3.0-migration", + .value =3D "on", + }, + { + .driver =3D TYPE_SPAPR_CPU_CORE, + .property =3D "pre-3.0-migration", + .value =3D "on", }, +}; =20 static void spapr_machine_2_12_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_3_0_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_12); + SET_MACHINE_COMPAT(mc, spapr_compat_2_12); =20 /* We depend on kvm_enabled() to choose a default value for the * hpt-max-page-size capability. Of course we can't do it here @@ -4041,8 +4044,9 @@ DEFINE_SPAPR_MACHINE(2_12_sxxm, "2.12-sxxm", false); /* * pseries-2.11 */ -#define SPAPR_COMPAT_2_11 \ +static GlobalProperty spapr_compat_2_11[] =3D { HW_COMPAT_2_11 +}; =20 static void spapr_machine_2_11_class_options(MachineClass *mc) { @@ -4050,7 +4054,7 @@ static void spapr_machine_2_11_class_options(MachineC= lass *mc) =20 spapr_machine_2_12_class_options(mc); smc->default_caps.caps[SPAPR_CAP_HTM] =3D SPAPR_CAP_ON; - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_11); + SET_MACHINE_COMPAT(mc, spapr_compat_2_11); } =20 DEFINE_SPAPR_MACHINE(2_11, "2.11", false); @@ -4058,13 +4062,14 @@ DEFINE_SPAPR_MACHINE(2_11, "2.11", false); /* * pseries-2.10 */ -#define SPAPR_COMPAT_2_10 \ +static GlobalProperty spapr_compat_2_10[] =3D { HW_COMPAT_2_10 +}; =20 static void spapr_machine_2_10_class_options(MachineClass *mc) { spapr_machine_2_11_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_10); + SET_MACHINE_COMPAT(mc, spapr_compat_2_10); } =20 DEFINE_SPAPR_MACHINE(2_10, "2.10", false); @@ -4072,20 +4077,21 @@ DEFINE_SPAPR_MACHINE(2_10, "2.10", false); /* * pseries-2.9 */ -#define SPAPR_COMPAT_2_9 \ - HW_COMPAT_2_9 \ - { \ - .driver =3D TYPE_POWERPC_CPU, \ - .property =3D "pre-2.10-migration", \ - .value =3D "on", \ - }, \ +static GlobalProperty spapr_compat_2_9[] =3D { + HW_COMPAT_2_9 + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-2.10-migration", + .value =3D "on", + }, +}; =20 static void spapr_machine_2_9_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_2_10_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_9); + SET_MACHINE_COMPAT(mc, spapr_compat_2_9); mc->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; smc->pre_2_10_has_unused_icps =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_DISABLED; @@ -4096,18 +4102,19 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", false); /* * pseries-2.8 */ -#define SPAPR_COMPAT_2_8 \ - HW_COMPAT_2_8 \ - { \ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, \ - .property =3D "pcie-extended-configuration-space", \ - .value =3D "off", \ +static GlobalProperty spapr_compat_2_8[] =3D { + HW_COMPAT_2_8 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "pcie-extended-configuration-space", + .value =3D "off", }, +}; =20 static void spapr_machine_2_8_class_options(MachineClass *mc) { spapr_machine_2_9_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_8); + SET_MACHINE_COMPAT(mc, spapr_compat_2_8); mc->numa_mem_align_shift =3D 23; } =20 @@ -4116,28 +4123,29 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); /* * pseries-2.7 */ -#define SPAPR_COMPAT_2_7 \ - HW_COMPAT_2_7 \ - { \ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, \ - .property =3D "mem_win_size", \ - .value =3D stringify(SPAPR_PCI_2_7_MMIO_WIN_SIZE),\ - }, \ - { \ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, \ - .property =3D "mem64_win_size", \ - .value =3D "0", \ - }, \ - { \ - .driver =3D TYPE_POWERPC_CPU, \ - .property =3D "pre-2.8-migration", \ - .value =3D "on", \ - }, \ - { \ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, \ - .property =3D "pre-2.8-migration", \ - .value =3D "on", \ +static GlobalProperty spapr_compat_2_7[] =3D { + HW_COMPAT_2_7 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem_win_size", + .value =3D stringify(SPAPR_PCI_2_7_MMIO_WIN_SIZE), + }, + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem64_win_size", + .value =3D "0", + }, + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-2.8-migration", + .value =3D "on", }, + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "pre-2.8-migration", + .value =3D "on", + }, +}; =20 static void phb_placement_2_7(sPAPRMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, @@ -4195,7 +4203,7 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) spapr_machine_2_8_class_options(mc); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power7_v2.3"); mc->default_machine_opts =3D "modern-hotplug-events=3Doff"; - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7); + SET_MACHINE_COMPAT(mc, spapr_compat_2_7); smc->phb_placement =3D phb_placement_2_7; } =20 @@ -4204,19 +4212,20 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false); /* * pseries-2.6 */ -#define SPAPR_COMPAT_2_6 \ - HW_COMPAT_2_6 \ - { \ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE,\ - .property =3D "ddw",\ - .value =3D stringify(off),\ +static GlobalProperty spapr_compat_2_6[] =3D { + HW_COMPAT_2_6 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "ddw", + .value =3D stringify(off), }, +}; =20 static void spapr_machine_2_6_class_options(MachineClass *mc) { spapr_machine_2_7_class_options(mc); mc->has_hotpluggable_cpus =3D false; - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_6); + SET_MACHINE_COMPAT(mc, spapr_compat_2_6); } =20 DEFINE_SPAPR_MACHINE(2_6, "2.6", false); @@ -4224,13 +4233,14 @@ DEFINE_SPAPR_MACHINE(2_6, "2.6", false); /* * pseries-2.5 */ -#define SPAPR_COMPAT_2_5 \ - HW_COMPAT_2_5 \ - { \ - .driver =3D "spapr-vlan", \ - .property =3D "use-rx-buffer-pools", \ - .value =3D "off", \ +static GlobalProperty spapr_compat_2_5[] =3D { + HW_COMPAT_2_5 + { + .driver =3D "spapr-vlan", + .property =3D "use-rx-buffer-pools", + .value =3D "off", }, +}; =20 static void spapr_machine_2_5_class_options(MachineClass *mc) { @@ -4238,7 +4248,7 @@ static void spapr_machine_2_5_class_options(MachineCl= ass *mc) =20 spapr_machine_2_6_class_options(mc); smc->use_ohci_by_default =3D true; - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_5); + SET_MACHINE_COMPAT(mc, spapr_compat_2_5); } =20 DEFINE_SPAPR_MACHINE(2_5, "2.5", false); @@ -4246,8 +4256,9 @@ DEFINE_SPAPR_MACHINE(2_5, "2.5", false); /* * pseries-2.4 */ -#define SPAPR_COMPAT_2_4 \ - HW_COMPAT_2_4 +static GlobalProperty spapr_compat_2_4[] =3D { + HW_COMPAT_2_4 +}; =20 static void spapr_machine_2_4_class_options(MachineClass *mc) { @@ -4255,7 +4266,7 @@ static void spapr_machine_2_4_class_options(MachineCl= ass *mc) =20 spapr_machine_2_5_class_options(mc); smc->dr_lmb_enabled =3D false; - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_4); + SET_MACHINE_COMPAT(mc, spapr_compat_2_4); } =20 DEFINE_SPAPR_MACHINE(2_4, "2.4", false); @@ -4263,37 +4274,38 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false); /* * pseries-2.3 */ -#define SPAPR_COMPAT_2_3 \ - HW_COMPAT_2_3 \ - {\ - .driver =3D "spapr-pci-host-bridge",\ - .property =3D "dynamic-reconfiguration",\ - .value =3D "off",\ - }, +static GlobalProperty spapr_compat_2_3[] =3D { + HW_COMPAT_2_3 + { + .driver =3D "spapr-pci-host-bridge", + .property =3D "dynamic-reconfiguration", + .value =3D "off", + }, +}; =20 static void spapr_machine_2_3_class_options(MachineClass *mc) { spapr_machine_2_4_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_3); + SET_MACHINE_COMPAT(mc, spapr_compat_2_3); } DEFINE_SPAPR_MACHINE(2_3, "2.3", false); =20 /* * pseries-2.2 */ - -#define SPAPR_COMPAT_2_2 \ - HW_COMPAT_2_2 \ - {\ - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE,\ - .property =3D "mem_win_size",\ - .value =3D "0x20000000",\ - }, +static GlobalProperty spapr_compat_2_2[] =3D { + HW_COMPAT_2_2 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem_win_size", + .value =3D "0x20000000", + }, +}; =20 static void spapr_machine_2_2_class_options(MachineClass *mc) { spapr_machine_2_3_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_2); + SET_MACHINE_COMPAT(mc, spapr_compat_2_2); mc->default_machine_opts =3D "modern-hotplug-events=3Doff,suppress-vmd= esc=3Don"; } DEFINE_SPAPR_MACHINE(2_2, "2.2", false); @@ -4301,13 +4313,14 @@ DEFINE_SPAPR_MACHINE(2_2, "2.2", false); /* * pseries-2.1 */ -#define SPAPR_COMPAT_2_1 \ - HW_COMPAT_2_1 +static GlobalProperty spapr_compat_2_1[] =3D { + HW_COMPAT_2_1 +}; =20 static void spapr_machine_2_1_class_options(MachineClass *mc) { spapr_machine_2_2_class_options(mc); - SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_1); + SET_MACHINE_COMPAT(mc, spapr_compat_2_1); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index fd9d0b0542..882a9796cf 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -651,99 +651,110 @@ bool css_migration_enabled(void) } = \ type_init(ccw_machine_register_##suffix) =20 -#define CCW_COMPAT_3_1 \ - HW_COMPAT_3_1 - -#define CCW_COMPAT_3_0 \ - HW_COMPAT_3_0 - -#define CCW_COMPAT_2_12 \ - HW_COMPAT_2_12 - -#define CCW_COMPAT_2_11 \ - HW_COMPAT_2_11 \ - {\ - .driver =3D TYPE_SCLP_EVENT_FACILITY,\ - .property =3D "allow_all_mask_sizes",\ - .value =3D "off",\ - }, - -#define CCW_COMPAT_2_10 \ - HW_COMPAT_2_10 - -#define CCW_COMPAT_2_9 \ - HW_COMPAT_2_9 \ - {\ - .driver =3D TYPE_S390_STATTRIB,\ - .property =3D "migration-enabled",\ - .value =3D "off",\ - }, - -#define CCW_COMPAT_2_8 \ - HW_COMPAT_2_8 \ - {\ - .driver =3D TYPE_S390_FLIC_COMMON,\ - .property =3D "adapter_routes_max_batch",\ - .value =3D "64",\ - }, - -#define CCW_COMPAT_2_7 \ - HW_COMPAT_2_7 - -#define CCW_COMPAT_2_6 \ - HW_COMPAT_2_6 \ - {\ - .driver =3D TYPE_S390_IPL,\ - .property =3D "iplbext_migration",\ - .value =3D "off",\ - }, {\ - .driver =3D TYPE_VIRTUAL_CSS_BRIDGE,\ - .property =3D "css_dev_path",\ - .value =3D "off",\ - }, - -#define CCW_COMPAT_2_5 \ - HW_COMPAT_2_5 - -#define CCW_COMPAT_2_4 \ - HW_COMPAT_2_4 \ - {\ - .driver =3D TYPE_S390_SKEYS,\ - .property =3D "migration-enabled",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-blk-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-balloon-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-serial-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-9p-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-rng-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-net-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "virtio-scsi-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - },{\ - .driver =3D "vhost-scsi-ccw",\ - .property =3D "max_revision",\ - .value =3D "0",\ - }, +static GlobalProperty ccw_compat_3_1[] =3D { + HW_COMPAT_3_1 +}; + +static GlobalProperty ccw_compat_3_0[] =3D { + HW_COMPAT_3_0 +}; + +static GlobalProperty ccw_compat_2_12[] =3D { + HW_COMPAT_2_12 +}; + +static GlobalProperty ccw_compat_2_11[] =3D { + HW_COMPAT_2_11 + { + .driver =3D TYPE_SCLP_EVENT_FACILITY, + .property =3D "allow_all_mask_sizes", + .value =3D "off", + }, +}; + +static GlobalProperty ccw_compat_2_10[] =3D { + HW_COMPAT_2_10 +}; + +static GlobalProperty ccw_compat_2_9[] =3D { + HW_COMPAT_2_9 + { + .driver =3D TYPE_S390_STATTRIB, + .property =3D "migration-enabled", + .value =3D "off", + }, +}; + +static GlobalProperty ccw_compat_2_8[] =3D { + HW_COMPAT_2_8 + { + .driver =3D TYPE_S390_FLIC_COMMON, + .property =3D "adapter_routes_max_batch", + .value =3D "64", + }, +}; + +static GlobalProperty ccw_compat_2_7[] =3D { + HW_COMPAT_2_7 +}; + +static GlobalProperty ccw_compat_2_6[] =3D { + HW_COMPAT_2_6 + { + .driver =3D TYPE_S390_IPL, + .property =3D "iplbext_migration", + .value =3D "off", + }, { + .driver =3D TYPE_VIRTUAL_CSS_BRIDGE, + .property =3D "css_dev_path", + .value =3D "off", + }, +}; + +static GlobalProperty ccw_compat_2_5[] =3D { + HW_COMPAT_2_5 +}; + +static GlobalProperty ccw_compat_2_4[] =3D { + HW_COMPAT_2_4 + { + .driver =3D TYPE_S390_SKEYS, + .property =3D "migration-enabled", + .value =3D "off", + },{ + .driver =3D "virtio-blk-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-balloon-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-serial-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-9p-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-rng-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-net-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-scsi-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "vhost-scsi-ccw", + .property =3D "max_revision", + .value =3D "0", + }, +}; =20 static void ccw_machine_4_0_instance_options(MachineState *machine) { @@ -762,7 +773,7 @@ static void ccw_machine_3_1_instance_options(MachineSta= te *machine) static void ccw_machine_3_1_class_options(MachineClass *mc) { ccw_machine_4_0_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_3_1); + SET_MACHINE_COMPAT(mc, ccw_compat_3_1); } DEFINE_CCW_MACHINE(3_1, "3.1", false); =20 @@ -777,7 +788,7 @@ static void ccw_machine_3_0_class_options(MachineClass = *mc) =20 s390mc->hpage_1m_allowed =3D false; ccw_machine_3_1_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_3_0); + SET_MACHINE_COMPAT(mc, ccw_compat_3_0); } DEFINE_CCW_MACHINE(3_0, "3.0", false); =20 @@ -791,7 +802,7 @@ static void ccw_machine_2_12_instance_options(MachineSt= ate *machine) static void ccw_machine_2_12_class_options(MachineClass *mc) { ccw_machine_3_0_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_12); + SET_MACHINE_COMPAT(mc, ccw_compat_2_12); } DEFINE_CCW_MACHINE(2_12, "2.12", false); =20 @@ -807,7 +818,7 @@ static void ccw_machine_2_11_instance_options(MachineSt= ate *machine) static void ccw_machine_2_11_class_options(MachineClass *mc) { ccw_machine_2_12_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_11); + SET_MACHINE_COMPAT(mc, ccw_compat_2_11); } DEFINE_CCW_MACHINE(2_11, "2.11", false); =20 @@ -819,7 +830,7 @@ static void ccw_machine_2_10_instance_options(MachineSt= ate *machine) static void ccw_machine_2_10_class_options(MachineClass *mc) { ccw_machine_2_11_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_10); + SET_MACHINE_COMPAT(mc, ccw_compat_2_10); } DEFINE_CCW_MACHINE(2_10, "2.10", false); =20 @@ -838,7 +849,7 @@ static void ccw_machine_2_9_class_options(MachineClass = *mc) S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); =20 ccw_machine_2_10_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_9); + SET_MACHINE_COMPAT(mc, ccw_compat_2_9); s390mc->css_migration_enabled =3D false; } DEFINE_CCW_MACHINE(2_9, "2.9", false); @@ -851,7 +862,7 @@ static void ccw_machine_2_8_instance_options(MachineSta= te *machine) static void ccw_machine_2_8_class_options(MachineClass *mc) { ccw_machine_2_9_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_8); + SET_MACHINE_COMPAT(mc, ccw_compat_2_8); } DEFINE_CCW_MACHINE(2_8, "2.8", false); =20 @@ -866,7 +877,7 @@ static void ccw_machine_2_7_class_options(MachineClass = *mc) =20 s390mc->cpu_model_allowed =3D false; ccw_machine_2_8_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_7); + SET_MACHINE_COMPAT(mc, ccw_compat_2_7); } DEFINE_CCW_MACHINE(2_7, "2.7", false); =20 @@ -881,7 +892,7 @@ static void ccw_machine_2_6_class_options(MachineClass = *mc) =20 s390mc->ri_allowed =3D false; ccw_machine_2_7_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_6); + SET_MACHINE_COMPAT(mc, ccw_compat_2_6); } DEFINE_CCW_MACHINE(2_6, "2.6", false); =20 @@ -893,7 +904,7 @@ static void ccw_machine_2_5_instance_options(MachineSta= te *machine) static void ccw_machine_2_5_class_options(MachineClass *mc) { ccw_machine_2_6_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_5); + SET_MACHINE_COMPAT(mc, ccw_compat_2_5); } DEFINE_CCW_MACHINE(2_5, "2.5", false); =20 @@ -905,7 +916,7 @@ static void ccw_machine_2_4_instance_options(MachineSta= te *machine) static void ccw_machine_2_4_class_options(MachineClass *mc) { ccw_machine_2_5_class_options(mc); - SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_4); + SET_MACHINE_COMPAT(mc, ccw_compat_2_4); } DEFINE_CCW_MACHINE(2_4, "2.4", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383439959269.258231586128; Fri, 21 Dec 2018 01:10:39 -0800 (PST) Received: from localhost ([::1]:44365 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGpJ-0007bs-Pb for importer@patchew.org; Fri, 21 Dec 2018 04:10:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjb-0002yQ-PX for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGja-0000bB-4j for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47162) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjV-0000VD-I6 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:39 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6A7B07E443 for ; Fri, 21 Dec 2018 09:04:33 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id D051210018F8; Fri, 21 Dec 2018 09:04:30 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:45 +0400 Message-Id: <20181221090410.27250-4-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 21 Dec 2018 09:04:33 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 03/28] hw: apply machine compat properties without touching globals X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Similarly to accel properties, move compat properties out of globals registration, and apply the machine compat properties during device_post_init(). Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +- hw/arm/virt.c | 27 ++++++++---- hw/core/machine.c | 19 +-------- hw/core/qdev.c | 2 + hw/i386/pc_piix.c | 87 +++++++++++++++++++++++++------------- hw/i386/pc_q35.c | 33 ++++++++++----- hw/ppc/spapr.c | 42 ++++++++++++------ hw/s390x/s390-virtio-ccw.c | 33 ++++++++++----- vl.c | 1 - 9 files changed, 152 insertions(+), 95 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 92aa43a40e..f02d5a1bbd 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -69,7 +69,6 @@ int machine_kvm_shadow_mem(MachineState *machine); int machine_phandle_start(MachineState *machine); bool machine_dump_guest_core(MachineState *machine); bool machine_mem_merge(MachineState *machine); -void machine_register_compat_props(MachineState *machine); HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine= ); void machine_set_cpu_numa_node(MachineState *machine, const CpuInstanceProperties *props, @@ -191,7 +190,7 @@ struct MachineClass { const char *default_machine_opts; const char *default_boot_order; const char *default_display; - GArray *compat_props; + GPtrArray *compat_props; const char *hw_version; ram_addr_t default_ram_size; const char *default_cpu_type; diff --git a/hw/arm/virt.c b/hw/arm/virt.c index f3155efa07..d47eb6ea49 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1879,7 +1879,8 @@ static GlobalProperty virt_compat_3_1[] =3D { static void virt_machine_3_1_options(MachineClass *mc) { virt_machine_4_0_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_3_1); + compat_props_add(mc->compat_props, + virt_compat_3_1, G_N_ELEMENTS(virt_compat_3_1)); } DEFINE_VIRT_MACHINE(3, 1) =20 @@ -1890,7 +1891,8 @@ static GlobalProperty virt_compat_3_0[] =3D { static void virt_machine_3_0_options(MachineClass *mc) { virt_machine_3_1_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_3_0); + compat_props_add(mc->compat_props, + virt_compat_3_0, G_N_ELEMENTS(virt_compat_3_0)); } DEFINE_VIRT_MACHINE(3, 0) =20 @@ -1903,7 +1905,8 @@ static void virt_machine_2_12_options(MachineClass *m= c) VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_3_0_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_12); + compat_props_add(mc->compat_props, + virt_compat_2_12, G_N_ELEMENTS(virt_compat_2_12)); vmc->no_highmem_ecam =3D true; mc->max_cpus =3D 255; } @@ -1918,7 +1921,8 @@ static void virt_machine_2_11_options(MachineClass *m= c) VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_12_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_11); + compat_props_add(mc->compat_props, + virt_compat_2_11, G_N_ELEMENTS(virt_compat_2_11)); vmc->smbios_old_sys_ver =3D true; } DEFINE_VIRT_MACHINE(2, 11) @@ -1930,7 +1934,8 @@ static GlobalProperty virt_compat_2_10[] =3D { static void virt_machine_2_10_options(MachineClass *mc) { virt_machine_2_11_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_10); + compat_props_add(mc->compat_props, + virt_compat_2_10, G_N_ELEMENTS(virt_compat_2_10)); /* before 2.11 we never faulted accesses to bad addresses */ mc->ignore_memory_transaction_failures =3D true; } @@ -1943,7 +1948,8 @@ static GlobalProperty virt_compat_2_9[] =3D { static void virt_machine_2_9_options(MachineClass *mc) { virt_machine_2_10_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_9); + compat_props_add(mc->compat_props, + virt_compat_2_9, G_N_ELEMENTS(virt_compat_2_9)); } DEFINE_VIRT_MACHINE(2, 9) =20 @@ -1956,7 +1962,8 @@ static void virt_machine_2_8_options(MachineClass *mc) VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_9_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_8); + compat_props_add(mc->compat_props, + virt_compat_2_8, G_N_ELEMENTS(virt_compat_2_8)); /* For 2.8 and earlier we falsely claimed in the DT that * our timers were edge-triggered, not level-triggered. */ @@ -1973,7 +1980,8 @@ static void virt_machine_2_7_options(MachineClass *mc) VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_8_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_7); + compat_props_add(mc->compat_props, + virt_compat_2_7, G_N_ELEMENTS(virt_compat_2_7)); /* ITS was introduced with 2.8 */ vmc->no_its =3D true; /* Stick with 1K pages for migration compatibility */ @@ -1990,7 +1998,8 @@ static void virt_machine_2_6_options(MachineClass *mc) VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); =20 virt_machine_2_7_options(mc); - SET_MACHINE_COMPAT(mc, virt_compat_2_6); + compat_props_add(mc->compat_props, + virt_compat_2_6, G_N_ELEMENTS(virt_compat_2_6)); vmc->disallow_affinity_adjustment =3D true; /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ vmc->no_pmu =3D true; diff --git a/hw/core/machine.c b/hw/core/machine.c index c51423b647..6e24924aba 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -647,6 +647,7 @@ static void machine_class_base_init(ObjectClass *oc, vo= id *data) assert(g_str_has_suffix(cname, TYPE_MACHINE_SUFFIX)); mc->name =3D g_strndup(cname, strlen(cname) - strlen(TYPE_MACHINE_SUFFIX)); + mc->compat_props =3D g_ptr_array_new(); } } =20 @@ -834,24 +835,6 @@ void machine_run_board_init(MachineState *machine) machine_class->init(machine); } =20 -void machine_register_compat_props(MachineState *machine) -{ - MachineClass *mc =3D MACHINE_GET_CLASS(machine); - int i; - GlobalProperty *p; - - if (!mc->compat_props) { - return; - } - - for (i =3D 0; i < mc->compat_props->len; i++) { - p =3D g_array_index(mc->compat_props, GlobalProperty *, i); - /* Machine compat_props must never cause errors: */ - p->errp =3D &error_abort; - qdev_prop_register_global(p); - } -} - static const TypeInfo machine_info =3D { .name =3D TYPE_MACHINE, .parent =3D TYPE_OBJECT, diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 53b507164f..d510340bac 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -974,11 +974,13 @@ static void device_post_init(Object *obj) { if (object_dynamic_cast(qdev_get_machine(), TYPE_MACHINE)) { MachineState *m =3D MACHINE(qdev_get_machine()); + MachineClass *mc =3D MACHINE_GET_CLASS(m); AccelClass *ac =3D ACCEL_GET_CLASS(m->accelerator); =20 if (ac->compat_props) { object_apply_global_props(obj, ac->compat_props, &error_abort); } + object_apply_global_props(obj, mc->compat_props, &error_abort); } =20 qdev_prop_set_globals(DEVICE(obj)); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 8ade7318e0..9baca6d6ee 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -447,7 +447,8 @@ static void pc_i440fx_3_1_machine_options(MachineClass = *m) pc_i440fx_4_0_machine_options(m); m->is_default =3D 0; m->alias =3D NULL; - SET_MACHINE_COMPAT(m, pc_compat_3_1); + compat_props_add(m->compat_props, + pc_compat_3_1, G_N_ELEMENTS(pc_compat_3_1)); } =20 DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, @@ -460,7 +461,8 @@ static GlobalProperty pc_compat_3_0[] =3D { static void pc_i440fx_3_0_machine_options(MachineClass *m) { pc_i440fx_3_1_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_3_0); + compat_props_add(m->compat_props, + pc_compat_3_0, G_N_ELEMENTS(pc_compat_3_0)); } =20 DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, @@ -473,7 +475,8 @@ static GlobalProperty pc_compat_2_12[] =3D { static void pc_i440fx_2_12_machine_options(MachineClass *m) { pc_i440fx_3_0_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_12); + compat_props_add(m->compat_props, + pc_compat_2_12, G_N_ELEMENTS(pc_compat_2_12)); } =20 DEFINE_I440FX_MACHINE(v2_12, "pc-i440fx-2.12", NULL, @@ -486,7 +489,8 @@ static GlobalProperty pc_compat_2_11[] =3D { static void pc_i440fx_2_11_machine_options(MachineClass *m) { pc_i440fx_2_12_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_11); + compat_props_add(m->compat_props, + pc_compat_2_11, G_N_ELEMENTS(pc_compat_2_11)); } =20 DEFINE_I440FX_MACHINE(v2_11, "pc-i440fx-2.11", NULL, @@ -499,7 +503,8 @@ static GlobalProperty pc_compat_2_10[] =3D { static void pc_i440fx_2_10_machine_options(MachineClass *m) { pc_i440fx_2_11_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_10); + compat_props_add(m->compat_props, + pc_compat_2_10, G_N_ELEMENTS(pc_compat_2_10)); m->auto_enable_numa_with_memhp =3D false; } =20 @@ -513,7 +518,8 @@ static GlobalProperty pc_compat_2_9[] =3D { static void pc_i440fx_2_9_machine_options(MachineClass *m) { pc_i440fx_2_10_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_9); + compat_props_add(m->compat_props, + pc_compat_2_9, G_N_ELEMENTS(pc_compat_2_9)); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; } =20 @@ -527,7 +533,8 @@ static GlobalProperty pc_compat_2_8[] =3D { static void pc_i440fx_2_8_machine_options(MachineClass *m) { pc_i440fx_2_9_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_8); + compat_props_add(m->compat_props, + pc_compat_2_8, G_N_ELEMENTS(pc_compat_2_8)); } =20 DEFINE_I440FX_MACHINE(v2_8, "pc-i440fx-2.8", NULL, @@ -540,7 +547,8 @@ static GlobalProperty pc_compat_2_7[] =3D { static void pc_i440fx_2_7_machine_options(MachineClass *m) { pc_i440fx_2_8_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_7); + compat_props_add(m->compat_props, + pc_compat_2_7, G_N_ELEMENTS(pc_compat_2_7)); } =20 DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, @@ -556,7 +564,8 @@ static void pc_i440fx_2_6_machine_options(MachineClass = *m) pc_i440fx_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - SET_MACHINE_COMPAT(m, pc_compat_2_6); + compat_props_add(m->compat_props, + pc_compat_2_6, G_N_ELEMENTS(pc_compat_2_6)); } =20 DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, @@ -572,7 +581,8 @@ static void pc_i440fx_2_5_machine_options(MachineClass = *m) pc_i440fx_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - SET_MACHINE_COMPAT(m, pc_compat_2_5); + compat_props_add(m->compat_props, + pc_compat_2_5, G_N_ELEMENTS(pc_compat_2_5)); } =20 DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL, @@ -588,7 +598,8 @@ static void pc_i440fx_2_4_machine_options(MachineClass = *m) pc_i440fx_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - SET_MACHINE_COMPAT(m, pc_compat_2_4); + compat_props_add(m->compat_props, + pc_compat_2_4, G_N_ELEMENTS(pc_compat_2_4)); } =20 DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL, @@ -602,7 +613,8 @@ static void pc_i440fx_2_3_machine_options(MachineClass = *m) { pc_i440fx_2_4_machine_options(m); m->hw_version =3D "2.3.0"; - SET_MACHINE_COMPAT(m, pc_compatp_2_3); + compat_props_add(m->compat_props, + pc_compatp_2_3, G_N_ELEMENTS(pc_compatp_2_3)); } =20 DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3, @@ -618,7 +630,8 @@ static void pc_i440fx_2_2_machine_options(MachineClass = *m) pc_i440fx_2_3_machine_options(m); m->hw_version =3D "2.2.0"; m->default_machine_opts =3D "firmware=3Dbios-256k.bin,suppress-vmdesc= =3Don"; - SET_MACHINE_COMPAT(m, pc_compatp_2_2); + compat_props_add(m->compat_props, + pc_compatp_2_2, G_N_ELEMENTS(pc_compatp_2_2)); pcmc->rsdp_in_ram =3D false; } =20 @@ -635,7 +648,8 @@ static void pc_i440fx_2_1_machine_options(MachineClass = *m) pc_i440fx_2_2_machine_options(m); m->hw_version =3D "2.1.0"; m->default_display =3D NULL; - SET_MACHINE_COMPAT(m, pc_compatp_2_1); + compat_props_add(m->compat_props, + pc_compatp_2_1, G_N_ELEMENTS(pc_compatp_2_1)); pcmc->smbios_uuid_encoded =3D false; pcmc->enforce_aligned_dimm =3D false; } @@ -652,7 +666,8 @@ static void pc_i440fx_2_0_machine_options(MachineClass = *m) PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_2_1_machine_options(m); m->hw_version =3D "2.0.0"; - SET_MACHINE_COMPAT(m, pc_compatp_2_0); + compat_props_add(m->compat_props, + pc_compatp_2_0, G_N_ELEMENTS(pc_compatp_2_0)); pcmc->smbios_legacy_mode =3D true; pcmc->has_reserved_memory =3D false; /* This value depends on the actual DSDT and SSDT compiled into @@ -689,7 +704,8 @@ static void pc_i440fx_1_7_machine_options(MachineClass = *m) m->hw_version =3D "1.7.0"; m->default_machine_opts =3D NULL; m->option_rom_has_mr =3D true; - SET_MACHINE_COMPAT(m, pc_compatp_1_7); + compat_props_add(m->compat_props, + pc_compatp_1_7, G_N_ELEMENTS(pc_compatp_1_7)); pcmc->smbios_defaults =3D false; pcmc->gigabyte_align =3D false; pcmc->legacy_acpi_table_size =3D 6414; @@ -708,7 +724,8 @@ static void pc_i440fx_1_6_machine_options(MachineClass = *m) pc_i440fx_1_7_machine_options(m); m->hw_version =3D "1.6.0"; m->rom_file_has_mr =3D false; - SET_MACHINE_COMPAT(m, pc_compatp_1_6); + compat_props_add(m->compat_props, + pc_compatp_1_6, G_N_ELEMENTS(pc_compatp_1_6)); pcmc->has_acpi_build =3D false; } =20 @@ -723,7 +740,8 @@ static void pc_i440fx_1_5_machine_options(MachineClass = *m) { pc_i440fx_1_6_machine_options(m); m->hw_version =3D "1.5.0"; - SET_MACHINE_COMPAT(m, pc_compatp_1_5); + compat_props_add(m->compat_props, + pc_compatp_1_5, G_N_ELEMENTS(pc_compatp_1_5)); } =20 DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5, @@ -738,7 +756,8 @@ static void pc_i440fx_1_4_machine_options(MachineClass = *m) pc_i440fx_1_5_machine_options(m); m->hw_version =3D "1.4.0"; m->hot_add_cpu =3D NULL; - SET_MACHINE_COMPAT(m, pc_compatp_1_4); + compat_props_add(m->compat_props, + pc_compatp_1_4, G_N_ELEMENTS(pc_compatp_1_4)); } =20 DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4, @@ -769,7 +788,8 @@ static void pc_i440fx_1_3_machine_options(MachineClass = *m) { pc_i440fx_1_4_machine_options(m); m->hw_version =3D "1.3.0"; - SET_MACHINE_COMPAT(m, pc_compatp_1_3); + compat_props_add(m->compat_props, + pc_compatp_1_3, G_N_ELEMENTS(pc_compatp_1_3)); } =20 DEFINE_I440FX_MACHINE(v1_3, "pc-1.3", pc_compat_1_3, @@ -809,7 +829,8 @@ static void pc_i440fx_1_2_machine_options(MachineClass = *m) { pc_i440fx_1_3_machine_options(m); m->hw_version =3D "1.2.0"; - SET_MACHINE_COMPAT(m, pc_compatp_1_2); + compat_props_add(m->compat_props, + pc_compatp_1_2, G_N_ELEMENTS(pc_compatp_1_2)); } =20 DEFINE_I440FX_MACHINE(v1_2, "pc-1.2", pc_compat_1_2, @@ -853,7 +874,8 @@ static void pc_i440fx_1_1_machine_options(MachineClass = *m) { pc_i440fx_1_2_machine_options(m); m->hw_version =3D "1.1.0"; - SET_MACHINE_COMPAT(m, pc_compatp_1_1); + compat_props_add(m->compat_props, + pc_compatp_1_1, G_N_ELEMENTS(pc_compatp_1_1)); } =20 DEFINE_I440FX_MACHINE(v1_1, "pc-1.1", pc_compat_1_2, @@ -884,7 +906,8 @@ static void pc_i440fx_1_0_machine_options(MachineClass = *m) { pc_i440fx_1_1_machine_options(m); m->hw_version =3D "1.0"; - SET_MACHINE_COMPAT(m, pc_compatp_1_0); + compat_props_add(m->compat_props, + pc_compatp_1_0, G_N_ELEMENTS(pc_compatp_1_0)); } =20 DEFINE_I440FX_MACHINE(v1_0, "pc-1.0", pc_compat_1_2, @@ -899,7 +922,8 @@ static void pc_i440fx_0_15_machine_options(MachineClass= *m) { pc_i440fx_1_0_machine_options(m); m->hw_version =3D "0.15"; - SET_MACHINE_COMPAT(m, pc_compatp_0_15); + compat_props_add(m->compat_props, + pc_compatp_0_15, G_N_ELEMENTS(pc_compatp_0_15)); } =20 DEFINE_I440FX_MACHINE(v0_15, "pc-0.15", pc_compat_1_2, @@ -939,7 +963,8 @@ static void pc_i440fx_0_14_machine_options(MachineClass= *m) { pc_i440fx_0_15_machine_options(m); m->hw_version =3D "0.14"; - SET_MACHINE_COMPAT(m, pc_compatp_0_14); + compat_props_add(m->compat_props, + pc_compatp_0_14, G_N_ELEMENTS(pc_compatp_0_14)); } =20 DEFINE_I440FX_MACHINE(v0_14, "pc-0.14", pc_compat_1_2, @@ -975,7 +1000,8 @@ static void pc_i440fx_0_13_machine_options(MachineClas= s *m) PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); pc_i440fx_0_14_machine_options(m); m->hw_version =3D "0.13"; - SET_MACHINE_COMPAT(m, pc_compatp_0_13); + compat_props_add(m->compat_props, + pc_compatp_0_13, G_N_ELEMENTS(pc_compatp_0_13)); pcmc->kvmclock_enabled =3D false; } =20 @@ -1011,7 +1037,8 @@ static void pc_i440fx_0_12_machine_options(MachineCla= ss *m) { pc_i440fx_0_13_machine_options(m); m->hw_version =3D "0.12"; - SET_MACHINE_COMPAT(m, pc_compat_0_12); + compat_props_add(m->compat_props, + pc_compat_0_12, G_N_ELEMENTS(pc_compat_0_12)); } =20 DEFINE_I440FX_MACHINE(v0_12, "pc-0.12", pc_compat_0_13, @@ -1044,7 +1071,8 @@ static void pc_i440fx_0_11_machine_options(MachineCla= ss *m) pc_i440fx_0_12_machine_options(m); m->hw_version =3D "0.11"; m->deprecation_reason =3D "use a newer machine type instead"; - SET_MACHINE_COMPAT(m, pc_compat_0_11); + compat_props_add(m->compat_props, + pc_compat_0_11, G_N_ELEMENTS(pc_compat_0_11)); } =20 DEFINE_I440FX_MACHINE(v0_11, "pc-0.11", pc_compat_0_13, @@ -1079,7 +1107,8 @@ static void pc_i440fx_0_10_machine_options(MachineCla= ss *m) { pc_i440fx_0_11_machine_options(m); m->hw_version =3D "0.10"; - SET_MACHINE_COMPAT(m, pc_compat_0_10); + compat_props_add(m->compat_props, + pc_compat_0_10, G_N_ELEMENTS(pc_compat_0_10)); } =20 DEFINE_I440FX_MACHINE(v0_10, "pc-0.10", pc_compat_0_13, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 0c02a72e00..72795812e5 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -328,7 +328,8 @@ static void pc_q35_3_1_machine_options(MachineClass *m) { pc_q35_4_0_machine_options(m); m->alias =3D NULL; - SET_MACHINE_COMPAT(m, pc_compat_3_1); + compat_props_add(m->compat_props, + pc_compat_3_1, G_N_ELEMENTS(pc_compat_3_1)); } =20 DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, @@ -341,7 +342,8 @@ static GlobalProperty pc_compat_3_0[] =3D { static void pc_q35_3_0_machine_options(MachineClass *m) { pc_q35_3_1_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_3_0); + compat_props_add(m->compat_props, + pc_compat_3_0, G_N_ELEMENTS(pc_compat_3_0)); } =20 DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, @@ -354,7 +356,8 @@ static GlobalProperty pc_compat_2_12[] =3D { static void pc_q35_2_12_machine_options(MachineClass *m) { pc_q35_3_0_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_12); + compat_props_add(m->compat_props, + pc_compat_2_12, G_N_ELEMENTS(pc_compat_2_12)); } =20 DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL, @@ -370,7 +373,8 @@ static void pc_q35_2_11_machine_options(MachineClass *m) =20 pc_q35_2_12_machine_options(m); pcmc->default_nic_model =3D "e1000"; - SET_MACHINE_COMPAT(m, pc_compat_2_11); + compat_props_add(m->compat_props, + pc_compat_2_11, G_N_ELEMENTS(pc_compat_2_11)); } =20 DEFINE_Q35_MACHINE(v2_11, "pc-q35-2.11", NULL, @@ -383,7 +387,8 @@ static GlobalProperty pc_compat_2_10[] =3D { static void pc_q35_2_10_machine_options(MachineClass *m) { pc_q35_2_11_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_10); + compat_props_add(m->compat_props, + pc_compat_2_10, G_N_ELEMENTS(pc_compat_2_10)); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; m->auto_enable_numa_with_memhp =3D false; } @@ -398,7 +403,8 @@ static GlobalProperty pc_compat_2_9[] =3D { static void pc_q35_2_9_machine_options(MachineClass *m) { pc_q35_2_10_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_9); + compat_props_add(m->compat_props, + pc_compat_2_9, G_N_ELEMENTS(pc_compat_2_9)); } =20 DEFINE_Q35_MACHINE(v2_9, "pc-q35-2.9", NULL, @@ -411,7 +417,8 @@ static GlobalProperty pc_compat_2_8[] =3D { static void pc_q35_2_8_machine_options(MachineClass *m) { pc_q35_2_9_machine_options(m); - SET_MACHINE_COMPAT(m, pc_compat_2_8); + compat_props_add(m->compat_props, + pc_compat_2_8, G_N_ELEMENTS(pc_compat_2_8)); } =20 DEFINE_Q35_MACHINE(v2_8, "pc-q35-2.8", NULL, @@ -425,7 +432,8 @@ static void pc_q35_2_7_machine_options(MachineClass *m) { pc_q35_2_8_machine_options(m); m->max_cpus =3D 255; - SET_MACHINE_COMPAT(m, pc_compat_2_7); + compat_props_add(m->compat_props, + pc_compat_2_7, G_N_ELEMENTS(pc_compat_2_7)); } =20 DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, @@ -441,7 +449,8 @@ static void pc_q35_2_6_machine_options(MachineClass *m) pc_q35_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - SET_MACHINE_COMPAT(m, pc_compat_2_6); + compat_props_add(m->compat_props, + pc_compat_2_6, G_N_ELEMENTS(pc_compat_2_6)); } =20 DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, @@ -457,7 +466,8 @@ static void pc_q35_2_5_machine_options(MachineClass *m) pc_q35_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - SET_MACHINE_COMPAT(m, pc_compat_2_5); + compat_props_add(m->compat_props, + pc_compat_2_5, G_N_ELEMENTS(pc_compat_2_5)); } =20 DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL, @@ -473,7 +483,8 @@ static void pc_q35_2_4_machine_options(MachineClass *m) pc_q35_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - SET_MACHINE_COMPAT(m, pc_compat_2_4); + compat_props_add(m->compat_props, + pc_compat_2_4, G_N_ELEMENTS(pc_compat_2_4)); } =20 DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6145a9909d..a6ed88ba95 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3970,7 +3970,8 @@ static GlobalProperty spapr_compat_3_1[] =3D { static void spapr_machine_3_1_class_options(MachineClass *mc) { spapr_machine_4_0_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_3_1); + compat_props_add(mc->compat_props, + spapr_compat_3_1, G_N_ELEMENTS(spapr_compat_3_1)); } =20 DEFINE_SPAPR_MACHINE(3_1, "3.1", false); @@ -3987,7 +3988,8 @@ static void spapr_machine_3_0_class_options(MachineCl= ass *mc) sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_3_1_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_3_0); + compat_props_add(mc->compat_props, + spapr_compat_3_0, G_N_ELEMENTS(spapr_compat_3_0)); =20 smc->legacy_irq_allocation =3D true; smc->irq =3D &spapr_irq_xics_legacy; @@ -4017,7 +4019,8 @@ static void spapr_machine_2_12_class_options(MachineC= lass *mc) sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_3_0_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_12); + compat_props_add(mc->compat_props, + spapr_compat_2_12, G_N_ELEMENTS(spapr_compat_2_12)); =20 /* We depend on kvm_enabled() to choose a default value for the * hpt-max-page-size capability. Of course we can't do it here @@ -4054,7 +4057,8 @@ static void spapr_machine_2_11_class_options(MachineC= lass *mc) =20 spapr_machine_2_12_class_options(mc); smc->default_caps.caps[SPAPR_CAP_HTM] =3D SPAPR_CAP_ON; - SET_MACHINE_COMPAT(mc, spapr_compat_2_11); + compat_props_add(mc->compat_props, + spapr_compat_2_11, G_N_ELEMENTS(spapr_compat_2_11)); } =20 DEFINE_SPAPR_MACHINE(2_11, "2.11", false); @@ -4069,7 +4073,8 @@ static GlobalProperty spapr_compat_2_10[] =3D { static void spapr_machine_2_10_class_options(MachineClass *mc) { spapr_machine_2_11_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_10); + compat_props_add(mc->compat_props, + spapr_compat_2_10, G_N_ELEMENTS(spapr_compat_2_10)); } =20 DEFINE_SPAPR_MACHINE(2_10, "2.10", false); @@ -4091,7 +4096,8 @@ static void spapr_machine_2_9_class_options(MachineCl= ass *mc) sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_2_10_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_9); + compat_props_add(mc->compat_props, + spapr_compat_2_9, G_N_ELEMENTS(spapr_compat_2_9)); mc->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; smc->pre_2_10_has_unused_icps =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_DISABLED; @@ -4114,7 +4120,8 @@ static GlobalProperty spapr_compat_2_8[] =3D { static void spapr_machine_2_8_class_options(MachineClass *mc) { spapr_machine_2_9_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_8); + compat_props_add(mc->compat_props, + spapr_compat_2_8, G_N_ELEMENTS(spapr_compat_2_8)); mc->numa_mem_align_shift =3D 23; } =20 @@ -4203,7 +4210,8 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) spapr_machine_2_8_class_options(mc); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power7_v2.3"); mc->default_machine_opts =3D "modern-hotplug-events=3Doff"; - SET_MACHINE_COMPAT(mc, spapr_compat_2_7); + compat_props_add(mc->compat_props, + spapr_compat_2_7, G_N_ELEMENTS(spapr_compat_2_7)); smc->phb_placement =3D phb_placement_2_7; } =20 @@ -4225,7 +4233,8 @@ static void spapr_machine_2_6_class_options(MachineCl= ass *mc) { spapr_machine_2_7_class_options(mc); mc->has_hotpluggable_cpus =3D false; - SET_MACHINE_COMPAT(mc, spapr_compat_2_6); + compat_props_add(mc->compat_props, + spapr_compat_2_6, G_N_ELEMENTS(spapr_compat_2_6)); } =20 DEFINE_SPAPR_MACHINE(2_6, "2.6", false); @@ -4248,7 +4257,8 @@ static void spapr_machine_2_5_class_options(MachineCl= ass *mc) =20 spapr_machine_2_6_class_options(mc); smc->use_ohci_by_default =3D true; - SET_MACHINE_COMPAT(mc, spapr_compat_2_5); + compat_props_add(mc->compat_props, + spapr_compat_2_5, G_N_ELEMENTS(spapr_compat_2_5)); } =20 DEFINE_SPAPR_MACHINE(2_5, "2.5", false); @@ -4266,7 +4276,8 @@ static void spapr_machine_2_4_class_options(MachineCl= ass *mc) =20 spapr_machine_2_5_class_options(mc); smc->dr_lmb_enabled =3D false; - SET_MACHINE_COMPAT(mc, spapr_compat_2_4); + compat_props_add(mc->compat_props, + spapr_compat_2_4, G_N_ELEMENTS(spapr_compat_2_4)); } =20 DEFINE_SPAPR_MACHINE(2_4, "2.4", false); @@ -4286,7 +4297,8 @@ static GlobalProperty spapr_compat_2_3[] =3D { static void spapr_machine_2_3_class_options(MachineClass *mc) { spapr_machine_2_4_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_3); + compat_props_add(mc->compat_props, + spapr_compat_2_3, G_N_ELEMENTS(spapr_compat_2_3)); } DEFINE_SPAPR_MACHINE(2_3, "2.3", false); =20 @@ -4305,7 +4317,8 @@ static GlobalProperty spapr_compat_2_2[] =3D { static void spapr_machine_2_2_class_options(MachineClass *mc) { spapr_machine_2_3_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_2); + compat_props_add(mc->compat_props, + spapr_compat_2_2, G_N_ELEMENTS(spapr_compat_2_2)); mc->default_machine_opts =3D "modern-hotplug-events=3Doff,suppress-vmd= esc=3Don"; } DEFINE_SPAPR_MACHINE(2_2, "2.2", false); @@ -4320,7 +4333,8 @@ static GlobalProperty spapr_compat_2_1[] =3D { static void spapr_machine_2_1_class_options(MachineClass *mc) { spapr_machine_2_2_class_options(mc); - SET_MACHINE_COMPAT(mc, spapr_compat_2_1); + compat_props_add(mc->compat_props, + spapr_compat_2_1, G_N_ELEMENTS(spapr_compat_2_1)); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 882a9796cf..f2faea585e 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -773,7 +773,8 @@ static void ccw_machine_3_1_instance_options(MachineSta= te *machine) static void ccw_machine_3_1_class_options(MachineClass *mc) { ccw_machine_4_0_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_3_1); + compat_props_add(mc->compat_props, + ccw_compat_3_1, G_N_ELEMENTS(ccw_compat_3_1)); } DEFINE_CCW_MACHINE(3_1, "3.1", false); =20 @@ -788,7 +789,8 @@ static void ccw_machine_3_0_class_options(MachineClass = *mc) =20 s390mc->hpage_1m_allowed =3D false; ccw_machine_3_1_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_3_0); + compat_props_add(mc->compat_props, + ccw_compat_3_0, G_N_ELEMENTS(ccw_compat_3_0)); } DEFINE_CCW_MACHINE(3_0, "3.0", false); =20 @@ -802,7 +804,8 @@ static void ccw_machine_2_12_instance_options(MachineSt= ate *machine) static void ccw_machine_2_12_class_options(MachineClass *mc) { ccw_machine_3_0_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_12); + compat_props_add(mc->compat_props, + ccw_compat_2_12, G_N_ELEMENTS(ccw_compat_2_12)); } DEFINE_CCW_MACHINE(2_12, "2.12", false); =20 @@ -818,7 +821,8 @@ static void ccw_machine_2_11_instance_options(MachineSt= ate *machine) static void ccw_machine_2_11_class_options(MachineClass *mc) { ccw_machine_2_12_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_11); + compat_props_add(mc->compat_props, + ccw_compat_2_11, G_N_ELEMENTS(ccw_compat_2_11)); } DEFINE_CCW_MACHINE(2_11, "2.11", false); =20 @@ -830,7 +834,8 @@ static void ccw_machine_2_10_instance_options(MachineSt= ate *machine) static void ccw_machine_2_10_class_options(MachineClass *mc) { ccw_machine_2_11_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_10); + compat_props_add(mc->compat_props, + ccw_compat_2_10, G_N_ELEMENTS(ccw_compat_2_10)); } DEFINE_CCW_MACHINE(2_10, "2.10", false); =20 @@ -849,7 +854,8 @@ static void ccw_machine_2_9_class_options(MachineClass = *mc) S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); =20 ccw_machine_2_10_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_9); + compat_props_add(mc->compat_props, + ccw_compat_2_9, G_N_ELEMENTS(ccw_compat_2_9)); s390mc->css_migration_enabled =3D false; } DEFINE_CCW_MACHINE(2_9, "2.9", false); @@ -862,7 +868,8 @@ static void ccw_machine_2_8_instance_options(MachineSta= te *machine) static void ccw_machine_2_8_class_options(MachineClass *mc) { ccw_machine_2_9_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_8); + compat_props_add(mc->compat_props, + ccw_compat_2_8, G_N_ELEMENTS(ccw_compat_2_8)); } DEFINE_CCW_MACHINE(2_8, "2.8", false); =20 @@ -877,7 +884,8 @@ static void ccw_machine_2_7_class_options(MachineClass = *mc) =20 s390mc->cpu_model_allowed =3D false; ccw_machine_2_8_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_7); + compat_props_add(mc->compat_props, + ccw_compat_2_7, G_N_ELEMENTS(ccw_compat_2_7)); } DEFINE_CCW_MACHINE(2_7, "2.7", false); =20 @@ -892,7 +900,8 @@ static void ccw_machine_2_6_class_options(MachineClass = *mc) =20 s390mc->ri_allowed =3D false; ccw_machine_2_7_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_6); + compat_props_add(mc->compat_props, + ccw_compat_2_6, G_N_ELEMENTS(ccw_compat_2_6)); } DEFINE_CCW_MACHINE(2_6, "2.6", false); =20 @@ -904,7 +913,8 @@ static void ccw_machine_2_5_instance_options(MachineSta= te *machine) static void ccw_machine_2_5_class_options(MachineClass *mc) { ccw_machine_2_6_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_5); + compat_props_add(mc->compat_props, + ccw_compat_2_5, G_N_ELEMENTS(ccw_compat_2_5)); } DEFINE_CCW_MACHINE(2_5, "2.5", false); =20 @@ -916,7 +926,8 @@ static void ccw_machine_2_4_instance_options(MachineSta= te *machine) static void ccw_machine_2_4_class_options(MachineClass *mc) { ccw_machine_2_5_class_options(mc); - SET_MACHINE_COMPAT(mc, ccw_compat_2_4); + compat_props_add(mc->compat_props, + ccw_compat_2_4, G_N_ELEMENTS(ccw_compat_2_4)); } DEFINE_CCW_MACHINE(2_4, "2.4", false); =20 diff --git a/vl.c b/vl.c index 7971470539..aa0386952e 100644 --- a/vl.c +++ b/vl.c @@ -2984,7 +2984,6 @@ static void user_register_global_props(void) */ static void register_global_properties(MachineState *ms) { - machine_register_compat_props(ms); user_register_global_props(); } =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383614690555.4497702723771; Fri, 21 Dec 2018 01:13:34 -0800 (PST) Received: from localhost ([::1]:44384 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGs7-0001pH-Mb for importer@patchew.org; Fri, 21 Dec 2018 04:13:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38004) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjc-0002zK-FK for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGja-0000bf-HF for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47220) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGja-0000aE-4j for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:42 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5A8527E447 for ; Fri, 21 Dec 2018 09:04:40 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 141E317B49; Fri, 21 Dec 2018 09:04:36 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:46 +0400 Message-Id: <20181221090410.27250-5-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 21 Dec 2018 09:04:40 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 04/28] machine: move compat properties out of globals X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Move the compat arrays inside functions that use them. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- hw/arm/virt.c | 94 +++-- hw/i386/pc_piix.c | 705 ++++++++++++++++++------------------- hw/i386/pc_q35.c | 121 +++---- hw/ppc/spapr.c | 254 +++++++------ hw/s390x/s390-virtio-ccw.c | 239 ++++++------- hw/xen/xen-common.c | 38 +- 6 files changed, 685 insertions(+), 766 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index d47eb6ea49..caa61c6201 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1872,98 +1872,88 @@ static void virt_machine_4_0_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE_AS_LATEST(4, 0) =20 -static GlobalProperty virt_compat_3_1[] =3D { - HW_COMPAT_3_1 -}; - static void virt_machine_3_1_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_3_1 + }; + virt_machine_4_0_options(mc); - compat_props_add(mc->compat_props, - virt_compat_3_1, G_N_ELEMENTS(virt_compat_3_1)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_VIRT_MACHINE(3, 1) =20 -static GlobalProperty virt_compat_3_0[] =3D { - HW_COMPAT_3_0 -}; - static void virt_machine_3_0_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_3_0 + }; + virt_machine_3_1_options(mc); - compat_props_add(mc->compat_props, - virt_compat_3_0, G_N_ELEMENTS(virt_compat_3_0)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_VIRT_MACHINE(3, 0) =20 -static GlobalProperty virt_compat_2_12[] =3D { - HW_COMPAT_2_12 -}; - static void virt_machine_2_12_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_12 + }; =20 virt_machine_3_0_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_12, G_N_ELEMENTS(virt_compat_2_12)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); vmc->no_highmem_ecam =3D true; mc->max_cpus =3D 255; } DEFINE_VIRT_MACHINE(2, 12) =20 -static GlobalProperty virt_compat_2_11[] =3D { - HW_COMPAT_2_11 -}; - static void virt_machine_2_11_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_11 + }; =20 virt_machine_2_12_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_11, G_N_ELEMENTS(virt_compat_2_11)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); vmc->smbios_old_sys_ver =3D true; } DEFINE_VIRT_MACHINE(2, 11) =20 -static GlobalProperty virt_compat_2_10[] =3D { - HW_COMPAT_2_10 -}; - static void virt_machine_2_10_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_10 + }; + virt_machine_2_11_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_10, G_N_ELEMENTS(virt_compat_2_10)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); /* before 2.11 we never faulted accesses to bad addresses */ mc->ignore_memory_transaction_failures =3D true; } DEFINE_VIRT_MACHINE(2, 10) =20 -static GlobalProperty virt_compat_2_9[] =3D { - HW_COMPAT_2_9 -}; - static void virt_machine_2_9_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_9 + }; + virt_machine_2_10_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_9, G_N_ELEMENTS(virt_compat_2_9)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_VIRT_MACHINE(2, 9) =20 -static GlobalProperty virt_compat_2_8[] =3D { - HW_COMPAT_2_8 -}; - static void virt_machine_2_8_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_8 + }; =20 virt_machine_2_9_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_8, G_N_ELEMENTS(virt_compat_2_8)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); /* For 2.8 and earlier we falsely claimed in the DT that * our timers were edge-triggered, not level-triggered. */ @@ -1971,17 +1961,15 @@ static void virt_machine_2_8_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE(2, 8) =20 -static GlobalProperty virt_compat_2_7[] =3D { - HW_COMPAT_2_7 -}; - static void virt_machine_2_7_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_7 + }; =20 virt_machine_2_8_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_7, G_N_ELEMENTS(virt_compat_2_7)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); /* ITS was introduced with 2.8 */ vmc->no_its =3D true; /* Stick with 1K pages for migration compatibility */ @@ -1989,17 +1977,15 @@ static void virt_machine_2_7_options(MachineClass *= mc) } DEFINE_VIRT_MACHINE(2, 7) =20 -static GlobalProperty virt_compat_2_6[] =3D { - HW_COMPAT_2_6 -}; - static void virt_machine_2_6_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_6 + }; =20 virt_machine_2_7_options(mc); - compat_props_add(mc->compat_props, - virt_compat_2_6, G_N_ELEMENTS(virt_compat_2_6)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); vmc->disallow_affinity_adjustment =3D true; /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ vmc->no_pmu =3D true; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 9baca6d6ee..d1abe637f1 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -438,218 +438,204 @@ static void pc_i440fx_4_0_machine_options(MachineCl= ass *m) DEFINE_I440FX_MACHINE(v4_0, "pc-i440fx-4.0", NULL, pc_i440fx_4_0_machine_options); =20 -static GlobalProperty pc_compat_3_1[] =3D { - PC_COMPAT_3_1 -}; - static void pc_i440fx_3_1_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_3_1 + }; + pc_i440fx_4_0_machine_options(m); m->is_default =3D 0; m->alias =3D NULL; - compat_props_add(m->compat_props, - pc_compat_3_1, G_N_ELEMENTS(pc_compat_3_1)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, pc_i440fx_3_1_machine_options); =20 -static GlobalProperty pc_compat_3_0[] =3D { - PC_COMPAT_3_0 -}; - static void pc_i440fx_3_0_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_3_0 + }; + pc_i440fx_3_1_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_3_0, G_N_ELEMENTS(pc_compat_3_0)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, pc_i440fx_3_0_machine_options); =20 -static GlobalProperty pc_compat_2_12[] =3D { - PC_COMPAT_2_12 -}; - static void pc_i440fx_2_12_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_12 + }; + pc_i440fx_3_0_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_12, G_N_ELEMENTS(pc_compat_2_12)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_12, "pc-i440fx-2.12", NULL, pc_i440fx_2_12_machine_options); =20 -static GlobalProperty pc_compat_2_11[] =3D { - PC_COMPAT_2_11 -}; - static void pc_i440fx_2_11_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_11 + }; + pc_i440fx_2_12_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_11, G_N_ELEMENTS(pc_compat_2_11)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_11, "pc-i440fx-2.11", NULL, pc_i440fx_2_11_machine_options); =20 -static GlobalProperty pc_compat_2_10[] =3D { - PC_COMPAT_2_10 -}; - static void pc_i440fx_2_10_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_10 + }; + pc_i440fx_2_11_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_10, G_N_ELEMENTS(pc_compat_2_10)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); m->auto_enable_numa_with_memhp =3D false; } =20 DEFINE_I440FX_MACHINE(v2_10, "pc-i440fx-2.10", NULL, pc_i440fx_2_10_machine_options); =20 -static GlobalProperty pc_compat_2_9[] =3D { - PC_COMPAT_2_9 -}; - static void pc_i440fx_2_9_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_9 + }; + pc_i440fx_2_10_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_9, G_N_ELEMENTS(pc_compat_2_9)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; } =20 DEFINE_I440FX_MACHINE(v2_9, "pc-i440fx-2.9", NULL, pc_i440fx_2_9_machine_options); =20 -static GlobalProperty pc_compat_2_8[] =3D { - PC_COMPAT_2_8 -}; - static void pc_i440fx_2_8_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_8 + }; + pc_i440fx_2_9_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_8, G_N_ELEMENTS(pc_compat_2_8)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_8, "pc-i440fx-2.8", NULL, pc_i440fx_2_8_machine_options); =20 -static GlobalProperty pc_compat_2_7[] =3D { - PC_COMPAT_2_7 -}; - static void pc_i440fx_2_7_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_7 + }; + pc_i440fx_2_8_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_7, G_N_ELEMENTS(pc_compat_2_7)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, pc_i440fx_2_7_machine_options); =20 -static GlobalProperty pc_compat_2_6[] =3D { - PC_COMPAT_2_6 -}; - static void pc_i440fx_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_6 + }; + pc_i440fx_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - compat_props_add(m->compat_props, - pc_compat_2_6, G_N_ELEMENTS(pc_compat_2_6)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, pc_i440fx_2_6_machine_options); =20 -static GlobalProperty pc_compat_2_5[] =3D { - PC_COMPAT_2_5 -}; - static void pc_i440fx_2_5_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_5 + }; + pc_i440fx_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - compat_props_add(m->compat_props, - pc_compat_2_5, G_N_ELEMENTS(pc_compat_2_5)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL, pc_i440fx_2_5_machine_options); =20 -static GlobalProperty pc_compat_2_4[] =3D { - PC_COMPAT_2_4 -}; - static void pc_i440fx_2_4_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_4 + }; + pc_i440fx_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - compat_props_add(m->compat_props, - pc_compat_2_4, G_N_ELEMENTS(pc_compat_2_4)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL, pc_i440fx_2_4_machine_options) =20 -static GlobalProperty pc_compatp_2_3[] =3D { - PC_COMPAT_2_3 -}; - static void pc_i440fx_2_3_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_3 + }; + pc_i440fx_2_4_machine_options(m); m->hw_version =3D "2.3.0"; - compat_props_add(m->compat_props, - pc_compatp_2_3, G_N_ELEMENTS(pc_compatp_2_3)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3, pc_i440fx_2_3_machine_options); =20 -static GlobalProperty pc_compatp_2_2[] =3D { - PC_COMPAT_2_2 -}; - static void pc_i440fx_2_2_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_2 + }; + pc_i440fx_2_3_machine_options(m); m->hw_version =3D "2.2.0"; m->default_machine_opts =3D "firmware=3Dbios-256k.bin,suppress-vmdesc= =3Don"; - compat_props_add(m->compat_props, - pc_compatp_2_2, G_N_ELEMENTS(pc_compatp_2_2)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->rsdp_in_ram =3D false; } =20 DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2, pc_i440fx_2_2_machine_options); =20 -static GlobalProperty pc_compatp_2_1[] =3D { - PC_COMPAT_2_1 -}; - static void pc_i440fx_2_1_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_1 + }; + pc_i440fx_2_2_machine_options(m); m->hw_version =3D "2.1.0"; m->default_display =3D NULL; - compat_props_add(m->compat_props, - pc_compatp_2_1, G_N_ELEMENTS(pc_compatp_2_1)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->smbios_uuid_encoded =3D false; pcmc->enforce_aligned_dimm =3D false; } @@ -657,17 +643,16 @@ static void pc_i440fx_2_1_machine_options(MachineClas= s *m) DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1, pc_i440fx_2_1_machine_options); =20 -static GlobalProperty pc_compatp_2_0[] =3D { - PC_COMPAT_2_0 -}; - static void pc_i440fx_2_0_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_0 + }; + pc_i440fx_2_1_machine_options(m); m->hw_version =3D "2.0.0"; - compat_props_add(m->compat_props, - pc_compatp_2_0, G_N_ELEMENTS(pc_compatp_2_0)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->smbios_legacy_mode =3D true; pcmc->has_reserved_memory =3D false; /* This value depends on the actual DSDT and SSDT compiled into @@ -693,19 +678,18 @@ static void pc_i440fx_2_0_machine_options(MachineClas= s *m) DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0, pc_i440fx_2_0_machine_options); =20 -static GlobalProperty pc_compatp_1_7[] =3D { - PC_COMPAT_1_7 -}; - static void pc_i440fx_1_7_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_1_7 + }; + pc_i440fx_2_0_machine_options(m); m->hw_version =3D "1.7.0"; m->default_machine_opts =3D NULL; m->option_rom_has_mr =3D true; - compat_props_add(m->compat_props, - pc_compatp_1_7, G_N_ELEMENTS(pc_compatp_1_7)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->smbios_defaults =3D false; pcmc->gigabyte_align =3D false; pcmc->legacy_acpi_table_size =3D 6414; @@ -714,401 +698,388 @@ static void pc_i440fx_1_7_machine_options(MachineCl= ass *m) DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7, pc_i440fx_1_7_machine_options); =20 -static GlobalProperty pc_compatp_1_6[] =3D { - PC_COMPAT_1_6 -}; - static void pc_i440fx_1_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_1_6 + }; + pc_i440fx_1_7_machine_options(m); m->hw_version =3D "1.6.0"; m->rom_file_has_mr =3D false; - compat_props_add(m->compat_props, - pc_compatp_1_6, G_N_ELEMENTS(pc_compatp_1_6)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->has_acpi_build =3D false; } =20 DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6, pc_i440fx_1_6_machine_options); =20 -static GlobalProperty pc_compatp_1_5[] =3D { - PC_COMPAT_1_5 -}; - static void pc_i440fx_1_5_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_1_5 + }; + pc_i440fx_1_6_machine_options(m); m->hw_version =3D "1.5.0"; - compat_props_add(m->compat_props, - pc_compatp_1_5, G_N_ELEMENTS(pc_compatp_1_5)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5, pc_i440fx_1_5_machine_options); =20 -static GlobalProperty pc_compatp_1_4[] =3D { - PC_COMPAT_1_4 -}; - static void pc_i440fx_1_4_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_1_4 + }; + pc_i440fx_1_5_machine_options(m); m->hw_version =3D "1.4.0"; m->hot_add_cpu =3D NULL; - compat_props_add(m->compat_props, - pc_compatp_1_4, G_N_ELEMENTS(pc_compatp_1_4)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4, pc_i440fx_1_4_machine_options); =20 -static GlobalProperty pc_compatp_1_3[] =3D { - PC_CPU_MODEL_IDS("1.3.0") - { - .driver =3D "usb-tablet", - .property =3D "usb_version", - .value =3D stringify(1), - },{ - .driver =3D "virtio-net-pci", - .property =3D "ctrl_mac_addr", - .value =3D "off", - },{ - .driver =3D "virtio-net-pci", - .property =3D "mq", - .value =3D "off", - }, { - .driver =3D "e1000", - .property =3D "autonegotiation", - .value =3D "off", - }, -}; - static void pc_i440fx_1_3_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("1.3.0") + { + .driver =3D "usb-tablet", + .property =3D "usb_version", + .value =3D stringify(1), + },{ + .driver =3D "virtio-net-pci", + .property =3D "ctrl_mac_addr", + .value =3D "off", + },{ + .driver =3D "virtio-net-pci", + .property =3D "mq", + .value =3D "off", + }, { + .driver =3D "e1000", + .property =3D "autonegotiation", + .value =3D "off", + }, + }; + pc_i440fx_1_4_machine_options(m); m->hw_version =3D "1.3.0"; - compat_props_add(m->compat_props, - pc_compatp_1_3, G_N_ELEMENTS(pc_compatp_1_3)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_3, "pc-1.3", pc_compat_1_3, pc_i440fx_1_3_machine_options); =20 =20 -static GlobalProperty pc_compatp_1_2[] =3D { - PC_CPU_MODEL_IDS("1.2.0") - { - .driver =3D "nec-usb-xhci", - .property =3D "msi", - .value =3D "off", - },{ - .driver =3D "nec-usb-xhci", - .property =3D "msix", - .value =3D "off", - },{ - .driver =3D "ivshmem", - .property =3D "use64", - .value =3D "0", - },{ - .driver =3D "qxl", - .property =3D "revision", - .value =3D stringify(3), - },{ - .driver =3D "qxl-vga", - .property =3D "revision", - .value =3D stringify(3), - },{ - .driver =3D "VGA", - .property =3D "mmio", - .value =3D "off", - }, -}; - static void pc_i440fx_1_2_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("1.2.0") + { + .driver =3D "nec-usb-xhci", + .property =3D "msi", + .value =3D "off", + },{ + .driver =3D "nec-usb-xhci", + .property =3D "msix", + .value =3D "off", + },{ + .driver =3D "ivshmem", + .property =3D "use64", + .value =3D "0", + },{ + .driver =3D "qxl", + .property =3D "revision", + .value =3D stringify(3), + },{ + .driver =3D "qxl-vga", + .property =3D "revision", + .value =3D stringify(3), + },{ + .driver =3D "VGA", + .property =3D "mmio", + .value =3D "off", + }, + }; + pc_i440fx_1_3_machine_options(m); m->hw_version =3D "1.2.0"; - compat_props_add(m->compat_props, - pc_compatp_1_2, G_N_ELEMENTS(pc_compatp_1_2)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_2, "pc-1.2", pc_compat_1_2, pc_i440fx_1_2_machine_options); =20 =20 -static GlobalProperty pc_compatp_1_1[] =3D { - PC_CPU_MODEL_IDS("1.1.0") - { - .driver =3D "virtio-scsi-pci", - .property =3D "hotplug", - .value =3D "off", - },{ - .driver =3D "virtio-scsi-pci", - .property =3D "param_change", - .value =3D "off", - },{ - .driver =3D "VGA", - .property =3D "vgamem_mb", - .value =3D stringify(8), - },{ - .driver =3D "vmware-svga", - .property =3D "vgamem_mb", - .value =3D stringify(8), - },{ - .driver =3D "qxl-vga", - .property =3D "vgamem_mb", - .value =3D stringify(8), - },{ - .driver =3D "qxl", - .property =3D "vgamem_mb", - .value =3D stringify(8), - },{ - .driver =3D "virtio-blk-pci", - .property =3D "config-wce", - .value =3D "off", - }, -}; - static void pc_i440fx_1_1_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("1.1.0") + { + .driver =3D "virtio-scsi-pci", + .property =3D "hotplug", + .value =3D "off", + },{ + .driver =3D "virtio-scsi-pci", + .property =3D "param_change", + .value =3D "off", + },{ + .driver =3D "VGA", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "vmware-svga", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "qxl-vga", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "qxl", + .property =3D "vgamem_mb", + .value =3D stringify(8), + },{ + .driver =3D "virtio-blk-pci", + .property =3D "config-wce", + .value =3D "off", + }, + }; + pc_i440fx_1_2_machine_options(m); m->hw_version =3D "1.1.0"; - compat_props_add(m->compat_props, - pc_compatp_1_1, G_N_ELEMENTS(pc_compatp_1_1)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_1, "pc-1.1", pc_compat_1_2, pc_i440fx_1_1_machine_options); =20 -static GlobalProperty pc_compatp_1_0[] =3D { - PC_CPU_MODEL_IDS("1.0") - { - .driver =3D TYPE_ISA_FDC, - .property =3D "check_media_rate", - .value =3D "off", - },{ - .driver =3D "virtio-balloon-pci", - .property =3D "class", - .value =3D stringify(PCI_CLASS_MEMORY_RAM), - },{ - .driver =3D "apic-common", - .property =3D "vapic", - .value =3D "off", - },{ - .driver =3D TYPE_USB_DEVICE, - .property =3D "full-path", - .value =3D "no", - }, -}; - static void pc_i440fx_1_0_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("1.0") + { + .driver =3D TYPE_ISA_FDC, + .property =3D "check_media_rate", + .value =3D "off", + },{ + .driver =3D "virtio-balloon-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_MEMORY_RAM), + },{ + .driver =3D "apic-common", + .property =3D "vapic", + .value =3D "off", + },{ + .driver =3D TYPE_USB_DEVICE, + .property =3D "full-path", + .value =3D "no", + }, + }; + pc_i440fx_1_1_machine_options(m); m->hw_version =3D "1.0"; - compat_props_add(m->compat_props, - pc_compatp_1_0, G_N_ELEMENTS(pc_compatp_1_0)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v1_0, "pc-1.0", pc_compat_1_2, pc_i440fx_1_0_machine_options); =20 =20 -static GlobalProperty pc_compatp_0_15[] =3D { - PC_CPU_MODEL_IDS("0.15") -}; - static void pc_i440fx_0_15_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.15") + }; + pc_i440fx_1_0_machine_options(m); m->hw_version =3D "0.15"; - compat_props_add(m->compat_props, - pc_compatp_0_15, G_N_ELEMENTS(pc_compatp_0_15)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v0_15, "pc-0.15", pc_compat_1_2, pc_i440fx_0_15_machine_options); =20 =20 -static GlobalProperty pc_compatp_0_14[] =3D { - PC_CPU_MODEL_IDS("0.14") - { - .driver =3D "virtio-blk-pci", - .property =3D "event_idx", - .value =3D "off", - },{ - .driver =3D "virtio-serial-pci", - .property =3D "event_idx", - .value =3D "off", - },{ - .driver =3D "virtio-net-pci", - .property =3D "event_idx", - .value =3D "off", - },{ - .driver =3D "virtio-balloon-pci", - .property =3D "event_idx", - .value =3D "off", - },{ - .driver =3D "qxl", - .property =3D "revision", - .value =3D stringify(2), - },{ - .driver =3D "qxl-vga", - .property =3D "revision", - .value =3D stringify(2), - }, -}; - static void pc_i440fx_0_14_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.14") + { + .driver =3D "virtio-blk-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-serial-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-net-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "virtio-balloon-pci", + .property =3D "event_idx", + .value =3D "off", + },{ + .driver =3D "qxl", + .property =3D "revision", + .value =3D stringify(2), + },{ + .driver =3D "qxl-vga", + .property =3D "revision", + .value =3D stringify(2), + }, + }; + pc_i440fx_0_15_machine_options(m); m->hw_version =3D "0.14"; - compat_props_add(m->compat_props, - pc_compatp_0_14, G_N_ELEMENTS(pc_compatp_0_14)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v0_14, "pc-0.14", pc_compat_1_2, pc_i440fx_0_14_machine_options); =20 -static GlobalProperty pc_compatp_0_13[] =3D { - PC_CPU_MODEL_IDS("0.13") - { - .driver =3D TYPE_PCI_DEVICE, - .property =3D "command_serr_enable", - .value =3D "off", - },{ - .driver =3D "AC97", - .property =3D "use_broken_id", - .value =3D stringify(1), - },{ - .driver =3D "virtio-9p-pci", - .property =3D "vectors", - .value =3D stringify(0), - },{ - .driver =3D "VGA", - .property =3D "rombar", - .value =3D stringify(0), - },{ - .driver =3D "vmware-svga", - .property =3D "rombar", - .value =3D stringify(0), - }, -}; - static void pc_i440fx_0_13_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.13") + { + .driver =3D TYPE_PCI_DEVICE, + .property =3D "command_serr_enable", + .value =3D "off", + },{ + .driver =3D "AC97", + .property =3D "use_broken_id", + .value =3D stringify(1), + },{ + .driver =3D "virtio-9p-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "VGA", + .property =3D "rombar", + .value =3D stringify(0), + },{ + .driver =3D "vmware-svga", + .property =3D "rombar", + .value =3D stringify(0), + }, + }; + pc_i440fx_0_14_machine_options(m); m->hw_version =3D "0.13"; - compat_props_add(m->compat_props, - pc_compatp_0_13, G_N_ELEMENTS(pc_compatp_0_13)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); pcmc->kvmclock_enabled =3D false; } =20 DEFINE_I440FX_MACHINE(v0_13, "pc-0.13", pc_compat_0_13, pc_i440fx_0_13_machine_options); =20 -static GlobalProperty pc_compat_0_12[] =3D { - PC_CPU_MODEL_IDS("0.12") - { - .driver =3D "virtio-serial-pci", - .property =3D "max_ports", - .value =3D stringify(1), - },{ - .driver =3D "virtio-serial-pci", - .property =3D "vectors", - .value =3D stringify(0), - },{ - .driver =3D "usb-mouse", - .property =3D "serial", - .value =3D "1", - },{ - .driver =3D "usb-tablet", - .property =3D "serial", - .value =3D "1", - },{ - .driver =3D "usb-kbd", - .property =3D "serial", - .value =3D "1", - }, -}; - static void pc_i440fx_0_12_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.12") + { + .driver =3D "virtio-serial-pci", + .property =3D "max_ports", + .value =3D stringify(1), + },{ + .driver =3D "virtio-serial-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "usb-mouse", + .property =3D "serial", + .value =3D "1", + },{ + .driver =3D "usb-tablet", + .property =3D "serial", + .value =3D "1", + },{ + .driver =3D "usb-kbd", + .property =3D "serial", + .value =3D "1", + }, + }; + pc_i440fx_0_13_machine_options(m); m->hw_version =3D "0.12"; - compat_props_add(m->compat_props, - pc_compat_0_12, G_N_ELEMENTS(pc_compat_0_12)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v0_12, "pc-0.12", pc_compat_0_13, pc_i440fx_0_12_machine_options); =20 =20 -static GlobalProperty pc_compat_0_11[] =3D { - PC_CPU_MODEL_IDS("0.11") - { - .driver =3D "virtio-blk-pci", - .property =3D "vectors", - .value =3D stringify(0), - },{ - .driver =3D TYPE_PCI_DEVICE, - .property =3D "rombar", - .value =3D stringify(0), - },{ - .driver =3D "ide-drive", - .property =3D "ver", - .value =3D "0.11", - },{ - .driver =3D "scsi-disk", - .property =3D "ver", - .value =3D "0.11", - }, -}; - static void pc_i440fx_0_11_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.11") + { + .driver =3D "virtio-blk-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D TYPE_PCI_DEVICE, + .property =3D "rombar", + .value =3D stringify(0), + },{ + .driver =3D "ide-drive", + .property =3D "ver", + .value =3D "0.11", + },{ + .driver =3D "scsi-disk", + .property =3D "ver", + .value =3D "0.11", + }, + }; + pc_i440fx_0_12_machine_options(m); m->hw_version =3D "0.11"; m->deprecation_reason =3D "use a newer machine type instead"; - compat_props_add(m->compat_props, - pc_compat_0_11, G_N_ELEMENTS(pc_compat_0_11)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v0_11, "pc-0.11", pc_compat_0_13, pc_i440fx_0_11_machine_options); =20 -static GlobalProperty pc_compat_0_10[] =3D { - PC_CPU_MODEL_IDS("0.10") - { - .driver =3D "virtio-blk-pci", - .property =3D "class", - .value =3D stringify(PCI_CLASS_STORAGE_OTHER), - },{ - .driver =3D "virtio-serial-pci", - .property =3D "class", - .value =3D stringify(PCI_CLASS_DISPLAY_OTHER), - },{ - .driver =3D "virtio-net-pci", - .property =3D "vectors", - .value =3D stringify(0), - },{ - .driver =3D "ide-drive", - .property =3D "ver", - .value =3D "0.10", - },{ - .driver =3D "scsi-disk", - .property =3D "ver", - .value =3D "0.10", - }, -}; - static void pc_i440fx_0_10_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_CPU_MODEL_IDS("0.10") + { + .driver =3D "virtio-blk-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_STORAGE_OTHER), + },{ + .driver =3D "virtio-serial-pci", + .property =3D "class", + .value =3D stringify(PCI_CLASS_DISPLAY_OTHER), + },{ + .driver =3D "virtio-net-pci", + .property =3D "vectors", + .value =3D stringify(0), + },{ + .driver =3D "ide-drive", + .property =3D "ver", + .value =3D "0.10", + },{ + .driver =3D "scsi-disk", + .property =3D "ver", + .value =3D "0.10", + }, + }; + pc_i440fx_0_11_machine_options(m); m->hw_version =3D "0.10"; - compat_props_add(m->compat_props, - pc_compat_0_10, G_N_ELEMENTS(pc_compat_0_10)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_I440FX_MACHINE(v0_10, "pc-0.10", pc_compat_0_13, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 72795812e5..c18bfd68c6 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -320,75 +320,70 @@ static void pc_q35_4_0_machine_options(MachineClass *= m) DEFINE_Q35_MACHINE(v4_0, "pc-q35-4.0", NULL, pc_q35_4_0_machine_options); =20 -static GlobalProperty pc_compat_3_1[] =3D { - PC_COMPAT_3_1 -}; - static void pc_q35_3_1_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_3_1 + }; + pc_q35_4_0_machine_options(m); m->alias =3D NULL; - compat_props_add(m->compat_props, - pc_compat_3_1, G_N_ELEMENTS(pc_compat_3_1)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, pc_q35_3_1_machine_options); =20 -static GlobalProperty pc_compat_3_0[] =3D { - PC_COMPAT_3_0 -}; - static void pc_q35_3_0_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_3_0 + }; + pc_q35_3_1_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_3_0, G_N_ELEMENTS(pc_compat_3_0)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, pc_q35_3_0_machine_options); =20 -static GlobalProperty pc_compat_2_12[] =3D { - PC_COMPAT_2_12 -}; - static void pc_q35_2_12_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_12 + }; + pc_q35_3_0_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_12, G_N_ELEMENTS(pc_compat_2_12)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL, pc_q35_2_12_machine_options); =20 -static GlobalProperty pc_compat_2_11[] =3D { - PC_COMPAT_2_11 -}; - static void pc_q35_2_11_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_11 + }; + =20 pc_q35_2_12_machine_options(m); pcmc->default_nic_model =3D "e1000"; - compat_props_add(m->compat_props, - pc_compat_2_11, G_N_ELEMENTS(pc_compat_2_11)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_11, "pc-q35-2.11", NULL, pc_q35_2_11_machine_options); =20 -static GlobalProperty pc_compat_2_10[] =3D { - PC_COMPAT_2_10 -}; - static void pc_q35_2_10_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_10 + }; + pc_q35_2_11_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_10, G_N_ELEMENTS(pc_compat_2_10)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; m->auto_enable_numa_with_memhp =3D false; } @@ -396,95 +391,89 @@ static void pc_q35_2_10_machine_options(MachineClass = *m) DEFINE_Q35_MACHINE(v2_10, "pc-q35-2.10", NULL, pc_q35_2_10_machine_options); =20 -static GlobalProperty pc_compat_2_9[] =3D { - PC_COMPAT_2_9 -}; - static void pc_q35_2_9_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_9 + }; + pc_q35_2_10_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_9, G_N_ELEMENTS(pc_compat_2_9)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_9, "pc-q35-2.9", NULL, pc_q35_2_9_machine_options); =20 -static GlobalProperty pc_compat_2_8[] =3D { - PC_COMPAT_2_8 -}; - static void pc_q35_2_8_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_8 + }; + pc_q35_2_9_machine_options(m); - compat_props_add(m->compat_props, - pc_compat_2_8, G_N_ELEMENTS(pc_compat_2_8)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_8, "pc-q35-2.8", NULL, pc_q35_2_8_machine_options); =20 -static GlobalProperty pc_compat_2_7[] =3D { - PC_COMPAT_2_7 -}; - static void pc_q35_2_7_machine_options(MachineClass *m) { + static GlobalProperty compat[] =3D { + PC_COMPAT_2_7 + }; + pc_q35_2_8_machine_options(m); m->max_cpus =3D 255; - compat_props_add(m->compat_props, - pc_compat_2_7, G_N_ELEMENTS(pc_compat_2_7)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, pc_q35_2_7_machine_options); =20 -static GlobalProperty pc_compat_2_6[] =3D { - PC_COMPAT_2_6 -}; - static void pc_q35_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_6 + }; + pc_q35_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - compat_props_add(m->compat_props, - pc_compat_2_6, G_N_ELEMENTS(pc_compat_2_6)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, pc_q35_2_6_machine_options); =20 -static GlobalProperty pc_compat_2_5[] =3D { - PC_COMPAT_2_5 -}; - static void pc_q35_2_5_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_5 + }; + pc_q35_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - compat_props_add(m->compat_props, - pc_compat_2_5, G_N_ELEMENTS(pc_compat_2_5)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL, pc_q35_2_5_machine_options); =20 -static GlobalProperty pc_compat_2_4[] =3D { - PC_COMPAT_2_4 -}; - static void pc_q35_2_4_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); + static GlobalProperty compat[] =3D { + PC_COMPAT_2_4 + }; + pc_q35_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - compat_props_add(m->compat_props, - pc_compat_2_4, G_N_ELEMENTS(pc_compat_2_4)); + compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index a6ed88ba95..2313362ff2 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3963,15 +3963,14 @@ DEFINE_SPAPR_MACHINE(4_0, "4.0", true); /* * pseries-3.1 */ -static GlobalProperty spapr_compat_3_1[] =3D { - HW_COMPAT_3_1 -}; - static void spapr_machine_3_1_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_3_1 + }; + spapr_machine_4_0_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_3_1, G_N_ELEMENTS(spapr_compat_3_1)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(3_1, "3.1", false); @@ -3979,17 +3978,16 @@ DEFINE_SPAPR_MACHINE(3_1, "3.1", false); /* * pseries-3.0 */ -static GlobalProperty spapr_compat_3_0[] =3D { - HW_COMPAT_3_0 -}; =20 static void spapr_machine_3_0_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_3_0 + }; =20 spapr_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_3_0, G_N_ELEMENTS(spapr_compat_3_0)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); =20 smc->legacy_irq_allocation =3D true; smc->irq =3D &spapr_irq_xics_legacy; @@ -4000,27 +3998,25 @@ DEFINE_SPAPR_MACHINE(3_0, "3.0", false); /* * pseries-2.12 */ -static GlobalProperty spapr_compat_2_12[] =3D { - HW_COMPAT_2_12 - { - .driver =3D TYPE_POWERPC_CPU, - .property =3D "pre-3.0-migration", - .value =3D "on", - }, - { - .driver =3D TYPE_SPAPR_CPU_CORE, - .property =3D "pre-3.0-migration", - .value =3D "on", - }, -}; - static void spapr_machine_2_12_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_12 + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-3.0-migration", + .value =3D "on", + }, + { + .driver =3D TYPE_SPAPR_CPU_CORE, + .property =3D "pre-3.0-migration", + .value =3D "on", + }, + }; =20 spapr_machine_3_0_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_12, G_N_ELEMENTS(spapr_compat_2_12)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); =20 /* We depend on kvm_enabled() to choose a default value for the * hpt-max-page-size capability. Of course we can't do it here @@ -4047,18 +4043,17 @@ DEFINE_SPAPR_MACHINE(2_12_sxxm, "2.12-sxxm", false); /* * pseries-2.11 */ -static GlobalProperty spapr_compat_2_11[] =3D { - HW_COMPAT_2_11 -}; =20 static void spapr_machine_2_11_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_11 + }; =20 spapr_machine_2_12_class_options(mc); smc->default_caps.caps[SPAPR_CAP_HTM] =3D SPAPR_CAP_ON; - compat_props_add(mc->compat_props, - spapr_compat_2_11, G_N_ELEMENTS(spapr_compat_2_11)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(2_11, "2.11", false); @@ -4066,15 +4061,15 @@ DEFINE_SPAPR_MACHINE(2_11, "2.11", false); /* * pseries-2.10 */ -static GlobalProperty spapr_compat_2_10[] =3D { - HW_COMPAT_2_10 -}; =20 static void spapr_machine_2_10_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_10 + }; + spapr_machine_2_11_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_10, G_N_ELEMENTS(spapr_compat_2_10)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(2_10, "2.10", false); @@ -4082,22 +4077,21 @@ DEFINE_SPAPR_MACHINE(2_10, "2.10", false); /* * pseries-2.9 */ -static GlobalProperty spapr_compat_2_9[] =3D { - HW_COMPAT_2_9 - { - .driver =3D TYPE_POWERPC_CPU, - .property =3D "pre-2.10-migration", - .value =3D "on", - }, -}; =20 static void spapr_machine_2_9_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_9 + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-2.10-migration", + .value =3D "on", + }, + }; =20 spapr_machine_2_10_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_9, G_N_ELEMENTS(spapr_compat_2_9)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; smc->pre_2_10_has_unused_icps =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_DISABLED; @@ -4108,20 +4102,20 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", false); /* * pseries-2.8 */ -static GlobalProperty spapr_compat_2_8[] =3D { - HW_COMPAT_2_8 - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "pcie-extended-configuration-space", - .value =3D "off", - }, -}; =20 static void spapr_machine_2_8_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_8 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "pcie-extended-configuration-space", + .value =3D "off", + }, + }; + spapr_machine_2_9_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_8, G_N_ELEMENTS(spapr_compat_2_8)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->numa_mem_align_shift =3D 23; } =20 @@ -4130,29 +4124,6 @@ DEFINE_SPAPR_MACHINE(2_8, "2.8", false); /* * pseries-2.7 */ -static GlobalProperty spapr_compat_2_7[] =3D { - HW_COMPAT_2_7 - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "mem_win_size", - .value =3D stringify(SPAPR_PCI_2_7_MMIO_WIN_SIZE), - }, - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "mem64_win_size", - .value =3D "0", - }, - { - .driver =3D TYPE_POWERPC_CPU, - .property =3D "pre-2.8-migration", - .value =3D "on", - }, - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "pre-2.8-migration", - .value =3D "on", - }, -}; =20 static void phb_placement_2_7(sPAPRMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, @@ -4206,12 +4177,34 @@ static void phb_placement_2_7(sPAPRMachineState *sp= apr, uint32_t index, static void spapr_machine_2_7_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_7 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem_win_size", + .value =3D stringify(SPAPR_PCI_2_7_MMIO_WIN_SIZE), + }, + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem64_win_size", + .value =3D "0", + }, + { + .driver =3D TYPE_POWERPC_CPU, + .property =3D "pre-2.8-migration", + .value =3D "on", + }, + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "pre-2.8-migration", + .value =3D "on", + }, + }; =20 spapr_machine_2_8_class_options(mc); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power7_v2.3"); mc->default_machine_opts =3D "modern-hotplug-events=3Doff"; - compat_props_add(mc->compat_props, - spapr_compat_2_7, G_N_ELEMENTS(spapr_compat_2_7)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); smc->phb_placement =3D phb_placement_2_7; } =20 @@ -4220,21 +4213,21 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false); /* * pseries-2.6 */ -static GlobalProperty spapr_compat_2_6[] =3D { - HW_COMPAT_2_6 - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "ddw", - .value =3D stringify(off), - }, -}; =20 static void spapr_machine_2_6_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_6 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "ddw", + .value =3D stringify(off), + }, + }; + spapr_machine_2_7_class_options(mc); mc->has_hotpluggable_cpus =3D false; - compat_props_add(mc->compat_props, - spapr_compat_2_6, G_N_ELEMENTS(spapr_compat_2_6)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(2_6, "2.6", false); @@ -4242,23 +4235,22 @@ DEFINE_SPAPR_MACHINE(2_6, "2.6", false); /* * pseries-2.5 */ -static GlobalProperty spapr_compat_2_5[] =3D { - HW_COMPAT_2_5 - { - .driver =3D "spapr-vlan", - .property =3D "use-rx-buffer-pools", - .value =3D "off", - }, -}; =20 static void spapr_machine_2_5_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_5 + { + .driver =3D "spapr-vlan", + .property =3D "use-rx-buffer-pools", + .value =3D "off", + }, + }; =20 spapr_machine_2_6_class_options(mc); smc->use_ohci_by_default =3D true; - compat_props_add(mc->compat_props, - spapr_compat_2_5, G_N_ELEMENTS(spapr_compat_2_5)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(2_5, "2.5", false); @@ -4266,18 +4258,17 @@ DEFINE_SPAPR_MACHINE(2_5, "2.5", false); /* * pseries-2.4 */ -static GlobalProperty spapr_compat_2_4[] =3D { - HW_COMPAT_2_4 -}; =20 static void spapr_machine_2_4_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_4 + }; =20 spapr_machine_2_5_class_options(mc); smc->dr_lmb_enabled =3D false; - compat_props_add(mc->compat_props, - spapr_compat_2_4, G_N_ELEMENTS(spapr_compat_2_4)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 DEFINE_SPAPR_MACHINE(2_4, "2.4", false); @@ -4285,40 +4276,39 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false); /* * pseries-2.3 */ -static GlobalProperty spapr_compat_2_3[] =3D { - HW_COMPAT_2_3 - { - .driver =3D "spapr-pci-host-bridge", - .property =3D "dynamic-reconfiguration", - .value =3D "off", - }, -}; =20 static void spapr_machine_2_3_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_3 + { + .driver =3D "spapr-pci-host-bridge", + .property =3D "dynamic-reconfiguration", + .value =3D "off", + }, + }; spapr_machine_2_4_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_3, G_N_ELEMENTS(spapr_compat_2_3)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_SPAPR_MACHINE(2_3, "2.3", false); =20 /* * pseries-2.2 */ -static GlobalProperty spapr_compat_2_2[] =3D { - HW_COMPAT_2_2 - { - .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, - .property =3D "mem_win_size", - .value =3D "0x20000000", - }, -}; =20 static void spapr_machine_2_2_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_2 + { + .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, + .property =3D "mem_win_size", + .value =3D "0x20000000", + }, + }; + spapr_machine_2_3_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_2, G_N_ELEMENTS(spapr_compat_2_2)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->default_machine_opts =3D "modern-hotplug-events=3Doff,suppress-vmd= esc=3Don"; } DEFINE_SPAPR_MACHINE(2_2, "2.2", false); @@ -4326,15 +4316,15 @@ DEFINE_SPAPR_MACHINE(2_2, "2.2", false); /* * pseries-2.1 */ -static GlobalProperty spapr_compat_2_1[] =3D { - HW_COMPAT_2_1 -}; =20 static void spapr_machine_2_1_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_1 + }; + spapr_machine_2_2_class_options(mc); - compat_props_add(mc->compat_props, - spapr_compat_2_1, G_N_ELEMENTS(spapr_compat_2_1)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index f2faea585e..21f3325c5a 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -651,111 +651,6 @@ bool css_migration_enabled(void) } = \ type_init(ccw_machine_register_##suffix) =20 -static GlobalProperty ccw_compat_3_1[] =3D { - HW_COMPAT_3_1 -}; - -static GlobalProperty ccw_compat_3_0[] =3D { - HW_COMPAT_3_0 -}; - -static GlobalProperty ccw_compat_2_12[] =3D { - HW_COMPAT_2_12 -}; - -static GlobalProperty ccw_compat_2_11[] =3D { - HW_COMPAT_2_11 - { - .driver =3D TYPE_SCLP_EVENT_FACILITY, - .property =3D "allow_all_mask_sizes", - .value =3D "off", - }, -}; - -static GlobalProperty ccw_compat_2_10[] =3D { - HW_COMPAT_2_10 -}; - -static GlobalProperty ccw_compat_2_9[] =3D { - HW_COMPAT_2_9 - { - .driver =3D TYPE_S390_STATTRIB, - .property =3D "migration-enabled", - .value =3D "off", - }, -}; - -static GlobalProperty ccw_compat_2_8[] =3D { - HW_COMPAT_2_8 - { - .driver =3D TYPE_S390_FLIC_COMMON, - .property =3D "adapter_routes_max_batch", - .value =3D "64", - }, -}; - -static GlobalProperty ccw_compat_2_7[] =3D { - HW_COMPAT_2_7 -}; - -static GlobalProperty ccw_compat_2_6[] =3D { - HW_COMPAT_2_6 - { - .driver =3D TYPE_S390_IPL, - .property =3D "iplbext_migration", - .value =3D "off", - }, { - .driver =3D TYPE_VIRTUAL_CSS_BRIDGE, - .property =3D "css_dev_path", - .value =3D "off", - }, -}; - -static GlobalProperty ccw_compat_2_5[] =3D { - HW_COMPAT_2_5 -}; - -static GlobalProperty ccw_compat_2_4[] =3D { - HW_COMPAT_2_4 - { - .driver =3D TYPE_S390_SKEYS, - .property =3D "migration-enabled", - .value =3D "off", - },{ - .driver =3D "virtio-blk-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-balloon-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-serial-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-9p-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-rng-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-net-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "virtio-scsi-ccw", - .property =3D "max_revision", - .value =3D "0", - },{ - .driver =3D "vhost-scsi-ccw", - .property =3D "max_revision", - .value =3D "0", - }, -}; - static void ccw_machine_4_0_instance_options(MachineState *machine) { } @@ -772,9 +667,12 @@ static void ccw_machine_3_1_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_3_1_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_3_1 + }; + ccw_machine_4_0_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_3_1, G_N_ELEMENTS(ccw_compat_3_1)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(3_1, "3.1", false); =20 @@ -786,11 +684,13 @@ static void ccw_machine_3_0_instance_options(MachineS= tate *machine) static void ccw_machine_3_0_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_3_0 + }; =20 s390mc->hpage_1m_allowed =3D false; ccw_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_3_0, G_N_ELEMENTS(ccw_compat_3_0)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(3_0, "3.0", false); =20 @@ -803,9 +703,12 @@ static void ccw_machine_2_12_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_12_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_12 + }; + ccw_machine_3_0_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_12, G_N_ELEMENTS(ccw_compat_2_12)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_12, "2.12", false); =20 @@ -820,9 +723,17 @@ static void ccw_machine_2_11_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_11_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_11 + { + .driver =3D TYPE_SCLP_EVENT_FACILITY, + .property =3D "allow_all_mask_sizes", + .value =3D "off", + }, + }; + ccw_machine_2_12_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_11, G_N_ELEMENTS(ccw_compat_2_11)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_11, "2.11", false); =20 @@ -833,9 +744,12 @@ static void ccw_machine_2_10_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_10_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_10 + }; + ccw_machine_2_11_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_10, G_N_ELEMENTS(ccw_compat_2_10)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_10, "2.10", false); =20 @@ -852,10 +766,17 @@ static void ccw_machine_2_9_instance_options(MachineS= tate *machine) static void ccw_machine_2_9_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_9 + { + .driver =3D TYPE_S390_STATTRIB, + .property =3D "migration-enabled", + .value =3D "off", + }, + }; =20 ccw_machine_2_10_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_9, G_N_ELEMENTS(ccw_compat_2_9)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); s390mc->css_migration_enabled =3D false; } DEFINE_CCW_MACHINE(2_9, "2.9", false); @@ -867,9 +788,17 @@ static void ccw_machine_2_8_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_2_8_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_8 + { + .driver =3D TYPE_S390_FLIC_COMMON, + .property =3D "adapter_routes_max_batch", + .value =3D "64", + }, + }; + ccw_machine_2_9_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_8, G_N_ELEMENTS(ccw_compat_2_8)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_8, "2.8", false); =20 @@ -881,11 +810,13 @@ static void ccw_machine_2_7_instance_options(MachineS= tate *machine) static void ccw_machine_2_7_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_7 + }; =20 s390mc->cpu_model_allowed =3D false; ccw_machine_2_8_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_7, G_N_ELEMENTS(ccw_compat_2_7)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_7, "2.7", false); =20 @@ -897,11 +828,22 @@ static void ccw_machine_2_6_instance_options(MachineS= tate *machine) static void ccw_machine_2_6_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); + static GlobalProperty compat[] =3D { + HW_COMPAT_2_6 + { + .driver =3D TYPE_S390_IPL, + .property =3D "iplbext_migration", + .value =3D "off", + }, { + .driver =3D TYPE_VIRTUAL_CSS_BRIDGE, + .property =3D "css_dev_path", + .value =3D "off", + }, + }; =20 s390mc->ri_allowed =3D false; ccw_machine_2_7_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_6, G_N_ELEMENTS(ccw_compat_2_6)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_6, "2.6", false); =20 @@ -912,9 +854,12 @@ static void ccw_machine_2_5_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_2_5_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_5 + }; + ccw_machine_2_6_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_5, G_N_ELEMENTS(ccw_compat_2_5)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_5, "2.5", false); =20 @@ -925,9 +870,49 @@ static void ccw_machine_2_4_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_2_4_class_options(MachineClass *mc) { + static GlobalProperty compat[] =3D { + HW_COMPAT_2_4 + { + .driver =3D TYPE_S390_SKEYS, + .property =3D "migration-enabled", + .value =3D "off", + },{ + .driver =3D "virtio-blk-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-balloon-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-serial-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-9p-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-rng-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-net-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "virtio-scsi-ccw", + .property =3D "max_revision", + .value =3D "0", + },{ + .driver =3D "vhost-scsi-ccw", + .property =3D "max_revision", + .value =3D "0", + }, + }; + ccw_machine_2_5_class_options(mc); - compat_props_add(mc->compat_props, - ccw_compat_2_4, G_N_ELEMENTS(ccw_compat_2_4)); + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_4, "2.4", false); =20 diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index 4532aa8632..d51148b6b3 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -159,27 +159,26 @@ static int xen_init(MachineState *ms) return 0; } =20 -static GlobalProperty xen_compat_props[] =3D { - { - .driver =3D "migration", - .property =3D "store-global-state", - .value =3D "off", - }, - { - .driver =3D "migration", - .property =3D "send-configuration", - .value =3D "off", - }, - { - .driver =3D "migration", - .property =3D "send-section-footer", - .value =3D "off", - } -}; - static void xen_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac =3D ACCEL_CLASS(oc); + static GlobalProperty compat[] =3D { + { + .driver =3D "migration", + .property =3D "store-global-state", + .value =3D "off", + }, + { + .driver =3D "migration", + .property =3D "send-configuration", + .value =3D "off", + }, + { + .driver =3D "migration", + .property =3D "send-section-footer", + .value =3D "off", + } + }; =20 ac->name =3D "Xen"; ac->init_machine =3D xen_init; @@ -187,8 +186,7 @@ static void xen_accel_class_init(ObjectClass *oc, void = *data) ac->allowed =3D &xen_allowed; ac->compat_props =3D g_ptr_array_new(); =20 - compat_props_add(ac->compat_props, - xen_compat_props, G_N_ELEMENTS(xen_compat_props)); + compat_props_add(ac->compat_props, compat, G_N_ELEMENTS(compat)); } =20 #define TYPE_XEN_ACCEL ACCEL_CLASS_NAME("xen") --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383788169665.2950859786724; Fri, 21 Dec 2018 01:16:28 -0800 (PST) Received: from localhost ([::1]:44404 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGuw-0004VM-OW for importer@patchew.org; Fri, 21 Dec 2018 04:16:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38047) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjh-00035d-4d for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjd-0000dx-Vg for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:49 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34366) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjd-0000dW-Oj for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:45 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 11EAC87642 for ; Fri, 21 Dec 2018 09:04:45 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 242CF1001914; Fri, 21 Dec 2018 09:04:43 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:47 +0400 Message-Id: <20181221090410.27250-6-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 21 Dec 2018 09:04:45 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 05/28] hw: remove SET_MACHINE_COMPAT X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" No longer needed. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f02d5a1bbd..f743d9d4a4 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -287,16 +287,4 @@ struct MachineState { } \ type_init(machine_initfn##_register_types) =20 -#define SET_MACHINE_COMPAT(m, compat) \ - do { \ - int i; \ - if (!m->compat_props) { \ - m->compat_props =3D g_array_new(false, false, sizeof(void *));= \ - } \ - for (i =3D 0; i < G_N_ELEMENTS(compat); i++) { \ - GlobalProperty *prop =3D &compat[i]; \ - g_array_append_val(m->compat_props, prop); \ - } \ - } while (0) - #endif --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154538322353365.50091086416467; Fri, 21 Dec 2018 01:07:03 -0800 (PST) Received: from localhost ([::1]:44351 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlp-0004SU-Qn for importer@patchew.org; Fri, 21 Dec 2018 04:07:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38066) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjl-00039k-91 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjj-0000jV-G4 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:53 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46150) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjj-0000i9-6q for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:51 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9282AC0C272B for ; Fri, 21 Dec 2018 09:04:50 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0F7CD63B8D; Fri, 21 Dec 2018 09:04:48 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:48 +0400 Message-Id: <20181221090410.27250-7-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 21 Dec 2018 09:04:50 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 06/28] compat: replace PC_COMPAT_3_1 & HW_COMPAT_3_1 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 3 --- include/hw/i386/pc.h | 4 ++-- hw/arm/virt.c | 6 +----- hw/core/machine.c | 3 +++ hw/i386/pc.c | 3 +++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 6 +----- hw/s390x/s390-virtio-ccw.c | 6 +----- 10 files changed, 18 insertions(+), 30 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f743d9d4a4..dc8c748c62 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -287,4 +287,7 @@ struct MachineState { } \ type_init(machine_initfn##_register_types) =20 +extern GlobalProperty hw_compat_3_1[]; +extern const size_t hw_compat_3_1_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 70958328fe..6f4d5fc647 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,9 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_3_1 \ - /* empty */ - #define HW_COMPAT_3_0 \ /* empty */ =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 9d29c4b1df..dd1d6fd0f3 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -294,8 +294,8 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t); int e820_get_num_entries(void); bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); =20 -#define PC_COMPAT_3_1 \ - HW_COMPAT_3_1 \ +extern GlobalProperty pc_compat_3_1[]; +extern const size_t pc_compat_3_1_len; =20 #define PC_COMPAT_3_0 \ HW_COMPAT_3_0 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index caa61c6201..b1ecccfaab 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1874,12 +1874,8 @@ DEFINE_VIRT_MACHINE_AS_LATEST(4, 0) =20 static void virt_machine_3_1_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_3_1 - }; - virt_machine_4_0_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_1, hw_compat_3_1_len); } DEFINE_VIRT_MACHINE(3, 1) =20 diff --git a/hw/core/machine.c b/hw/core/machine.c index 6e24924aba..bdeeda68e4 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -22,6 +22,9 @@ #include "qemu/error-report.h" #include "sysemu/qtest.h" =20 +GlobalProperty hw_compat_3_1[] =3D {}; +const size_t hw_compat_3_1_len =3D G_N_ELEMENTS(hw_compat_3_1); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 115bc2825c..74d8a82f64 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -109,6 +109,9 @@ static struct e820_entry *e820_table; static unsigned e820_entries; struct hpet_fw_config hpet_cfg =3D {.count =3D UINT8_MAX}; =20 +GlobalProperty pc_compat_3_1[] =3D {}; +const size_t pc_compat_3_1_len =3D G_N_ELEMENTS(pc_compat_3_1); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index d1abe637f1..5342019d83 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -440,14 +440,11 @@ DEFINE_I440FX_MACHINE(v4_0, "pc-i440fx-4.0", NULL, =20 static void pc_i440fx_3_1_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_3_1 - }; - pc_i440fx_4_0_machine_options(m); m->is_default =3D 0; m->alias =3D NULL; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_3_1, hw_compat_3_1_len); + compat_props_add(m->compat_props, pc_compat_3_1, pc_compat_3_1_len); } =20 DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index c18bfd68c6..1eb1e82b25 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -322,13 +322,10 @@ DEFINE_Q35_MACHINE(v4_0, "pc-q35-4.0", NULL, =20 static void pc_q35_3_1_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_3_1 - }; - pc_q35_4_0_machine_options(m); m->alias =3D NULL; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_3_1, hw_compat_3_1_len); + compat_props_add(m->compat_props, pc_compat_3_1, pc_compat_3_1_len); } =20 DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2313362ff2..038d1859a6 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3965,12 +3965,8 @@ DEFINE_SPAPR_MACHINE(4_0, "4.0", true); */ static void spapr_machine_3_1_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_3_1 - }; - spapr_machine_4_0_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_1, hw_compat_3_1_len); } =20 DEFINE_SPAPR_MACHINE(3_1, "3.1", false); diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 21f3325c5a..5e8b48e75b 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -667,12 +667,8 @@ static void ccw_machine_3_1_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_3_1_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_3_1 - }; - ccw_machine_4_0_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_1, hw_compat_3_1_len); } DEFINE_CCW_MACHINE(3_1, "3.1", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383419989778.9277306136362; Fri, 21 Dec 2018 01:10:19 -0800 (PST) Received: from localhost ([::1]:44364 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGp0-0007Pt-4W for importer@patchew.org; Fri, 21 Dec 2018 04:10:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38103) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjs-0003Eg-4j for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjo-0000tk-UK for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33042) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjo-0000rt-Lg for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:04:56 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0616799CE3 for ; Fri, 21 Dec 2018 09:04:56 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7E6C0100194B; Fri, 21 Dec 2018 09:04:54 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:49 +0400 Message-Id: <20181221090410.27250-8-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 21 Dec 2018 09:04:56 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 07/28] compat: replace PC_COMPAT_3_0 & HW_COMPAT_3_0 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 3 --- include/hw/i386/pc.h | 17 ++--------------- hw/arm/virt.c | 6 +----- hw/core/machine.c | 3 +++ hw/i386/pc.c | 17 +++++++++++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 5 +---- hw/s390x/s390-virtio-ccw.c | 5 +---- 10 files changed, 32 insertions(+), 41 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index dc8c748c62..6b94d36d6a 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -290,4 +290,7 @@ struct MachineState { extern GlobalProperty hw_compat_3_1[]; extern const size_t hw_compat_3_1_len; =20 +extern GlobalProperty hw_compat_3_0[]; +extern const size_t hw_compat_3_0_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 6f4d5fc647..c08f4040bb 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,9 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_3_0 \ - /* empty */ - #define HW_COMPAT_2_12 \ {\ .driver =3D "migration",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index dd1d6fd0f3..197131ff9a 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -297,21 +297,8 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_= t *); extern GlobalProperty pc_compat_3_1[]; extern const size_t pc_compat_3_1_len; =20 -#define PC_COMPAT_3_0 \ - HW_COMPAT_3_0 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "x-hv-synic-kvm-only",\ - .value =3D "on",\ - },{\ - .driver =3D "Skylake-Server" "-" TYPE_X86_CPU,\ - .property =3D "pku",\ - .value =3D "off",\ - },{\ - .driver =3D "Skylake-Server-IBRS" "-" TYPE_X86_CPU,\ - .property =3D "pku",\ - .value =3D "off",\ - }, +extern GlobalProperty pc_compat_3_0[]; +extern const size_t pc_compat_3_0_len; =20 #define PC_COMPAT_2_12 \ HW_COMPAT_2_12 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index b1ecccfaab..d226e7922e 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1881,12 +1881,8 @@ DEFINE_VIRT_MACHINE(3, 1) =20 static void virt_machine_3_0_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_3_0 - }; - virt_machine_3_1_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_0, hw_compat_3_0_len); } DEFINE_VIRT_MACHINE(3, 0) =20 diff --git a/hw/core/machine.c b/hw/core/machine.c index bdeeda68e4..cd55366f2e 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -25,6 +25,9 @@ GlobalProperty hw_compat_3_1[] =3D {}; const size_t hw_compat_3_1_len =3D G_N_ELEMENTS(hw_compat_3_1); =20 +GlobalProperty hw_compat_3_0[] =3D {}; +const size_t hw_compat_3_0_len =3D G_N_ELEMENTS(hw_compat_3_0); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 74d8a82f64..7b9271a7ff 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -112,6 +112,23 @@ struct hpet_fw_config hpet_cfg =3D {.count =3D UINT8_M= AX}; GlobalProperty pc_compat_3_1[] =3D {}; const size_t pc_compat_3_1_len =3D G_N_ELEMENTS(pc_compat_3_1); =20 +GlobalProperty pc_compat_3_0[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "x-hv-synic-kvm-only", + .value =3D "on", + },{ + .driver =3D "Skylake-Server" "-" TYPE_X86_CPU, + .property =3D "pku", + .value =3D "off", + },{ + .driver =3D "Skylake-Server-IBRS" "-" TYPE_X86_CPU, + .property =3D "pku", + .value =3D "off", + }, +}; +const size_t pc_compat_3_0_len =3D G_N_ELEMENTS(pc_compat_3_0); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 5342019d83..c1a9a10911 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -452,12 +452,9 @@ DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, =20 static void pc_i440fx_3_0_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_3_0 - }; - pc_i440fx_3_1_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_3_0, hw_compat_3_0_len); + compat_props_add(m->compat_props, pc_compat_3_0, pc_compat_3_0_len); } =20 DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 1eb1e82b25..231b1269d1 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -333,12 +333,9 @@ DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, =20 static void pc_q35_3_0_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_3_0 - }; - pc_q35_3_1_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_3_0, hw_compat_3_0_len); + compat_props_add(m->compat_props, pc_compat_3_0, pc_compat_3_0_len); } =20 DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 038d1859a6..5c4c6be22f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3978,12 +3978,9 @@ DEFINE_SPAPR_MACHINE(3_1, "3.1", false); static void spapr_machine_3_0_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - HW_COMPAT_3_0 - }; =20 spapr_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_0, hw_compat_3_0_len); =20 smc->legacy_irq_allocation =3D true; smc->irq =3D &spapr_irq_xics_legacy; diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 5e8b48e75b..e54e6f6dd0 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -680,13 +680,10 @@ static void ccw_machine_3_0_instance_options(MachineS= tate *machine) static void ccw_machine_3_0_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - HW_COMPAT_3_0 - }; =20 s390mc->hpage_1m_allowed =3D false; ccw_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_3_0, hw_compat_3_0_len); } DEFINE_CCW_MACHINE(3_0, "3.0", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154538395323060.39084627701959; Fri, 21 Dec 2018 01:19:13 -0800 (PST) Received: from localhost ([::1]:44425 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGxb-0006ft-1P for importer@patchew.org; Fri, 21 Dec 2018 04:19:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGjw-0003Hp-6k for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGju-0000yr-B1 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59936) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGju-0000yJ-2p for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:02 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5EDB0A42A6 for ; Fri, 21 Dec 2018 09:05:01 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id E05015F7C2; Fri, 21 Dec 2018 09:04:59 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:50 +0400 Message-Id: <20181221090410.27250-9-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:05:01 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 08/28] compat: replace PC_COMPAT_2_12 & HW_COMPAT_2_12 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 27 --------------------------- include/hw/i386/pc.h | 21 ++------------------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 29 +++++++++++++++++++++++++++++ hw/i386/pc.c | 21 +++++++++++++++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 6 +----- 10 files changed, 62 insertions(+), 66 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 6b94d36d6a..b06444ffed 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -293,4 +293,7 @@ extern const size_t hw_compat_3_1_len; extern GlobalProperty hw_compat_3_0[]; extern const size_t hw_compat_3_0_len; =20 +extern GlobalProperty hw_compat_2_12[]; +extern const size_t hw_compat_2_12_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index c08f4040bb..13242b831a 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,33 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_12 \ - {\ - .driver =3D "migration",\ - .property =3D "decompress-error-check",\ - .value =3D "off",\ - },{\ - .driver =3D "hda-audio",\ - .property =3D "use-timer",\ - .value =3D "false",\ - },{\ - .driver =3D "cirrus-vga",\ - .property =3D "global-vmstate",\ - .value =3D "true",\ - },{\ - .driver =3D "VGA",\ - .property =3D "global-vmstate",\ - .value =3D "true",\ - },{\ - .driver =3D "vmware-svga",\ - .property =3D "global-vmstate",\ - .value =3D "true",\ - },{\ - .driver =3D "qxl-vga",\ - .property =3D "global-vmstate",\ - .value =3D "true",\ - }, - #define HW_COMPAT_2_11 \ {\ .driver =3D "hpet",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 197131ff9a..91cb3283f0 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -300,25 +300,8 @@ extern const size_t pc_compat_3_1_len; extern GlobalProperty pc_compat_3_0[]; extern const size_t pc_compat_3_0_len; =20 -#define PC_COMPAT_2_12 \ - HW_COMPAT_2_12 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "legacy-cache",\ - .value =3D "on",\ - },{\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "topoext",\ - .value =3D "off",\ - },{\ - .driver =3D "EPYC-" TYPE_X86_CPU,\ - .property =3D "xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "EPYC-IBPB-" TYPE_X86_CPU,\ - .property =3D "xlevel",\ - .value =3D stringify(0x8000000a),\ - }, +extern GlobalProperty pc_compat_2_12[]; +extern const size_t pc_compat_2_12_len; =20 #define PC_COMPAT_2_11 \ HW_COMPAT_2_11 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index d226e7922e..1b39d9845b 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1889,12 +1889,9 @@ DEFINE_VIRT_MACHINE(3, 0) static void virt_machine_2_12_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_12 - }; =20 virt_machine_3_0_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_12, hw_compat_2_12_len); vmc->no_highmem_ecam =3D true; mc->max_cpus =3D 255; } diff --git a/hw/core/machine.c b/hw/core/machine.c index cd55366f2e..447fe1db6b 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -28,6 +28,35 @@ const size_t hw_compat_3_1_len =3D G_N_ELEMENTS(hw_compa= t_3_1); GlobalProperty hw_compat_3_0[] =3D {}; const size_t hw_compat_3_0_len =3D G_N_ELEMENTS(hw_compat_3_0); =20 +GlobalProperty hw_compat_2_12[] =3D { + { + .driver =3D "migration", + .property =3D "decompress-error-check", + .value =3D "off", + },{ + .driver =3D "hda-audio", + .property =3D "use-timer", + .value =3D "false", + },{ + .driver =3D "cirrus-vga", + .property =3D "global-vmstate", + .value =3D "true", + },{ + .driver =3D "VGA", + .property =3D "global-vmstate", + .value =3D "true", + },{ + .driver =3D "vmware-svga", + .property =3D "global-vmstate", + .value =3D "true", + },{ + .driver =3D "qxl-vga", + .property =3D "global-vmstate", + .value =3D "true", + }, +}; +const size_t hw_compat_2_12_len =3D G_N_ELEMENTS(hw_compat_2_12); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 7b9271a7ff..84fe7e49af 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -129,6 +129,27 @@ GlobalProperty pc_compat_3_0[] =3D { }; const size_t pc_compat_3_0_len =3D G_N_ELEMENTS(pc_compat_3_0); =20 +GlobalProperty pc_compat_2_12[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "legacy-cache", + .value =3D "on", + },{ + .driver =3D TYPE_X86_CPU, + .property =3D "topoext", + .value =3D "off", + },{ + .driver =3D "EPYC-" TYPE_X86_CPU, + .property =3D "xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "EPYC-IBPB-" TYPE_X86_CPU, + .property =3D "xlevel", + .value =3D stringify(0x8000000a), + }, +}; +const size_t pc_compat_2_12_len =3D G_N_ELEMENTS(pc_compat_2_12); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index c1a9a10911..16dda48c56 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -462,12 +462,9 @@ DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, =20 static void pc_i440fx_2_12_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_12 - }; - pc_i440fx_3_0_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_12, hw_compat_2_12_len); + compat_props_add(m->compat_props, pc_compat_2_12, pc_compat_2_12_len); } =20 DEFINE_I440FX_MACHINE(v2_12, "pc-i440fx-2.12", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 231b1269d1..86f08441d6 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -343,12 +343,9 @@ DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, =20 static void pc_q35_2_12_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_12 - }; - pc_q35_3_0_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_12, hw_compat_2_12_len); + compat_props_add(m->compat_props, pc_compat_2_12, pc_compat_2_12_len); } =20 DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 5c4c6be22f..63453f688f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3995,7 +3995,6 @@ static void spapr_machine_2_12_class_options(MachineC= lass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_12 { .driver =3D TYPE_POWERPC_CPU, .property =3D "pre-3.0-migration", @@ -4009,6 +4008,7 @@ static void spapr_machine_2_12_class_options(MachineC= lass *mc) }; =20 spapr_machine_3_0_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_12, hw_compat_2_12_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); =20 /* We depend on kvm_enabled() to choose a default value for the diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index e54e6f6dd0..ce22a9d511 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -696,12 +696,8 @@ static void ccw_machine_2_12_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_12_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_12 - }; - ccw_machine_3_0_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_12, hw_compat_2_12_len); } DEFINE_CCW_MACHINE(2_12, "2.12", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384113657747.6863406277353; Fri, 21 Dec 2018 01:21:53 -0800 (PST) Received: from localhost ([::1]:44440 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH0C-0000Fl-3X for importer@patchew.org; Fri, 21 Dec 2018 04:21:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38143) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGk2-0003Mp-Rx for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGjz-00012K-Kx for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:10 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45776) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGjz-00011j-CM for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:07 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A8B8058E38 for ; Fri, 21 Dec 2018 09:05:06 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0A03963BA4; Fri, 21 Dec 2018 09:05:04 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:51 +0400 Message-Id: <20181221090410.27250-10-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 21 Dec 2018 09:05:06 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 09/28] compat: replace PC_COMPAT_2_11 & HW_COMPAT_2_11 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 19 ------------------- include/hw/i386/pc.h | 13 ++----------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 21 +++++++++++++++++++++ hw/i386/pc.c | 13 +++++++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 5 +---- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 46 insertions(+), 49 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index b06444ffed..59c3c4b75e 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -296,4 +296,7 @@ extern const size_t hw_compat_3_0_len; extern GlobalProperty hw_compat_2_12[]; extern const size_t hw_compat_2_12_len; =20 +extern GlobalProperty hw_compat_2_11[]; +extern const size_t hw_compat_2_11_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 13242b831a..cf389b4e85 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,25 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_11 \ - {\ - .driver =3D "hpet",\ - .property =3D "hpet-offset-saved",\ - .value =3D "false",\ - },{\ - .driver =3D "virtio-blk-pci",\ - .property =3D "vectors",\ - .value =3D "2",\ - },{\ - .driver =3D "vhost-user-blk-pci",\ - .property =3D "vectors",\ - .value =3D "2",\ - },{\ - .driver =3D "e1000",\ - .property =3D "migrate_tso_props",\ - .value =3D "off",\ - }, - #define HW_COMPAT_2_10 \ {\ .driver =3D "virtio-mouse-device",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 91cb3283f0..f0f7e76a3e 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -303,17 +303,8 @@ extern const size_t pc_compat_3_0_len; extern GlobalProperty pc_compat_2_12[]; extern const size_t pc_compat_2_12_len; =20 -#define PC_COMPAT_2_11 \ - HW_COMPAT_2_11 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "x-migrate-smi-count",\ - .value =3D "off",\ - },{\ - .driver =3D "Skylake-Server" "-" TYPE_X86_CPU,\ - .property =3D "clflushopt",\ - .value =3D "off",\ - }, +extern GlobalProperty pc_compat_2_11[]; +extern const size_t pc_compat_2_11_len; =20 #define PC_COMPAT_2_10 \ HW_COMPAT_2_10 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 1b39d9845b..b7aabd4ac7 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1900,12 +1900,9 @@ DEFINE_VIRT_MACHINE(2, 12) static void virt_machine_2_11_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_11 - }; =20 virt_machine_2_12_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_11, hw_compat_2_11_len); vmc->smbios_old_sys_ver =3D true; } DEFINE_VIRT_MACHINE(2, 11) diff --git a/hw/core/machine.c b/hw/core/machine.c index 447fe1db6b..e8f715542a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -57,6 +57,27 @@ GlobalProperty hw_compat_2_12[] =3D { }; const size_t hw_compat_2_12_len =3D G_N_ELEMENTS(hw_compat_2_12); =20 +GlobalProperty hw_compat_2_11[] =3D { + { + .driver =3D "hpet", + .property =3D "hpet-offset-saved", + .value =3D "false", + },{ + .driver =3D "virtio-blk-pci", + .property =3D "vectors", + .value =3D "2", + },{ + .driver =3D "vhost-user-blk-pci", + .property =3D "vectors", + .value =3D "2", + },{ + .driver =3D "e1000", + .property =3D "migrate_tso_props", + .value =3D "off", + }, +}; +const size_t hw_compat_2_11_len =3D G_N_ELEMENTS(hw_compat_2_11); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 84fe7e49af..e42a1eae51 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -150,6 +150,19 @@ GlobalProperty pc_compat_2_12[] =3D { }; const size_t pc_compat_2_12_len =3D G_N_ELEMENTS(pc_compat_2_12); =20 +GlobalProperty pc_compat_2_11[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "x-migrate-smi-count", + .value =3D "off", + },{ + .driver =3D "Skylake-Server" "-" TYPE_X86_CPU, + .property =3D "clflushopt", + .value =3D "off", + }, +}; +const size_t pc_compat_2_11_len =3D G_N_ELEMENTS(pc_compat_2_11); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 16dda48c56..32daebc05e 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -472,12 +472,9 @@ DEFINE_I440FX_MACHINE(v2_12, "pc-i440fx-2.12", NULL, =20 static void pc_i440fx_2_11_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_11 - }; - pc_i440fx_2_12_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_11, hw_compat_2_11_len); + compat_props_add(m->compat_props, pc_compat_2_11, pc_compat_2_11_len); } =20 DEFINE_I440FX_MACHINE(v2_11, "pc-i440fx-2.11", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 86f08441d6..bc195b8c58 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -354,14 +354,11 @@ DEFINE_Q35_MACHINE(v2_12, "pc-q35-2.12", NULL, static void pc_q35_2_11_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_11 - }; - =20 pc_q35_2_12_machine_options(m); pcmc->default_nic_model =3D "e1000"; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_11, hw_compat_2_11_len); + compat_props_add(m->compat_props, pc_compat_2_11, pc_compat_2_11_len); } =20 DEFINE_Q35_MACHINE(v2_11, "pc-q35-2.11", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 63453f688f..88e2c8df71 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4040,13 +4040,10 @@ DEFINE_SPAPR_MACHINE(2_12_sxxm, "2.12-sxxm", false); static void spapr_machine_2_11_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_11 - }; =20 spapr_machine_2_12_class_options(mc); smc->default_caps.caps[SPAPR_CAP_HTM] =3D SPAPR_CAP_ON; - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_11, hw_compat_2_11_len); } =20 DEFINE_SPAPR_MACHINE(2_11, "2.11", false); diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index ce22a9d511..74623becaf 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -713,7 +713,6 @@ static void ccw_machine_2_11_instance_options(MachineSt= ate *machine) static void ccw_machine_2_11_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_11 { .driver =3D TYPE_SCLP_EVENT_FACILITY, .property =3D "allow_all_mask_sizes", @@ -722,6 +721,7 @@ static void ccw_machine_2_11_class_options(MachineClass= *mc) }; =20 ccw_machine_2_12_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_11, hw_compat_2_11_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_11, "2.11", false); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154538357759957.999706773371145; Fri, 21 Dec 2018 01:12:57 -0800 (PST) Received: from localhost ([::1]:44381 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGrY-0001GV-7N for importer@patchew.org; Fri, 21 Dec 2018 04:12:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkA-0003Su-Ko for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGk4-00017y-RH for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:18 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38708) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGk4-000170-Ip for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:12 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E10A0A12FC for ; Fri, 21 Dec 2018 09:05:11 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 58D855DA63; Fri, 21 Dec 2018 09:05:10 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:52 +0400 Message-Id: <20181221090410.27250-11-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:05:11 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 10/28] compat: replace PC_COMPAT_2_10 & HW_COMPAT_2_10 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 11 ----------- include/hw/i386/pc.h | 17 ++--------------- hw/arm/virt.c | 6 +----- hw/core/machine.c | 13 +++++++++++++ hw/i386/pc.c | 17 +++++++++++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 6 +----- hw/s390x/s390-virtio-ccw.c | 6 +----- 10 files changed, 42 insertions(+), 51 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 59c3c4b75e..f701b66183 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -299,4 +299,7 @@ extern const size_t hw_compat_2_12_len; extern GlobalProperty hw_compat_2_11[]; extern const size_t hw_compat_2_11_len; =20 +extern GlobalProperty hw_compat_2_10[]; +extern const size_t hw_compat_2_10_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index cf389b4e85..f414786604 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,17 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_10 \ - {\ - .driver =3D "virtio-mouse-device",\ - .property =3D "wheel-axis",\ - .value =3D "false",\ - },{\ - .driver =3D "virtio-tablet-device",\ - .property =3D "wheel-axis",\ - .value =3D "false",\ - }, - #define HW_COMPAT_2_9 \ {\ .driver =3D "pci-bridge",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index f0f7e76a3e..d77843a711 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -306,21 +306,8 @@ extern const size_t pc_compat_2_12_len; extern GlobalProperty pc_compat_2_11[]; extern const size_t pc_compat_2_11_len; =20 -#define PC_COMPAT_2_10 \ - HW_COMPAT_2_10 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "x-hv-max-vps",\ - .value =3D "0x40",\ - },{\ - .driver =3D "i440FX-pcihost",\ - .property =3D "x-pci-hole64-fix",\ - .value =3D "off",\ - },{\ - .driver =3D "q35-pcihost",\ - .property =3D "x-pci-hole64-fix",\ - .value =3D "off",\ - }, +extern GlobalProperty pc_compat_2_10[]; +extern const size_t pc_compat_2_10_len; =20 #define PC_COMPAT_2_9 \ HW_COMPAT_2_9 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index b7aabd4ac7..e382bdfd96 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1909,12 +1909,8 @@ DEFINE_VIRT_MACHINE(2, 11) =20 static void virt_machine_2_10_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_10 - }; - virt_machine_2_11_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_10, hw_compat_2_10_len); /* before 2.11 we never faulted accesses to bad addresses */ mc->ignore_memory_transaction_failures =3D true; } diff --git a/hw/core/machine.c b/hw/core/machine.c index e8f715542a..7ab83bf4e2 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -78,6 +78,19 @@ GlobalProperty hw_compat_2_11[] =3D { }; const size_t hw_compat_2_11_len =3D G_N_ELEMENTS(hw_compat_2_11); =20 +GlobalProperty hw_compat_2_10[] =3D { + { + .driver =3D "virtio-mouse-device", + .property =3D "wheel-axis", + .value =3D "false", + },{ + .driver =3D "virtio-tablet-device", + .property =3D "wheel-axis", + .value =3D "false", + }, +}; +const size_t hw_compat_2_10_len =3D G_N_ELEMENTS(hw_compat_2_10); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index e42a1eae51..71b3b2e1d8 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -163,6 +163,23 @@ GlobalProperty pc_compat_2_11[] =3D { }; const size_t pc_compat_2_11_len =3D G_N_ELEMENTS(pc_compat_2_11); =20 +GlobalProperty pc_compat_2_10[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "x-hv-max-vps", + .value =3D "0x40", + },{ + .driver =3D "i440FX-pcihost", + .property =3D "x-pci-hole64-fix", + .value =3D "off", + },{ + .driver =3D "q35-pcihost", + .property =3D "x-pci-hole64-fix", + .value =3D "off", + }, +}; +const size_t pc_compat_2_10_len =3D G_N_ELEMENTS(pc_compat_2_10); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 32daebc05e..d3e795de20 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -482,12 +482,9 @@ DEFINE_I440FX_MACHINE(v2_11, "pc-i440fx-2.11", NULL, =20 static void pc_i440fx_2_10_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_10 - }; - pc_i440fx_2_11_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_10, hw_compat_2_10_len); + compat_props_add(m->compat_props, pc_compat_2_10, pc_compat_2_10_len); m->auto_enable_numa_with_memhp =3D false; } =20 diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index bc195b8c58..8d708cd163 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -366,12 +366,9 @@ DEFINE_Q35_MACHINE(v2_11, "pc-q35-2.11", NULL, =20 static void pc_q35_2_10_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_10 - }; - pc_q35_2_11_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_10, hw_compat_2_10_len); + compat_props_add(m->compat_props, pc_compat_2_10, pc_compat_2_10_len); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; m->auto_enable_numa_with_memhp =3D false; } diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 88e2c8df71..10e91d857c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4054,12 +4054,8 @@ DEFINE_SPAPR_MACHINE(2_11, "2.11", false); =20 static void spapr_machine_2_10_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_10 - }; - spapr_machine_2_11_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_10, hw_compat_2_10_len); } =20 DEFINE_SPAPR_MACHINE(2_10, "2.10", false); diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 74623becaf..95ad7ba842 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -733,12 +733,8 @@ static void ccw_machine_2_10_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_10_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_10 - }; - ccw_machine_2_11_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_10, hw_compat_2_10_len); } DEFINE_CCW_MACHINE(2_10, "2.10", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383583964563.960265574223; Fri, 21 Dec 2018 01:13:03 -0800 (PST) Received: from localhost ([::1]:44382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGre-0001MK-Dg for importer@patchew.org; Fri, 21 Dec 2018 04:13:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkD-0003VX-PE for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkA-0001Bd-82 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:21 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60186) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGk9-0001BB-VJ for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:18 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 57FA0A42A6 for ; Fri, 21 Dec 2018 09:05:17 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id C0D685F7C2; Fri, 21 Dec 2018 09:05:15 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:53 +0400 Message-Id: <20181221090410.27250-12-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:05:17 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 11/28] compat: replace PC_COMPAT_2_9 & HW_COMPAT_2_9 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 19 ------------------- include/hw/i386/pc.h | 9 ++------- hw/arm/virt.c | 6 +----- hw/core/machine.c | 21 +++++++++++++++++++++ hw/i386/pc.c | 9 +++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 42 insertions(+), 43 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f701b66183..226d6cfaa7 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -302,4 +302,7 @@ extern const size_t hw_compat_2_11_len; extern GlobalProperty hw_compat_2_10[]; extern const size_t hw_compat_2_10_len; =20 +extern GlobalProperty hw_compat_2_9[]; +extern const size_t hw_compat_2_9_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index f414786604..ef154ca470 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,25 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_9 \ - {\ - .driver =3D "pci-bridge",\ - .property =3D "shpc",\ - .value =3D "off",\ - },{\ - .driver =3D "intel-iommu",\ - .property =3D "pt",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-net-device",\ - .property =3D "x-mtu-bypass-backend",\ - .value =3D "off",\ - },{\ - .driver =3D "pcie-root-port",\ - .property =3D "x-migrate-msix",\ - .value =3D "false",\ - }, - #define HW_COMPAT_2_8 \ {\ .driver =3D "fw_cfg_mem",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index d77843a711..fb79f0b988 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -309,13 +309,8 @@ extern const size_t pc_compat_2_11_len; extern GlobalProperty pc_compat_2_10[]; extern const size_t pc_compat_2_10_len; =20 -#define PC_COMPAT_2_9 \ - HW_COMPAT_2_9 \ - {\ - .driver =3D "mch",\ - .property =3D "extended-tseg-mbytes",\ - .value =3D stringify(0),\ - },\ +extern GlobalProperty pc_compat_2_9[]; +extern const size_t pc_compat_2_9_len; =20 #define PC_COMPAT_2_8 \ HW_COMPAT_2_8 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index e382bdfd96..2db46567bb 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1918,12 +1918,8 @@ DEFINE_VIRT_MACHINE(2, 10) =20 static void virt_machine_2_9_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_9 - }; - virt_machine_2_10_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_9, hw_compat_2_9_len); } DEFINE_VIRT_MACHINE(2, 9) =20 diff --git a/hw/core/machine.c b/hw/core/machine.c index 7ab83bf4e2..2d7e774a5d 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -91,6 +91,27 @@ GlobalProperty hw_compat_2_10[] =3D { }; const size_t hw_compat_2_10_len =3D G_N_ELEMENTS(hw_compat_2_10); =20 +GlobalProperty hw_compat_2_9[] =3D { + { + .driver =3D "pci-bridge", + .property =3D "shpc", + .value =3D "off", + },{ + .driver =3D "intel-iommu", + .property =3D "pt", + .value =3D "off", + },{ + .driver =3D "virtio-net-device", + .property =3D "x-mtu-bypass-backend", + .value =3D "off", + },{ + .driver =3D "pcie-root-port", + .property =3D "x-migrate-msix", + .value =3D "false", + }, +}; +const size_t hw_compat_2_9_len =3D G_N_ELEMENTS(hw_compat_2_9); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 71b3b2e1d8..f36cc5f79c 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -180,6 +180,15 @@ GlobalProperty pc_compat_2_10[] =3D { }; const size_t pc_compat_2_10_len =3D G_N_ELEMENTS(pc_compat_2_10); =20 +GlobalProperty pc_compat_2_9[] =3D { + { + .driver =3D "mch", + .property =3D "extended-tseg-mbytes", + .value =3D stringify(0), + }, +}; +const size_t pc_compat_2_9_len =3D G_N_ELEMENTS(pc_compat_2_9); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index d3e795de20..5bc3ad0331 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -493,12 +493,9 @@ DEFINE_I440FX_MACHINE(v2_10, "pc-i440fx-2.10", NULL, =20 static void pc_i440fx_2_9_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_9 - }; - pc_i440fx_2_10_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_9, hw_compat_2_9_len); + compat_props_add(m->compat_props, pc_compat_2_9, pc_compat_2_9_len); m->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; } =20 diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 8d708cd163..4e57830a6d 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -378,12 +378,9 @@ DEFINE_Q35_MACHINE(v2_10, "pc-q35-2.10", NULL, =20 static void pc_q35_2_9_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_9 - }; - pc_q35_2_10_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_9, hw_compat_2_9_len); + compat_props_add(m->compat_props, pc_compat_2_9, pc_compat_2_9_len); } =20 DEFINE_Q35_MACHINE(v2_9, "pc-q35-2.9", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 10e91d857c..7aa3a09ed4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4068,7 +4068,6 @@ static void spapr_machine_2_9_class_options(MachineCl= ass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_9 { .driver =3D TYPE_POWERPC_CPU, .property =3D "pre-2.10-migration", @@ -4077,6 +4076,7 @@ static void spapr_machine_2_9_class_options(MachineCl= ass *mc) }; =20 spapr_machine_2_10_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_9, hw_compat_2_9_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->numa_auto_assign_ram =3D numa_legacy_auto_assign_ram; smc->pre_2_10_has_unused_icps =3D true; diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 95ad7ba842..549f6e0231 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -752,7 +752,6 @@ static void ccw_machine_2_9_class_options(MachineClass = *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_9 { .driver =3D TYPE_S390_STATTRIB, .property =3D "migration-enabled", @@ -761,6 +760,7 @@ static void ccw_machine_2_9_class_options(MachineClass = *mc) }; =20 ccw_machine_2_10_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_9, hw_compat_2_9_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); s390mc->css_migration_enabled =3D false; } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383388660761.170295513905; Fri, 21 Dec 2018 01:09:48 -0800 (PST) Received: from localhost ([::1]:44362 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGoU-0006wI-KC for importer@patchew.org; Fri, 21 Dec 2018 04:09:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkQ-0003j4-AU for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkK-0001QE-E8 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:31069) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkI-0001Hr-A0 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:28 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A6DABC098D24 for ; Fri, 21 Dec 2018 09:05:22 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D66A271A5; Fri, 21 Dec 2018 09:05:20 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:54 +0400 Message-Id: <20181221090410.27250-13-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:05:22 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 12/28] compat: replace PC_COMPAT_2_8 & HW_COMPAT_2_8 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 43 ----------------------------------- include/hw/i386/pc.h | 29 ++---------------------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 46 ++++++++++++++++++++++++++++++++++++++ hw/i386/pc.c | 29 ++++++++++++++++++++++++ hw/i386/pc_piix.c | 7 ++---- hw/i386/pc_q35.c | 7 ++---- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 87 insertions(+), 86 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 226d6cfaa7..f8aa034d0e 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -305,4 +305,7 @@ extern const size_t hw_compat_2_10_len; extern GlobalProperty hw_compat_2_9[]; extern const size_t hw_compat_2_9_len; =20 +extern GlobalProperty hw_compat_2_8[]; +extern const size_t hw_compat_2_8_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index ef154ca470..65d6748054 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,49 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_8 \ - {\ - .driver =3D "fw_cfg_mem",\ - .property =3D "x-file-slots",\ - .value =3D stringify(0x10),\ - },{\ - .driver =3D "fw_cfg_io",\ - .property =3D "x-file-slots",\ - .value =3D stringify(0x10),\ - },{\ - .driver =3D "pflash_cfi01",\ - .property =3D "old-multiple-chip-handling",\ - .value =3D "on",\ - },{\ - .driver =3D "pci-bridge",\ - .property =3D "shpc",\ - .value =3D "on",\ - },{\ - .driver =3D TYPE_PCI_DEVICE,\ - .property =3D "x-pcie-extcap-init",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "x-pcie-deverr-init",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "x-pcie-lnkctl-init",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "x-pcie-pm-init",\ - .value =3D "off",\ - },{\ - .driver =3D "cirrus-vga",\ - .property =3D "vgamem_mb",\ - .value =3D "8",\ - },{\ - .driver =3D "isa-cirrus-vga",\ - .property =3D "vgamem_mb",\ - .value =3D "8",\ - }, - #define HW_COMPAT_2_7 \ {\ .driver =3D "virtio-pci",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index fb79f0b988..12c47d2506 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -312,33 +312,8 @@ extern const size_t pc_compat_2_10_len; extern GlobalProperty pc_compat_2_9[]; extern const size_t pc_compat_2_9_len; =20 -#define PC_COMPAT_2_8 \ - HW_COMPAT_2_8 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "tcg-cpuid",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "kvmclock",\ - .property =3D "x-mach-use-reliable-get-clock",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "ICH9-LPC",\ - .property =3D "x-smi-broadcast",\ - .value =3D "off",\ - },\ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "vmware-cpuid-freq",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Haswell-" TYPE_X86_CPU,\ - .property =3D "stepping",\ - .value =3D "1",\ - }, +extern GlobalProperty pc_compat_2_8[]; +extern const size_t pc_compat_2_8_len; =20 #define PC_COMPAT_2_7 \ HW_COMPAT_2_7 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 2db46567bb..850a02cf43 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1926,12 +1926,9 @@ DEFINE_VIRT_MACHINE(2, 9) static void virt_machine_2_8_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_8 - }; =20 virt_machine_2_9_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_8, hw_compat_2_8_len); /* For 2.8 and earlier we falsely claimed in the DT that * our timers were edge-triggered, not level-triggered. */ diff --git a/hw/core/machine.c b/hw/core/machine.c index 2d7e774a5d..b3ea5bd777 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -21,6 +21,7 @@ #include "sysemu/numa.h" #include "qemu/error-report.h" #include "sysemu/qtest.h" +#include "hw/pci/pci.h" =20 GlobalProperty hw_compat_3_1[] =3D {}; const size_t hw_compat_3_1_len =3D G_N_ELEMENTS(hw_compat_3_1); @@ -112,6 +113,51 @@ GlobalProperty hw_compat_2_9[] =3D { }; const size_t hw_compat_2_9_len =3D G_N_ELEMENTS(hw_compat_2_9); =20 +GlobalProperty hw_compat_2_8[] =3D { + { + .driver =3D "fw_cfg_mem", + .property =3D "x-file-slots", + .value =3D stringify(0x10), + },{ + .driver =3D "fw_cfg_io", + .property =3D "x-file-slots", + .value =3D stringify(0x10), + },{ + .driver =3D "pflash_cfi01", + .property =3D "old-multiple-chip-handling", + .value =3D "on", + },{ + .driver =3D "pci-bridge", + .property =3D "shpc", + .value =3D "on", + },{ + .driver =3D TYPE_PCI_DEVICE, + .property =3D "x-pcie-extcap-init", + .value =3D "off", + },{ + .driver =3D "virtio-pci", + .property =3D "x-pcie-deverr-init", + .value =3D "off", + },{ + .driver =3D "virtio-pci", + .property =3D "x-pcie-lnkctl-init", + .value =3D "off", + },{ + .driver =3D "virtio-pci", + .property =3D "x-pcie-pm-init", + .value =3D "off", + },{ + .driver =3D "cirrus-vga", + .property =3D "vgamem_mb", + .value =3D "8", + },{ + .driver =3D "isa-cirrus-vga", + .property =3D "vgamem_mb", + .value =3D "8", + }, +}; +const size_t hw_compat_2_8_len =3D G_N_ELEMENTS(hw_compat_2_8); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f36cc5f79c..517ead567c 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -189,6 +189,35 @@ GlobalProperty pc_compat_2_9[] =3D { }; const size_t pc_compat_2_9_len =3D G_N_ELEMENTS(pc_compat_2_9); =20 +GlobalProperty pc_compat_2_8[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "tcg-cpuid", + .value =3D "off", + }, + { + .driver =3D "kvmclock", + .property =3D "x-mach-use-reliable-get-clock", + .value =3D "off", + }, + { + .driver =3D "ICH9-LPC", + .property =3D "x-smi-broadcast", + .value =3D "off", + }, + { + .driver =3D TYPE_X86_CPU, + .property =3D "vmware-cpuid-freq", + .value =3D "off", + }, + { + .driver =3D "Haswell-" TYPE_X86_CPU, + .property =3D "stepping", + .value =3D "1", + }, +}; +const size_t pc_compat_2_8_len =3D G_N_ELEMENTS(pc_compat_2_8); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 5bc3ad0331..deb5500624 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -504,12 +504,9 @@ DEFINE_I440FX_MACHINE(v2_9, "pc-i440fx-2.9", NULL, =20 static void pc_i440fx_2_8_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_8 - }; - pc_i440fx_2_9_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_8, hw_compat_2_8_len); + compat_props_add(m->compat_props, pc_compat_2_8, pc_compat_2_8_len); } =20 DEFINE_I440FX_MACHINE(v2_8, "pc-i440fx-2.8", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 4e57830a6d..57b46e1ecb 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -388,12 +388,9 @@ DEFINE_Q35_MACHINE(v2_9, "pc-q35-2.9", NULL, =20 static void pc_q35_2_8_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_8 - }; - pc_q35_2_9_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_8, hw_compat_2_8_len); + compat_props_add(m->compat_props, pc_compat_2_8, pc_compat_2_8_len); } =20 DEFINE_Q35_MACHINE(v2_8, "pc-q35-2.8", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 7aa3a09ed4..d2e46362fb 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4092,7 +4092,6 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", false); static void spapr_machine_2_8_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_8 { .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, .property =3D "pcie-extended-configuration-space", @@ -4101,6 +4100,7 @@ static void spapr_machine_2_8_class_options(MachineCl= ass *mc) }; =20 spapr_machine_2_9_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_8, hw_compat_2_8_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->numa_mem_align_shift =3D 23; } diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 549f6e0231..22e96ab353 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -774,7 +774,6 @@ static void ccw_machine_2_8_instance_options(MachineSta= te *machine) static void ccw_machine_2_8_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_8 { .driver =3D TYPE_S390_FLIC_COMMON, .property =3D "adapter_routes_max_batch", @@ -783,6 +782,7 @@ static void ccw_machine_2_8_class_options(MachineClass = *mc) }; =20 ccw_machine_2_9_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_8, hw_compat_2_8_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_8, "2.8", false); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384267923866.592485821185; Fri, 21 Dec 2018 01:24:27 -0800 (PST) Received: from localhost ([::1]:44458 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH2g-000278-Dr for importer@patchew.org; Fri, 21 Dec 2018 04:24:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkO-0003ii-9a for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkL-0001Rj-66 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47706) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkK-0001OI-H4 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:29 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E074483F3C for ; Fri, 21 Dec 2018 09:05:27 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6BF045F7C2; Fri, 21 Dec 2018 09:05:26 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:55 +0400 Message-Id: <20181221090410.27250-14-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 21 Dec 2018 09:05:27 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 13/28] compat: replace PC_COMPAT_2_7 & HW_COMPAT_2_7 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 23 ----------------------- include/hw/i386/pc.h | 34 ++-------------------------------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 25 +++++++++++++++++++++++++ hw/i386/pc.c | 34 ++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 7 ++----- hw/i386/pc_q35.c | 7 ++----- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 5 +---- 10 files changed, 71 insertions(+), 74 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f8aa034d0e..611b34b26a 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -308,4 +308,7 @@ extern const size_t hw_compat_2_9_len; extern GlobalProperty hw_compat_2_8[]; extern const size_t hw_compat_2_8_len; =20 +extern GlobalProperty hw_compat_2_7[]; +extern const size_t hw_compat_2_7_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 65d6748054..7ceab17401 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,29 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_7 \ - {\ - .driver =3D "virtio-pci",\ - .property =3D "page-per-vq",\ - .value =3D "on",\ - },{\ - .driver =3D "virtio-serial-device",\ - .property =3D "emergency-write",\ - .value =3D "off",\ - },{\ - .driver =3D "ioapic",\ - .property =3D "version",\ - .value =3D "0x11",\ - },{\ - .driver =3D "intel-iommu",\ - .property =3D "x-buggy-eim",\ - .value =3D "true",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "x-ignore-backend-features",\ - .value =3D "on",\ - }, - #define HW_COMPAT_2_6 \ {\ .driver =3D "virtio-mmio",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 12c47d2506..504fbc79a9 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -315,38 +315,8 @@ extern const size_t pc_compat_2_9_len; extern GlobalProperty pc_compat_2_8[]; extern const size_t pc_compat_2_8_len; =20 -#define PC_COMPAT_2_7 \ - HW_COMPAT_2_7 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "l3-cache",\ - .value =3D "off",\ - },\ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "full-cpuid-auto-level",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G3" "-" TYPE_X86_CPU,\ - .property =3D "family",\ - .value =3D "15",\ - },\ - {\ - .driver =3D "Opteron_G3" "-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D "6",\ - },\ - {\ - .driver =3D "Opteron_G3" "-" TYPE_X86_CPU,\ - .property =3D "stepping",\ - .value =3D "1",\ - },\ - {\ - .driver =3D "isa-pcspk",\ - .property =3D "migrate",\ - .value =3D "off",\ - }, +extern GlobalProperty pc_compat_2_7[]; +extern const size_t pc_compat_2_7_len; =20 #define PC_COMPAT_2_6 \ HW_COMPAT_2_6 \ diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 850a02cf43..e01d19e5e1 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1939,12 +1939,9 @@ DEFINE_VIRT_MACHINE(2, 8) static void virt_machine_2_7_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_7 - }; =20 virt_machine_2_8_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len); /* ITS was introduced with 2.8 */ vmc->no_its =3D true; /* Stick with 1K pages for migration compatibility */ diff --git a/hw/core/machine.c b/hw/core/machine.c index b3ea5bd777..92f4c71354 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -158,6 +158,31 @@ GlobalProperty hw_compat_2_8[] =3D { }; const size_t hw_compat_2_8_len =3D G_N_ELEMENTS(hw_compat_2_8); =20 +GlobalProperty hw_compat_2_7[] =3D { + { + .driver =3D "virtio-pci", + .property =3D "page-per-vq", + .value =3D "on", + },{ + .driver =3D "virtio-serial-device", + .property =3D "emergency-write", + .value =3D "off", + },{ + .driver =3D "ioapic", + .property =3D "version", + .value =3D "0x11", + },{ + .driver =3D "intel-iommu", + .property =3D "x-buggy-eim", + .value =3D "true", + },{ + .driver =3D "virtio-pci", + .property =3D "x-ignore-backend-features", + .value =3D "on", + }, +}; +const size_t hw_compat_2_7_len =3D G_N_ELEMENTS(hw_compat_2_7); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 517ead567c..96c64ccc4f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -218,6 +218,40 @@ GlobalProperty pc_compat_2_8[] =3D { }; const size_t pc_compat_2_8_len =3D G_N_ELEMENTS(pc_compat_2_8); =20 +GlobalProperty pc_compat_2_7[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "l3-cache", + .value =3D "off", + }, + { + .driver =3D TYPE_X86_CPU, + .property =3D "full-cpuid-auto-level", + .value =3D "off", + }, + { + .driver =3D "Opteron_G3" "-" TYPE_X86_CPU, + .property =3D "family", + .value =3D "15", + }, + { + .driver =3D "Opteron_G3" "-" TYPE_X86_CPU, + .property =3D "model", + .value =3D "6", + }, + { + .driver =3D "Opteron_G3" "-" TYPE_X86_CPU, + .property =3D "stepping", + .value =3D "1", + }, + { + .driver =3D "isa-pcspk", + .property =3D "migrate", + .value =3D "off", + }, +}; +const size_t pc_compat_2_7_len =3D G_N_ELEMENTS(pc_compat_2_7); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index deb5500624..b956b4abe0 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -514,12 +514,9 @@ DEFINE_I440FX_MACHINE(v2_8, "pc-i440fx-2.8", NULL, =20 static void pc_i440fx_2_7_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_7 - }; - pc_i440fx_2_8_machine_options(m); - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_7, hw_compat_2_7_len); + compat_props_add(m->compat_props, pc_compat_2_7, pc_compat_2_7_len); } =20 DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 57b46e1ecb..e321f14cb5 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -398,13 +398,10 @@ DEFINE_Q35_MACHINE(v2_8, "pc-q35-2.8", NULL, =20 static void pc_q35_2_7_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_7 - }; - pc_q35_2_8_machine_options(m); m->max_cpus =3D 255; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_7, hw_compat_2_7_len); + compat_props_add(m->compat_props, pc_compat_2_7, pc_compat_2_7_len); } =20 DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d2e46362fb..445996c0b4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4164,7 +4164,6 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_7 { .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, .property =3D "mem_win_size", @@ -4190,6 +4189,7 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) spapr_machine_2_8_class_options(mc); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power7_v2.3"); mc->default_machine_opts =3D "modern-hotplug-events=3Doff"; + compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); smc->phb_placement =3D phb_placement_2_7; } diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 22e96ab353..f28feedd4b 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -795,13 +795,10 @@ static void ccw_machine_2_7_instance_options(MachineS= tate *machine) static void ccw_machine_2_7_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_7 - }; =20 s390mc->cpu_model_allowed =3D false; ccw_machine_2_8_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_7, hw_compat_2_7_len); } DEFINE_CCW_MACHINE(2_7, "2.7", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384388656720.5127816856; Fri, 21 Dec 2018 01:26:28 -0800 (PST) Received: from localhost ([::1]:44483 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH4d-0003kY-8e for importer@patchew.org; Fri, 21 Dec 2018 04:26:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkR-0003j8-59 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkQ-0001WA-DU for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:35 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60308) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkQ-0001VX-5E for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:34 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 49461AC5E0 for ; Fri, 21 Dec 2018 09:05:33 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id D9B26271A5; Fri, 21 Dec 2018 09:05:31 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:56 +0400 Message-Id: <20181221090410.27250-15-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:05:33 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 14/28] compat: replace PC_COMPAT_2_6 & HW_COMPAT_2_6 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 15 --------------- include/hw/i386/pc.h | 23 ++--------------------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 17 +++++++++++++++++ hw/i386/pc.c | 23 +++++++++++++++++++++++ hw/i386/pc_piix.c | 6 ++---- hw/i386/pc_q35.c | 6 ++---- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 52 insertions(+), 50 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 611b34b26a..a9d413cdb7 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -311,4 +311,7 @@ extern const size_t hw_compat_2_8_len; extern GlobalProperty hw_compat_2_7[]; extern const size_t hw_compat_2_7_len; =20 +extern GlobalProperty hw_compat_2_6[]; +extern const size_t hw_compat_2_6_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 7ceab17401..c744233fb6 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,21 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_6 \ - {\ - .driver =3D "virtio-mmio",\ - .property =3D "format_transport_address",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "disable-modern",\ - .value =3D "on",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "disable-legacy",\ - .value =3D "off",\ - }, - #define HW_COMPAT_2_5 \ {\ .driver =3D "isa-fdc",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 504fbc79a9..ca62def2c9 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -318,27 +318,8 @@ extern const size_t pc_compat_2_8_len; extern GlobalProperty pc_compat_2_7[]; extern const size_t pc_compat_2_7_len; =20 -#define PC_COMPAT_2_6 \ - HW_COMPAT_2_6 \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "cpuid-0xb",\ - .value =3D "off",\ - },{\ - .driver =3D "vmxnet3",\ - .property =3D "romfile",\ - .value =3D "",\ - },\ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "fill-mtrr-mask",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "apic-common",\ - .property =3D "legacy-instance-id",\ - .value =3D "on",\ - }, +extern GlobalProperty pc_compat_2_6[]; +extern const size_t pc_compat_2_6_len; =20 #define PC_COMPAT_2_5 \ HW_COMPAT_2_5 diff --git a/hw/arm/virt.c b/hw/arm/virt.c index e01d19e5e1..5fe2eebb02 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1952,12 +1952,9 @@ DEFINE_VIRT_MACHINE(2, 7) static void virt_machine_2_6_options(MachineClass *mc) { VirtMachineClass *vmc =3D VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_6 - }; =20 virt_machine_2_7_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); vmc->disallow_affinity_adjustment =3D true; /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ vmc->no_pmu =3D true; diff --git a/hw/core/machine.c b/hw/core/machine.c index 92f4c71354..5f1af02c86 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -183,6 +183,23 @@ GlobalProperty hw_compat_2_7[] =3D { }; const size_t hw_compat_2_7_len =3D G_N_ELEMENTS(hw_compat_2_7); =20 +GlobalProperty hw_compat_2_6[] =3D { + { + .driver =3D "virtio-mmio", + .property =3D "format_transport_address", + .value =3D "off", + },{ + .driver =3D "virtio-pci", + .property =3D "disable-modern", + .value =3D "on", + },{ + .driver =3D "virtio-pci", + .property =3D "disable-legacy", + .value =3D "off", + }, +}; +const size_t hw_compat_2_6_len =3D G_N_ELEMENTS(hw_compat_2_6); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 96c64ccc4f..f719115f17 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -252,6 +252,29 @@ GlobalProperty pc_compat_2_7[] =3D { }; const size_t pc_compat_2_7_len =3D G_N_ELEMENTS(pc_compat_2_7); =20 +GlobalProperty pc_compat_2_6[] =3D { + { + .driver =3D TYPE_X86_CPU, + .property =3D "cpuid-0xb", + .value =3D "off", + },{ + .driver =3D "vmxnet3", + .property =3D "romfile", + .value =3D "", + }, + { + .driver =3D TYPE_X86_CPU, + .property =3D "fill-mtrr-mask", + .value =3D "off", + }, + { + .driver =3D "apic-common", + .property =3D "legacy-instance-id", + .value =3D "on", + } +}; +const size_t pc_compat_2_6_len =3D G_N_ELEMENTS(pc_compat_2_6); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index b956b4abe0..5f3dc8a809 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -525,14 +525,12 @@ DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, static void pc_i440fx_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_6 - }; =20 pc_i440fx_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); } =20 DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index e321f14cb5..063df36cad 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -410,14 +410,12 @@ DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, static void pc_q35_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_6 - }; =20 pc_q35_2_7_machine_options(m); pcmc->legacy_cpu_hotplug =3D true; pcmc->linuxboot_dma_enabled =3D false; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); } =20 DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 445996c0b4..797f480564 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4203,7 +4203,6 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false); static void spapr_machine_2_6_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_6 { .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, .property =3D "ddw", @@ -4213,6 +4212,7 @@ static void spapr_machine_2_6_class_options(MachineCl= ass *mc) =20 spapr_machine_2_7_class_options(mc); mc->has_hotpluggable_cpus =3D false; + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index f28feedd4b..6137c97875 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -811,7 +811,6 @@ static void ccw_machine_2_6_class_options(MachineClass = *mc) { S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_6 { .driver =3D TYPE_S390_IPL, .property =3D "iplbext_migration", @@ -825,6 +824,7 @@ static void ccw_machine_2_6_class_options(MachineClass = *mc) =20 s390mc->ri_allowed =3D false; ccw_machine_2_7_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_6, "2.6", false); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15453837439009.510228276357793; Fri, 21 Dec 2018 01:15:43 -0800 (PST) Received: from localhost ([::1]:44400 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGuD-0003s0-5R for importer@patchew.org; Fri, 21 Dec 2018 04:15:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38271) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkY-0003q8-Uc for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkV-0001aa-OO for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:42 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44998) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkV-0001a6-F9 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:39 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BEA0D19CBD7 for ; Fri, 21 Dec 2018 09:05:38 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 25F62271A5; Fri, 21 Dec 2018 09:05:36 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:57 +0400 Message-Id: <20181221090410.27250-16-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 21 Dec 2018 09:05:38 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 15/28] compat: replace PC_COMPAT_2_5 & HW_COMPAT_2_5 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 24 ------------------------ include/hw/i386/pc.h | 4 ++-- hw/core/machine.c | 26 ++++++++++++++++++++++++++ hw/i386/pc.c | 3 +++ hw/i386/pc_piix.c | 6 ++---- hw/i386/pc_q35.c | 6 ++---- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 6 +----- 9 files changed, 40 insertions(+), 40 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index a9d413cdb7..36e1269eb1 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -314,4 +314,7 @@ extern const size_t hw_compat_2_7_len; extern GlobalProperty hw_compat_2_6[]; extern const size_t hw_compat_2_6_len; =20 +extern GlobalProperty hw_compat_2_5[]; +extern const size_t hw_compat_2_5_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index c744233fb6..a6eced34c6 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,30 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_5 \ - {\ - .driver =3D "isa-fdc",\ - .property =3D "fallback",\ - .value =3D "144",\ - },{\ - .driver =3D "pvscsi",\ - .property =3D "x-old-pci-configuration",\ - .value =3D "on",\ - },{\ - .driver =3D "pvscsi",\ - .property =3D "x-disable-pcie",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "vmxnet3",\ - .property =3D "x-old-msi-offsets",\ - .value =3D "on",\ - },{\ - .driver =3D "vmxnet3",\ - .property =3D "x-disable-pcie",\ - .value =3D "on",\ - }, - #define HW_COMPAT_2_4 \ {\ .driver =3D "virtio-blk-device",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ca62def2c9..9a32031f25 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -321,8 +321,8 @@ extern const size_t pc_compat_2_7_len; extern GlobalProperty pc_compat_2_6[]; extern const size_t pc_compat_2_6_len; =20 -#define PC_COMPAT_2_5 \ - HW_COMPAT_2_5 +extern GlobalProperty pc_compat_2_5[]; +extern const size_t pc_compat_2_5_len; =20 /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. diff --git a/hw/core/machine.c b/hw/core/machine.c index 5f1af02c86..1022b538a5 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -200,6 +200,32 @@ GlobalProperty hw_compat_2_6[] =3D { }; const size_t hw_compat_2_6_len =3D G_N_ELEMENTS(hw_compat_2_6); =20 +GlobalProperty hw_compat_2_5[] =3D { + { + .driver =3D "isa-fdc", + .property =3D "fallback", + .value =3D "144", + },{ + .driver =3D "pvscsi", + .property =3D "x-old-pci-configuration", + .value =3D "on", + },{ + .driver =3D "pvscsi", + .property =3D "x-disable-pcie", + .value =3D "on", + }, + { + .driver =3D "vmxnet3", + .property =3D "x-old-msi-offsets", + .value =3D "on", + },{ + .driver =3D "vmxnet3", + .property =3D "x-disable-pcie", + .value =3D "on", + }, +}; +const size_t hw_compat_2_5_len =3D G_N_ELEMENTS(hw_compat_2_5); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f719115f17..ac54c2e39d 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -275,6 +275,9 @@ GlobalProperty pc_compat_2_6[] =3D { }; const size_t pc_compat_2_6_len =3D G_N_ELEMENTS(pc_compat_2_6); =20 +GlobalProperty pc_compat_2_5[] =3D {}; +const size_t pc_compat_2_5_len =3D G_N_ELEMENTS(pc_compat_2_5); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 5f3dc8a809..4f5168534a 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -539,14 +539,12 @@ DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, static void pc_i440fx_2_5_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_5 - }; =20 pc_i440fx_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_5, hw_compat_2_5_len); + compat_props_add(m->compat_props, pc_compat_2_5, pc_compat_2_5_len); } =20 DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 063df36cad..a33d5d3610 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -424,14 +424,12 @@ DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, static void pc_q35_2_5_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_5 - }; =20 pc_q35_2_6_machine_options(m); pcmc->save_tsc_khz =3D false; m->legacy_fw_cfg_order =3D 1; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_5, hw_compat_2_5_len); + compat_props_add(m->compat_props, pc_compat_2_5, pc_compat_2_5_len); } =20 DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 797f480564..c808ec90f0 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4226,7 +4226,6 @@ static void spapr_machine_2_5_class_options(MachineCl= ass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); static GlobalProperty compat[] =3D { - HW_COMPAT_2_5 { .driver =3D "spapr-vlan", .property =3D "use-rx-buffer-pools", @@ -4236,6 +4235,7 @@ static void spapr_machine_2_5_class_options(MachineCl= ass *mc) =20 spapr_machine_2_6_class_options(mc); smc->use_ohci_by_default =3D true; + compat_props_add(mc->compat_props, hw_compat_2_5, hw_compat_2_5_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 6137c97875..1ab53a1332 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -836,12 +836,8 @@ static void ccw_machine_2_5_instance_options(MachineSt= ate *machine) =20 static void ccw_machine_2_5_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_5 - }; - ccw_machine_2_6_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_5, hw_compat_2_5_len); } DEFINE_CCW_MACHINE(2_5, "2.5", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383738983878.1025061476496; Fri, 21 Dec 2018 01:15:38 -0800 (PST) Received: from localhost ([::1]:44398 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGu9-0003no-38 for importer@patchew.org; Fri, 21 Dec 2018 04:15:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkb-0003uk-Nt for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGka-0001dr-Ti for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:45 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35342) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGka-0001d8-Kz for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:44 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 03EC9C05D274 for ; Fri, 21 Dec 2018 09:05:44 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7F7654AC; Fri, 21 Dec 2018 09:05:42 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:58 +0400 Message-Id: <20181221090410.27250-17-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:05:44 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 16/28] compat: replace PC_COMPAT_2_4 & HW_COMPAT_2_4 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 ++ include/hw/compat.h | 27 -------------- include/hw/i386/pc.h | 74 ++------------------------------------ hw/core/machine.c | 29 +++++++++++++++ hw/i386/pc.c | 71 ++++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 6 ++-- hw/i386/pc_q35.c | 6 ++-- hw/ppc/spapr.c | 5 +-- hw/s390x/s390-virtio-ccw.c | 2 +- 9 files changed, 112 insertions(+), 111 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 36e1269eb1..053e362f28 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -317,4 +317,7 @@ extern const size_t hw_compat_2_6_len; extern GlobalProperty hw_compat_2_5[]; extern const size_t hw_compat_2_5_len; =20 +extern GlobalProperty hw_compat_2_4[]; +extern const size_t hw_compat_2_4_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index a6eced34c6..05ff05e159 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,33 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_4 \ - {\ - .driver =3D "virtio-blk-device",\ - .property =3D "scsi",\ - .value =3D "true",\ - },{\ - .driver =3D "e1000",\ - .property =3D "extra_mac_registers",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "x-disable-pcie",\ - .value =3D "on",\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "migrate-extra",\ - .value =3D "off",\ - },{\ - .driver =3D "fw_cfg_mem",\ - .property =3D "dma_enabled",\ - .value =3D "off",\ - },{\ - .driver =3D "fw_cfg_io",\ - .property =3D "dma_enabled",\ - .value =3D "off",\ - }, - #define HW_COMPAT_2_3 \ {\ .driver =3D "virtio-blk-pci",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 9a32031f25..a9045f6bea 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -324,6 +324,9 @@ extern const size_t pc_compat_2_6_len; extern GlobalProperty pc_compat_2_5[]; extern const size_t pc_compat_2_5_len; =20 +extern GlobalProperty pc_compat_2_4[]; +extern const size_t pc_compat_2_4_len; + /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. */ @@ -344,77 +347,6 @@ extern const size_t pc_compat_2_5_len; .value =3D "QEMU Virtual CPU version " v,\ }, =20 -#define PC_COMPAT_2_4 \ - HW_COMPAT_2_4 \ - PC_CPU_MODEL_IDS("2.4.0") \ - {\ - .driver =3D "Haswell-" TYPE_X86_CPU,\ - .property =3D "abm",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Haswell-noTSX-" TYPE_X86_CPU,\ - .property =3D "abm",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Broadwell-" TYPE_X86_CPU,\ - .property =3D "abm",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Broadwell-noTSX-" TYPE_X86_CPU,\ - .property =3D "abm",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "host" "-" TYPE_X86_CPU,\ - .property =3D "host-cache-info",\ - .value =3D "on",\ - },\ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "check",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "qemu64" "-" TYPE_X86_CPU,\ - .property =3D "sse4a",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "qemu64" "-" TYPE_X86_CPU,\ - .property =3D "abm",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "qemu64" "-" TYPE_X86_CPU,\ - .property =3D "popcnt",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "qemu32" "-" TYPE_X86_CPU,\ - .property =3D "popcnt",\ - .value =3D "on",\ - },{\ - .driver =3D "Opteron_G2" "-" TYPE_X86_CPU,\ - .property =3D "rdtscp",\ - .value =3D "on",\ - },{\ - .driver =3D "Opteron_G3" "-" TYPE_X86_CPU,\ - .property =3D "rdtscp",\ - .value =3D "on",\ - },{\ - .driver =3D "Opteron_G4" "-" TYPE_X86_CPU,\ - .property =3D "rdtscp",\ - .value =3D "on",\ - },{\ - .driver =3D "Opteron_G5" "-" TYPE_X86_CPU,\ - .property =3D "rdtscp",\ - .value =3D "on",\ - }, - - #define PC_COMPAT_2_3 \ HW_COMPAT_2_3 \ PC_CPU_MODEL_IDS("2.3.0") \ diff --git a/hw/core/machine.c b/hw/core/machine.c index 1022b538a5..a14e343cba 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -226,6 +226,35 @@ GlobalProperty hw_compat_2_5[] =3D { }; const size_t hw_compat_2_5_len =3D G_N_ELEMENTS(hw_compat_2_5); =20 +GlobalProperty hw_compat_2_4[] =3D { + { + .driver =3D "virtio-blk-device", + .property =3D "scsi", + .value =3D "true", + },{ + .driver =3D "e1000", + .property =3D "extra_mac_registers", + .value =3D "off", + },{ + .driver =3D "virtio-pci", + .property =3D "x-disable-pcie", + .value =3D "on", + },{ + .driver =3D "virtio-pci", + .property =3D "migrate-extra", + .value =3D "off", + },{ + .driver =3D "fw_cfg_mem", + .property =3D "dma_enabled", + .value =3D "off", + },{ + .driver =3D "fw_cfg_io", + .property =3D "dma_enabled", + .value =3D "off", + } +}; +const size_t hw_compat_2_4_len =3D G_N_ELEMENTS(hw_compat_2_4); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ac54c2e39d..ed40071f66 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -278,6 +278,77 @@ const size_t pc_compat_2_6_len =3D G_N_ELEMENTS(pc_com= pat_2_6); GlobalProperty pc_compat_2_5[] =3D {}; const size_t pc_compat_2_5_len =3D G_N_ELEMENTS(pc_compat_2_5); =20 +GlobalProperty pc_compat_2_4[] =3D { + PC_CPU_MODEL_IDS("2.4.0") + { + .driver =3D "Haswell-" TYPE_X86_CPU, + .property =3D "abm", + .value =3D "off", + }, + { + .driver =3D "Haswell-noTSX-" TYPE_X86_CPU, + .property =3D "abm", + .value =3D "off", + }, + { + .driver =3D "Broadwell-" TYPE_X86_CPU, + .property =3D "abm", + .value =3D "off", + }, + { + .driver =3D "Broadwell-noTSX-" TYPE_X86_CPU, + .property =3D "abm", + .value =3D "off", + }, + { + .driver =3D "host" "-" TYPE_X86_CPU, + .property =3D "host-cache-info", + .value =3D "on", + }, + { + .driver =3D TYPE_X86_CPU, + .property =3D "check", + .value =3D "off", + }, + { + .driver =3D "qemu64" "-" TYPE_X86_CPU, + .property =3D "sse4a", + .value =3D "on", + }, + { + .driver =3D "qemu64" "-" TYPE_X86_CPU, + .property =3D "abm", + .value =3D "on", + }, + { + .driver =3D "qemu64" "-" TYPE_X86_CPU, + .property =3D "popcnt", + .value =3D "on", + }, + { + .driver =3D "qemu32" "-" TYPE_X86_CPU, + .property =3D "popcnt", + .value =3D "on", + },{ + .driver =3D "Opteron_G2" "-" TYPE_X86_CPU, + .property =3D "rdtscp", + .value =3D "on", + },{ + .driver =3D "Opteron_G3" "-" TYPE_X86_CPU, + .property =3D "rdtscp", + .value =3D "on", + },{ + .driver =3D "Opteron_G4" "-" TYPE_X86_CPU, + .property =3D "rdtscp", + .value =3D "on", + },{ + .driver =3D "Opteron_G5" "-" TYPE_X86_CPU, + .property =3D "rdtscp", + .value =3D "on", + } +}; +const size_t pc_compat_2_4_len =3D G_N_ELEMENTS(pc_compat_2_4); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 4f5168534a..1465d367d1 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -553,14 +553,12 @@ DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL, static void pc_i440fx_2_4_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_4 - }; =20 pc_i440fx_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_4, hw_compat_2_4_len); + compat_props_add(m->compat_props, pc_compat_2_4, pc_compat_2_4_len); } =20 DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index a33d5d3610..418a6f9b8f 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -438,14 +438,12 @@ DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL, static void pc_q35_2_4_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_4 - }; =20 pc_q35_2_5_machine_options(m); m->hw_version =3D "2.4.0"; pcmc->broken_reserved_end =3D true; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_4, hw_compat_2_4_len); + compat_props_add(m->compat_props, pc_compat_2_4, pc_compat_2_4_len); } =20 DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index c808ec90f0..9ab8484579 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4248,13 +4248,10 @@ DEFINE_SPAPR_MACHINE(2_5, "2.5", false); static void spapr_machine_2_4_class_options(MachineClass *mc) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - HW_COMPAT_2_4 - }; =20 spapr_machine_2_5_class_options(mc); smc->dr_lmb_enabled =3D false; - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_4, hw_compat_2_4_len); } =20 DEFINE_SPAPR_MACHINE(2_4, "2.4", false); diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 1ab53a1332..bf5f2f463c 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -849,7 +849,6 @@ static void ccw_machine_2_4_instance_options(MachineSta= te *machine) static void ccw_machine_2_4_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_4 { .driver =3D TYPE_S390_SKEYS, .property =3D "migration-enabled", @@ -890,6 +889,7 @@ static void ccw_machine_2_4_class_options(MachineClass = *mc) }; =20 ccw_machine_2_5_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_4, hw_compat_2_4_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_4, "2.4", false); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384498080533.8897886037942; Fri, 21 Dec 2018 01:28:18 -0800 (PST) Received: from localhost ([::1]:44489 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH6O-0004yO-Ja for importer@patchew.org; Fri, 21 Dec 2018 04:28:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38359) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkj-00041V-Q6 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkg-0001lW-Iu for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:53 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34977) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkg-0001kr-9r for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:50 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A764BC05B01A for ; Fri, 21 Dec 2018 09:05:49 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id C4A4817B49; Fri, 21 Dec 2018 09:05:47 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:03:59 +0400 Message-Id: <20181221090410.27250-18-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:05:49 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 17/28] compat: replace PC_COMPAT_2_3 & HW_COMPAT_2_3 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. I decided to rename the conflicting pc_compat_2_3() function with pc_compat_2_3_fn(). Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 ++ include/hw/compat.h | 39 -------------------- include/hw/i386/pc.h | 88 ++------------------------------------------ hw/core/machine.c | 41 +++++++++++++++++++++ hw/i386/pc.c | 86 +++++++++++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 13 +++---- hw/ppc/spapr.c | 2 +- 7 files changed, 139 insertions(+), 133 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 053e362f28..a51d896a70 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -320,4 +320,7 @@ extern const size_t hw_compat_2_5_len; extern GlobalProperty hw_compat_2_4[]; extern const size_t hw_compat_2_4_len; =20 +extern GlobalProperty hw_compat_2_3[]; +extern const size_t hw_compat_2_3_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 05ff05e159..fbe64d5983 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,45 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_3 \ - {\ - .driver =3D "virtio-blk-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-balloon-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-serial-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-9p-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-rng-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D TYPE_PCI_DEVICE,\ - .property =3D "x-pcie-lnksta-dllla",\ - .value =3D "off",\ - },{\ - .driver =3D "migration",\ - .property =3D "send-configuration",\ - .value =3D "off",\ - },{\ - .driver =3D "migration",\ - .property =3D "send-section-footer",\ - .value =3D "off",\ - },{\ - .driver =3D "migration",\ - .property =3D "store-global-state",\ - .value =3D "off",\ - }, - #define HW_COMPAT_2_2 \ /* empty */ =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index a9045f6bea..def40cd545 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -327,6 +327,9 @@ extern const size_t pc_compat_2_5_len; extern GlobalProperty pc_compat_2_4[]; extern const size_t pc_compat_2_4_len; =20 +extern GlobalProperty pc_compat_2_3[]; +extern const size_t pc_compat_2_3_len; + /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. */ @@ -347,91 +350,6 @@ extern const size_t pc_compat_2_4_len; .value =3D "QEMU Virtual CPU version " v,\ }, =20 -#define PC_COMPAT_2_3 \ - HW_COMPAT_2_3 \ - PC_CPU_MODEL_IDS("2.3.0") \ - {\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "arat",\ - .value =3D "off",\ - },{\ - .driver =3D "qemu64" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(4),\ - },{\ - .driver =3D "kvm64" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(5),\ - },{\ - .driver =3D "pentium3" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "n270" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(5),\ - },{\ - .driver =3D "Conroe" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(4),\ - },{\ - .driver =3D "Penryn" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(4),\ - },{\ - .driver =3D "Nehalem" "-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(4),\ - },{\ - .driver =3D "n270" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Penryn" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Conroe" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Nehalem" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Westmere" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "SandyBridge" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "IvyBridge" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Haswell" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Haswell-noTSX" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Broadwell" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D "Broadwell-noTSX" "-" TYPE_X86_CPU,\ - .property =3D "min-xlevel",\ - .value =3D stringify(0x8000000a),\ - },{\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "kvm-no-smi-migration",\ - .value =3D "on",\ - }, - #define PC_COMPAT_2_2 \ HW_COMPAT_2_2 \ PC_CPU_MODEL_IDS("2.2.0") \ diff --git a/hw/core/machine.c b/hw/core/machine.c index a14e343cba..449f7ec8f6 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -255,6 +255,47 @@ GlobalProperty hw_compat_2_4[] =3D { }; const size_t hw_compat_2_4_len =3D G_N_ELEMENTS(hw_compat_2_4); =20 +GlobalProperty hw_compat_2_3[] =3D { + { + .driver =3D "virtio-blk-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "virtio-balloon-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "virtio-serial-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "virtio-9p-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "virtio-rng-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D TYPE_PCI_DEVICE, + .property =3D "x-pcie-lnksta-dllla", + .value =3D "off", + },{ + .driver =3D "migration", + .property =3D "send-configuration", + .value =3D "off", + },{ + .driver =3D "migration", + .property =3D "send-section-footer", + .value =3D "off", + },{ + .driver =3D "migration", + .property =3D "store-global-state", + .value =3D "off", + }, +}; +const size_t hw_compat_2_3_len =3D G_N_ELEMENTS(hw_compat_2_3); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index ed40071f66..c49fceed8e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -349,6 +349,92 @@ GlobalProperty pc_compat_2_4[] =3D { }; const size_t pc_compat_2_4_len =3D G_N_ELEMENTS(pc_compat_2_4); =20 +GlobalProperty pc_compat_2_3[] =3D { + PC_CPU_MODEL_IDS("2.3.0") + { + .driver =3D TYPE_X86_CPU, + .property =3D "arat", + .value =3D "off", + },{ + .driver =3D "qemu64" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(4), + },{ + .driver =3D "kvm64" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(5), + },{ + .driver =3D "pentium3" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(2), + },{ + .driver =3D "n270" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(5), + },{ + .driver =3D "Conroe" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(4), + },{ + .driver =3D "Penryn" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(4), + },{ + .driver =3D "Nehalem" "-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(4), + },{ + .driver =3D "n270" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Penryn" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Conroe" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Nehalem" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Westmere" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "SandyBridge" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "IvyBridge" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Haswell" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Haswell-noTSX" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Broadwell" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D "Broadwell-noTSX" "-" TYPE_X86_CPU, + .property =3D "min-xlevel", + .value =3D stringify(0x8000000a), + },{ + .driver =3D TYPE_X86_CPU, + .property =3D "kvm-no-smi-migration", + .value =3D "on", + }, +}; +const size_t pc_compat_2_3_len =3D G_N_ELEMENTS(pc_compat_2_3); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 1465d367d1..d06fdf2bb9 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -310,7 +310,7 @@ static void pc_init1(MachineState *machine, * HW_COMPAT_*, PC_COMPAT_*, or * pc_*_machine_options(). */ =20 -static void pc_compat_2_3(MachineState *machine) +static void pc_compat_2_3_fn(MachineState *machine) { PCMachineState *pcms =3D PC_MACHINE(machine); if (kvm_enabled()) { @@ -320,7 +320,7 @@ static void pc_compat_2_3(MachineState *machine) =20 static void pc_compat_2_2(MachineState *machine) { - pc_compat_2_3(machine); + pc_compat_2_3_fn(machine); } =20 static void pc_compat_2_1(MachineState *machine) @@ -566,16 +566,13 @@ DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL, =20 static void pc_i440fx_2_3_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_2_3 - }; - pc_i440fx_2_4_machine_options(m); m->hw_version =3D "2.3.0"; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_3, hw_compat_2_3_len); + compat_props_add(m->compat_props, pc_compat_2_3, pc_compat_2_3_len); } =20 -DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3, +DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3_fn, pc_i440fx_2_3_machine_options); =20 static void pc_i440fx_2_2_machine_options(MachineClass *m) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 9ab8484579..29f88f2372 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4263,7 +4263,6 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false); static void spapr_machine_2_3_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_3 { .driver =3D "spapr-pci-host-bridge", .property =3D "dynamic-reconfiguration", @@ -4271,6 +4270,7 @@ static void spapr_machine_2_3_class_options(MachineCl= ass *mc) }, }; spapr_machine_2_4_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_3, hw_compat_2_3_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_SPAPR_MACHINE(2_3, "2.3", false); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383560575819.2784476548072; Fri, 21 Dec 2018 01:12:40 -0800 (PST) Received: from localhost ([::1]:44380 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGrB-0000wW-3c for importer@patchew.org; Fri, 21 Dec 2018 04:12:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkm-00043r-EP for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGkl-0001rw-Gg for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35124) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkl-0001qa-84 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:05:55 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 87CAA86679 for ; Fri, 21 Dec 2018 09:05:54 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 33A575DA63; Fri, 21 Dec 2018 09:05:52 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:00 +0400 Message-Id: <20181221090410.27250-19-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 21 Dec 2018 09:05:54 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 18/28] compat: replace PC_COMPAT_2_2 & HW_COMPAT_2_2 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. I decided to rename the conflicting pc_compat_2_2() function with pc_compat_2_2_fn(). Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 ++ include/hw/compat.h | 3 -- include/hw/i386/pc.h | 97 ++------------------------------------------ hw/core/machine.c | 3 ++ hw/i386/pc.c | 95 +++++++++++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 12 +++--- hw/ppc/spapr.c | 2 +- 7 files changed, 110 insertions(+), 105 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index a51d896a70..0b0a1f4079 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -323,4 +323,7 @@ extern const size_t hw_compat_2_4_len; extern GlobalProperty hw_compat_2_3[]; extern const size_t hw_compat_2_3_len; =20 +extern GlobalProperty hw_compat_2_2[]; +extern const size_t hw_compat_2_2_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index fbe64d5983..3bd91908e4 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,9 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_2 \ - /* empty */ - #define HW_COMPAT_2_1 \ {\ .driver =3D "intel-hda",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index def40cd545..49b45bb79d 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -330,6 +330,9 @@ extern const size_t pc_compat_2_4_len; extern GlobalProperty pc_compat_2_3[]; extern const size_t pc_compat_2_3_len; =20 +extern GlobalProperty pc_compat_2_2[]; +extern const size_t pc_compat_2_2_len; + /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. */ @@ -350,100 +353,6 @@ extern const size_t pc_compat_2_3_len; .value =3D "QEMU Virtual CPU version " v,\ }, =20 -#define PC_COMPAT_2_2 \ - HW_COMPAT_2_2 \ - PC_CPU_MODEL_IDS("2.2.0") \ - {\ - .driver =3D "kvm64" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "kvm32" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Conroe" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Penryn" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Nehalem" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Westmere" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "SandyBridge" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Haswell" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Broadwell" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G1" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G2" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G3" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G4" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Opteron_G5" "-" TYPE_X86_CPU,\ - .property =3D "vme",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Haswell" "-" TYPE_X86_CPU,\ - .property =3D "f16c",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Haswell" "-" TYPE_X86_CPU,\ - .property =3D "rdrand",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Broadwell" "-" TYPE_X86_CPU,\ - .property =3D "f16c",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Broadwell" "-" TYPE_X86_CPU,\ - .property =3D "rdrand",\ - .value =3D "off",\ - }, - #define PC_COMPAT_2_1 \ HW_COMPAT_2_1 \ PC_CPU_MODEL_IDS("2.1.0") \ diff --git a/hw/core/machine.c b/hw/core/machine.c index 449f7ec8f6..8f387e9063 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -296,6 +296,9 @@ GlobalProperty hw_compat_2_3[] =3D { }; const size_t hw_compat_2_3_len =3D G_N_ELEMENTS(hw_compat_2_3); =20 +GlobalProperty hw_compat_2_2[] =3D {}; +const size_t hw_compat_2_2_len =3D G_N_ELEMENTS(hw_compat_2_2); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index c49fceed8e..aeba5a770e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -435,6 +435,101 @@ GlobalProperty pc_compat_2_3[] =3D { }; const size_t pc_compat_2_3_len =3D G_N_ELEMENTS(pc_compat_2_3); =20 +GlobalProperty pc_compat_2_2[] =3D { + PC_CPU_MODEL_IDS("2.2.0") + { + .driver =3D "kvm64" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "kvm32" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Conroe" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Penryn" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Nehalem" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Westmere" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "SandyBridge" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Haswell" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Broadwell" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Opteron_G1" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Opteron_G2" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Opteron_G3" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Opteron_G4" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Opteron_G5" "-" TYPE_X86_CPU, + .property =3D "vme", + .value =3D "off", + }, + { + .driver =3D "Haswell" "-" TYPE_X86_CPU, + .property =3D "f16c", + .value =3D "off", + }, + { + .driver =3D "Haswell" "-" TYPE_X86_CPU, + .property =3D "rdrand", + .value =3D "off", + }, + { + .driver =3D "Broadwell" "-" TYPE_X86_CPU, + .property =3D "f16c", + .value =3D "off", + }, + { + .driver =3D "Broadwell" "-" TYPE_X86_CPU, + .property =3D "rdrand", + .value =3D "off", + }, +}; +const size_t pc_compat_2_2_len =3D G_N_ELEMENTS(pc_compat_2_2); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index d06fdf2bb9..6c250e64fc 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -318,14 +318,14 @@ static void pc_compat_2_3_fn(MachineState *machine) } } =20 -static void pc_compat_2_2(MachineState *machine) +static void pc_compat_2_2_fn(MachineState *machine) { pc_compat_2_3_fn(machine); } =20 static void pc_compat_2_1(MachineState *machine) { - pc_compat_2_2(machine); + pc_compat_2_2_fn(machine); x86_cpu_change_kvm_default("svm", NULL); } =20 @@ -578,18 +578,16 @@ DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compa= t_2_3_fn, static void pc_i440fx_2_2_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_2 - }; =20 pc_i440fx_2_3_machine_options(m); m->hw_version =3D "2.2.0"; m->default_machine_opts =3D "firmware=3Dbios-256k.bin,suppress-vmdesc= =3Don"; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_2, hw_compat_2_2_len); + compat_props_add(m->compat_props, pc_compat_2_2, pc_compat_2_2_len); pcmc->rsdp_in_ram =3D false; } =20 -DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2, +DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2_fn, pc_i440fx_2_2_machine_options); =20 static void pc_i440fx_2_1_machine_options(MachineClass *m) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 29f88f2372..2e71eb08e9 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4282,7 +4282,6 @@ DEFINE_SPAPR_MACHINE(2_3, "2.3", false); static void spapr_machine_2_2_class_options(MachineClass *mc) { static GlobalProperty compat[] =3D { - HW_COMPAT_2_2 { .driver =3D TYPE_SPAPR_PCI_HOST_BRIDGE, .property =3D "mem_win_size", @@ -4291,6 +4290,7 @@ static void spapr_machine_2_2_class_options(MachineCl= ass *mc) }; =20 spapr_machine_2_3_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_2, hw_compat_2_2_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); mc->default_machine_opts =3D "modern-hotplug-events=3Doff,suppress-vmd= esc=3Don"; } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383920493393.6076267302054; Fri, 21 Dec 2018 01:18:40 -0800 (PST) Received: from localhost ([::1]:44424 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGwz-0006EJ-Un for importer@patchew.org; Fri, 21 Dec 2018 04:18:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGkx-0004Db-R6 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGks-00020H-0V for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33652) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGkr-0001zH-Om for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:01 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1C2DE99CE3 for ; Fri, 21 Dec 2018 09:06:01 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3EB7A271A5; Fri, 21 Dec 2018 09:05:57 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:01 +0400 Message-Id: <20181221090410.27250-20-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 21 Dec 2018 09:06:01 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 19/28] compat: replace PC_COMPAT_2_1 & HW_COMPAT_2_1 macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. I decided to rename the conflicting pc_compat_2_1() function with pc_compat_2_1_fn(). Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/boards.h | 3 +++ include/hw/compat.h | 31 ------------------------------- include/hw/i386/pc.h | 17 +++-------------- hw/core/machine.c | 33 +++++++++++++++++++++++++++++++++ hw/i386/pc.c | 15 +++++++++++++++ hw/i386/pc_piix.c | 12 +++++------- hw/ppc/spapr.c | 6 +----- 7 files changed, 60 insertions(+), 57 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 0b0a1f4079..d4aca54968 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -326,4 +326,7 @@ extern const size_t hw_compat_2_3_len; extern GlobalProperty hw_compat_2_2[]; extern const size_t hw_compat_2_2_len; =20 +extern GlobalProperty hw_compat_2_1[]; +extern const size_t hw_compat_2_1_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 3bd91908e4..b2d0bdd599 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,35 +1,4 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H =20 -#define HW_COMPAT_2_1 \ - {\ - .driver =3D "intel-hda",\ - .property =3D "old_msi_addr",\ - .value =3D "on",\ - },{\ - .driver =3D "VGA",\ - .property =3D "qemu-extended-regs",\ - .value =3D "off",\ - },{\ - .driver =3D "secondary-vga",\ - .property =3D "qemu-extended-regs",\ - .value =3D "off",\ - },{\ - .driver =3D "virtio-scsi-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "usb-mouse",\ - .property =3D "usb_version",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "usb-kbd",\ - .property =3D "usb_version",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "virtio-pci",\ - .property =3D "virtio-pci-bus-master-bug-migration",\ - .value =3D "on",\ - }, - #endif /* HW_COMPAT_H */ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 49b45bb79d..784ea7a92c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -333,6 +333,9 @@ extern const size_t pc_compat_2_3_len; extern GlobalProperty pc_compat_2_2[]; extern const size_t pc_compat_2_2_len; =20 +extern GlobalProperty pc_compat_2_1[]; +extern const size_t pc_compat_2_1_len; + /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. */ @@ -353,20 +356,6 @@ extern const size_t pc_compat_2_2_len; .value =3D "QEMU Virtual CPU version " v,\ }, =20 -#define PC_COMPAT_2_1 \ - HW_COMPAT_2_1 \ - PC_CPU_MODEL_IDS("2.1.0") \ - {\ - .driver =3D "coreduo" "-" TYPE_X86_CPU,\ - .property =3D "vmx",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "core2duo" "-" TYPE_X86_CPU,\ - .property =3D "vmx",\ - .value =3D "on",\ - }, - #define PC_COMPAT_2_0 \ PC_CPU_MODEL_IDS("2.0.0") \ {\ diff --git a/hw/core/machine.c b/hw/core/machine.c index 8f387e9063..7570408caa 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -299,6 +299,39 @@ const size_t hw_compat_2_3_len =3D G_N_ELEMENTS(hw_com= pat_2_3); GlobalProperty hw_compat_2_2[] =3D {}; const size_t hw_compat_2_2_len =3D G_N_ELEMENTS(hw_compat_2_2); =20 +GlobalProperty hw_compat_2_1[] =3D { + { + .driver =3D "intel-hda", + .property =3D "old_msi_addr", + .value =3D "on", + },{ + .driver =3D "VGA", + .property =3D "qemu-extended-regs", + .value =3D "off", + },{ + .driver =3D "secondary-vga", + .property =3D "qemu-extended-regs", + .value =3D "off", + },{ + .driver =3D "virtio-scsi-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "usb-mouse", + .property =3D "usb_version", + .value =3D stringify(1), + },{ + .driver =3D "usb-kbd", + .property =3D "usb_version", + .value =3D stringify(1), + },{ + .driver =3D "virtio-pci", + .property =3D "virtio-pci-bus-master-bug-migration", + .value =3D "on", + }, +}; +const size_t hw_compat_2_1_len =3D G_N_ELEMENTS(hw_compat_2_1); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index aeba5a770e..f0c8f54aaf 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -530,6 +530,21 @@ GlobalProperty pc_compat_2_2[] =3D { }; const size_t pc_compat_2_2_len =3D G_N_ELEMENTS(pc_compat_2_2); =20 +GlobalProperty pc_compat_2_1[] =3D { + PC_CPU_MODEL_IDS("2.1.0") + { + .driver =3D "coreduo" "-" TYPE_X86_CPU, + .property =3D "vmx", + .value =3D "on", + }, + { + .driver =3D "core2duo" "-" TYPE_X86_CPU, + .property =3D "vmx", + .value =3D "on", + }, +}; +const size_t pc_compat_2_1_len =3D G_N_ELEMENTS(pc_compat_2_1); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 6c250e64fc..c7b5e0a3ad 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -323,7 +323,7 @@ static void pc_compat_2_2_fn(MachineState *machine) pc_compat_2_3_fn(machine); } =20 -static void pc_compat_2_1(MachineState *machine) +static void pc_compat_2_1_fn(MachineState *machine) { pc_compat_2_2_fn(machine); x86_cpu_change_kvm_default("svm", NULL); @@ -331,7 +331,7 @@ static void pc_compat_2_1(MachineState *machine) =20 static void pc_compat_2_0(MachineState *machine) { - pc_compat_2_1(machine); + pc_compat_2_1_fn(machine); } =20 static void pc_compat_1_7(MachineState *machine) @@ -593,19 +593,17 @@ DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compa= t_2_2_fn, static void pc_i440fx_2_1_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_1 - }; =20 pc_i440fx_2_2_machine_options(m); m->hw_version =3D "2.1.0"; m->default_display =3D NULL; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_1, hw_compat_2_1_len); + compat_props_add(m->compat_props, pc_compat_2_1, pc_compat_2_1_len); pcmc->smbios_uuid_encoded =3D false; pcmc->enforce_aligned_dimm =3D false; } =20 -DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1, +DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1_fn, pc_i440fx_2_1_machine_options); =20 static void pc_i440fx_2_0_machine_options(MachineClass *m) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2e71eb08e9..1c5b0e40b1 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4302,12 +4302,8 @@ DEFINE_SPAPR_MACHINE(2_2, "2.2", false); =20 static void spapr_machine_2_1_class_options(MachineClass *mc) { - static GlobalProperty compat[] =3D { - HW_COMPAT_2_1 - }; - spapr_machine_2_2_class_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_1, hw_compat_2_1_len); } DEFINE_SPAPR_MACHINE(2_1, "2.1", false); =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384601941509.9783493841187; Fri, 21 Dec 2018 01:30:01 -0800 (PST) Received: from localhost ([::1]:44496 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH84-0006MO-Hv for importer@patchew.org; Fri, 21 Dec 2018 04:30:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlF-0004Qu-KJ for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlB-0002Ez-4X for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35652) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGl7-00027A-5l for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:17 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 14ECFC049587 for ; Fri, 21 Dec 2018 09:06:06 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 013DF27CD5; Fri, 21 Dec 2018 09:06:04 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:02 +0400 Message-Id: <20181221090410.27250-21-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:06:06 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 20/28] include: remove compat.h X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The header is now empty. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/compat.h | 4 ---- include/hw/i386/pc.h | 1 - hw/arm/virt.c | 1 - hw/ppc/spapr.c | 1 - hw/s390x/s390-virtio-ccw.c | 1 - 5 files changed, 8 deletions(-) delete mode 100644 include/hw/compat.h diff --git a/include/hw/compat.h b/include/hw/compat.h deleted file mode 100644 index b2d0bdd599..0000000000 --- a/include/hw/compat.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef HW_COMPAT_H -#define HW_COMPAT_H - -#endif /* HW_COMPAT_H */ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 784ea7a92c..6b7bf334cd 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -13,7 +13,6 @@ #include "qemu/bitmap.h" #include "sysemu/sysemu.h" #include "hw/pci/pci.h" -#include "hw/compat.h" #include "hw/mem/pc-dimm.h" #include "hw/mem/nvdimm.h" #include "hw/acpi/acpi_dev_interface.h" diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 5fe2eebb02..9570f06f04 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -43,7 +43,6 @@ #include "sysemu/numa.h" #include "sysemu/sysemu.h" #include "sysemu/kvm.h" -#include "hw/compat.h" #include "hw/loader.h" #include "exec/address-spaces.h" #include "qemu/bitops.h" diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 1c5b0e40b1..653a4528ac 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -70,7 +70,6 @@ #include "hw/nmi.h" #include "hw/intc/intc.h" =20 -#include "hw/compat.h" #include "qemu/cutils.h" #include "hw/ppc/spapr_cpu_core.h" #include "hw/mem/memory-device.h" diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index bf5f2f463c..c737507053 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -28,7 +28,6 @@ #include "hw/s390x/storage-keys.h" #include "hw/s390x/storage-attributes.h" #include "hw/s390x/event-facility.h" -#include "hw/compat.h" #include "ipl.h" #include "hw/s390x/s390-virtio-ccw.h" #include "hw/s390x/css-bridge.h" --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384081416241.2126299817412; Fri, 21 Dec 2018 01:21:21 -0800 (PST) Received: from localhost ([::1]:44438 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGzf-0008IA-Rc for importer@patchew.org; Fri, 21 Dec 2018 04:21:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlH-0004Sw-LO for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlF-0002IB-1f for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:27 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35386) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlC-0002B4-RB for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:23 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4BAFA8667E for ; Fri, 21 Dec 2018 09:06:12 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4704370125; Fri, 21 Dec 2018 09:06:09 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:03 +0400 Message-Id: <20181221090410.27250-22-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 21 Dec 2018 09:06:12 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 21/28] compat: remove remaining PC_COMPAT macros X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Use static arrays instead. I decided to rename the conflicting pc_compat_2_1() function with pc_compat_2_1_fn(). Suggested-by: Eduardo Habkost Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/i386/pc.h | 236 +++---------------------------------------- hw/i386/pc.c | 232 ++++++++++++++++++++++++++++++++++++++++++ hw/i386/pc_piix.c | 57 ++++------- 3 files changed, 267 insertions(+), 258 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 6b7bf334cd..84720bede9 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -335,6 +335,21 @@ extern const size_t pc_compat_2_2_len; extern GlobalProperty pc_compat_2_1[]; extern const size_t pc_compat_2_1_len; =20 +extern GlobalProperty pc_compat_2_0[]; +extern const size_t pc_compat_2_0_len; + +extern GlobalProperty pc_compat_1_7[]; +extern const size_t pc_compat_1_7_len; + +extern GlobalProperty pc_compat_1_6[]; +extern const size_t pc_compat_1_6_len; + +extern GlobalProperty pc_compat_1_5[]; +extern const size_t pc_compat_1_5_len; + +extern GlobalProperty pc_compat_1_4[]; +extern const size_t pc_compat_1_4_len; + /* Helper for setting model-id for CPU models that changed model-id * depending on QEMU versions up to QEMU 2.4. */ @@ -355,227 +370,6 @@ extern const size_t pc_compat_2_1_len; .value =3D "QEMU Virtual CPU version " v,\ }, =20 -#define PC_COMPAT_2_0 \ - PC_CPU_MODEL_IDS("2.0.0") \ - {\ - .driver =3D "virtio-scsi-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D "PIIX4_PM",\ - .property =3D "memory-hotplug-support",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "apic",\ - .property =3D "version",\ - .value =3D stringify(0x11),\ - },\ - {\ - .driver =3D "nec-usb-xhci",\ - .property =3D "superspeed-ports-first",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "nec-usb-xhci",\ - .property =3D "force-pcie-endcap",\ - .value =3D "on",\ - },\ - {\ - .driver =3D "pci-serial",\ - .property =3D "prog_if",\ - .value =3D stringify(0),\ - },\ - {\ - .driver =3D "pci-serial-2x",\ - .property =3D "prog_if",\ - .value =3D stringify(0),\ - },\ - {\ - .driver =3D "pci-serial-4x",\ - .property =3D "prog_if",\ - .value =3D stringify(0),\ - },\ - {\ - .driver =3D "virtio-net-pci",\ - .property =3D "guest_announce",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "ICH9-LPC",\ - .property =3D "memory-hotplug-support",\ - .value =3D "off",\ - },{\ - .driver =3D "xio3130-downstream",\ - .property =3D COMPAT_PROP_PCP,\ - .value =3D "off",\ - },{\ - .driver =3D "ioh3420",\ - .property =3D COMPAT_PROP_PCP,\ - .value =3D "off",\ - }, - -#define PC_COMPAT_1_7 \ - PC_CPU_MODEL_IDS("1.7.0") \ - {\ - .driver =3D TYPE_USB_DEVICE,\ - .property =3D "msos-desc",\ - .value =3D "no",\ - },\ - {\ - .driver =3D "PIIX4_PM",\ - .property =3D "acpi-pci-hotplug-with-bridge-support",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "hpet",\ - .property =3D HPET_INTCAP,\ - .value =3D stringify(4),\ - }, - -#define PC_COMPAT_1_6 \ - PC_CPU_MODEL_IDS("1.6.0") \ - {\ - .driver =3D "e1000",\ - .property =3D "mitigation",\ - .value =3D "off",\ - },{\ - .driver =3D "qemu64-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "qemu32-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(3),\ - },{\ - .driver =3D "i440FX-pcihost",\ - .property =3D "short_root_bus",\ - .value =3D stringify(1),\ - },{\ - .driver =3D "q35-pcihost",\ - .property =3D "short_root_bus",\ - .value =3D stringify(1),\ - }, - -#define PC_COMPAT_1_5 \ - PC_CPU_MODEL_IDS("1.5.0") \ - {\ - .driver =3D "Conroe-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "Conroe-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "Penryn-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "Penryn-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "Nehalem-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "Nehalem-" TYPE_X86_CPU,\ - .property =3D "min-level",\ - .value =3D stringify(2),\ - },{\ - .driver =3D "virtio-net-pci",\ - .property =3D "any_layout",\ - .value =3D "off",\ - },{\ - .driver =3D TYPE_X86_CPU,\ - .property =3D "pmu",\ - .value =3D "on",\ - },{\ - .driver =3D "i440FX-pcihost",\ - .property =3D "short_root_bus",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "q35-pcihost",\ - .property =3D "short_root_bus",\ - .value =3D stringify(0),\ - }, - -#define PC_COMPAT_1_4 \ - PC_CPU_MODEL_IDS("1.4.0") \ - {\ - .driver =3D "scsi-hd",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "scsi-cd",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "scsi-disk",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "ide-hd",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "ide-cd",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "ide-drive",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "virtio-blk-pci",\ - .property =3D "discard_granularity",\ - .value =3D stringify(0),\ - },{\ - .driver =3D "virtio-serial-pci",\ - .property =3D "vectors",\ - /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string */\ - .value =3D stringify(0xFFFFFFFF),\ - },{ \ - .driver =3D "virtio-net-pci", \ - .property =3D "ctrl_guest_offloads", \ - .value =3D "off", \ - },{\ - .driver =3D "e1000",\ - .property =3D "romfile",\ - .value =3D "pxe-e1000.rom",\ - },{\ - .driver =3D "ne2k_pci",\ - .property =3D "romfile",\ - .value =3D "pxe-ne2k_pci.rom",\ - },{\ - .driver =3D "pcnet",\ - .property =3D "romfile",\ - .value =3D "pxe-pcnet.rom",\ - },{\ - .driver =3D "rtl8139",\ - .property =3D "romfile",\ - .value =3D "pxe-rtl8139.rom",\ - },{\ - .driver =3D "virtio-net-pci",\ - .property =3D "romfile",\ - .value =3D "pxe-virtio.rom",\ - },{\ - .driver =3D "486-" TYPE_X86_CPU,\ - .property =3D "model",\ - .value =3D stringify(0),\ - },\ - {\ - .driver =3D "n270" "-" TYPE_X86_CPU,\ - .property =3D "movbe",\ - .value =3D "off",\ - },\ - {\ - .driver =3D "Westmere" "-" TYPE_X86_CPU,\ - .property =3D "pclmulqdq",\ - .value =3D "off",\ - }, - #define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \ static void pc_machine_##suffix##_class_init(ObjectClass *oc, void *da= ta) \ { \ diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f0c8f54aaf..76c7f84c37 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -72,6 +72,7 @@ #include "qapi/visitor.h" #include "qom/cpu.h" #include "hw/nmi.h" +#include "hw/usb.h" #include "hw/i386/intel_iommu.h" #include "hw/net/ne2000-isa.h" =20 @@ -545,6 +546,237 @@ GlobalProperty pc_compat_2_1[] =3D { }; const size_t pc_compat_2_1_len =3D G_N_ELEMENTS(pc_compat_2_1); =20 +GlobalProperty pc_compat_2_0[] =3D { + PC_CPU_MODEL_IDS("2.0.0") + { + .driver =3D "virtio-scsi-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D "PIIX4_PM", + .property =3D "memory-hotplug-support", + .value =3D "off", + }, + { + .driver =3D "apic", + .property =3D "version", + .value =3D stringify(0x11), + }, + { + .driver =3D "nec-usb-xhci", + .property =3D "superspeed-ports-first", + .value =3D "off", + }, + { + .driver =3D "nec-usb-xhci", + .property =3D "force-pcie-endcap", + .value =3D "on", + }, + { + .driver =3D "pci-serial", + .property =3D "prog_if", + .value =3D stringify(0), + }, + { + .driver =3D "pci-serial-2x", + .property =3D "prog_if", + .value =3D stringify(0), + }, + { + .driver =3D "pci-serial-4x", + .property =3D "prog_if", + .value =3D stringify(0), + }, + { + .driver =3D "virtio-net-pci", + .property =3D "guest_announce", + .value =3D "off", + }, + { + .driver =3D "ICH9-LPC", + .property =3D "memory-hotplug-support", + .value =3D "off", + },{ + .driver =3D "xio3130-downstream", + .property =3D COMPAT_PROP_PCP, + .value =3D "off", + },{ + .driver =3D "ioh3420", + .property =3D COMPAT_PROP_PCP, + .value =3D "off", + }, +}; +const size_t pc_compat_2_0_len =3D G_N_ELEMENTS(pc_compat_2_0); + +GlobalProperty pc_compat_1_7[] =3D { + PC_CPU_MODEL_IDS("1.7.0") + { + .driver =3D TYPE_USB_DEVICE, + .property =3D "msos-desc", + .value =3D "no", + }, + { + .driver =3D "PIIX4_PM", + .property =3D "acpi-pci-hotplug-with-bridge-support", + .value =3D "off", + }, + { + .driver =3D "hpet", + .property =3D HPET_INTCAP, + .value =3D stringify(4), + }, +}; +const size_t pc_compat_1_7_len =3D G_N_ELEMENTS(pc_compat_1_7); + +GlobalProperty pc_compat_1_6[] =3D { + PC_CPU_MODEL_IDS("1.6.0") + { + .driver =3D "e1000", + .property =3D "mitigation", + .value =3D "off", + },{ + .driver =3D "qemu64-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(2), + },{ + .driver =3D "qemu32-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(3), + },{ + .driver =3D "i440FX-pcihost", + .property =3D "short_root_bus", + .value =3D stringify(1), + },{ + .driver =3D "q35-pcihost", + .property =3D "short_root_bus", + .value =3D stringify(1), + }, +}; +const size_t pc_compat_1_6_len =3D G_N_ELEMENTS(pc_compat_1_6); + +GlobalProperty pc_compat_1_5[] =3D { + PC_CPU_MODEL_IDS("1.5.0") + { + .driver =3D "Conroe-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(2), + },{ + .driver =3D "Conroe-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(2), + },{ + .driver =3D "Penryn-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(2), + },{ + .driver =3D "Penryn-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(2), + },{ + .driver =3D "Nehalem-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(2), + },{ + .driver =3D "Nehalem-" TYPE_X86_CPU, + .property =3D "min-level", + .value =3D stringify(2), + },{ + .driver =3D "virtio-net-pci", + .property =3D "any_layout", + .value =3D "off", + },{ + .driver =3D TYPE_X86_CPU, + .property =3D "pmu", + .value =3D "on", + },{ + .driver =3D "i440FX-pcihost", + .property =3D "short_root_bus", + .value =3D stringify(0), + },{ + .driver =3D "q35-pcihost", + .property =3D "short_root_bus", + .value =3D stringify(0), + }, +}; +const size_t pc_compat_1_5_len =3D G_N_ELEMENTS(pc_compat_1_5); + +GlobalProperty pc_compat_1_4[] =3D { + PC_CPU_MODEL_IDS("1.4.0") + { + .driver =3D "scsi-hd", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "scsi-cd", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "scsi-disk", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "ide-hd", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "ide-cd", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "ide-drive", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "virtio-blk-pci", + .property =3D "discard_granularity", + .value =3D stringify(0), + },{ + .driver =3D "virtio-serial-pci", + .property =3D "vectors", + /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string */ + .value =3D stringify(0xFFFFFFFF), + },{ + .driver =3D "virtio-net-pci", + .property =3D "ctrl_guest_offloads", + .value =3D "off", + },{ + .driver =3D "e1000", + .property =3D "romfile", + .value =3D "pxe-e1000.rom", + },{ + .driver =3D "ne2k_pci", + .property =3D "romfile", + .value =3D "pxe-ne2k_pci.rom", + },{ + .driver =3D "pcnet", + .property =3D "romfile", + .value =3D "pxe-pcnet.rom", + },{ + .driver =3D "rtl8139", + .property =3D "romfile", + .value =3D "pxe-rtl8139.rom", + },{ + .driver =3D "virtio-net-pci", + .property =3D "romfile", + .value =3D "pxe-virtio.rom", + },{ + .driver =3D "486-" TYPE_X86_CPU, + .property =3D "model", + .value =3D stringify(0), + }, + { + .driver =3D "n270" "-" TYPE_X86_CPU, + .property =3D "movbe", + .value =3D "off", + }, + { + .driver =3D "Westmere" "-" TYPE_X86_CPU, + .property =3D "pclmulqdq", + .value =3D "off", + }, +}; +const size_t pc_compat_1_4_len =3D G_N_ELEMENTS(pc_compat_1_4); + void gsi_handler(void *opaque, int n, int level) { GSIState *s =3D opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index c7b5e0a3ad..1c77119877 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -329,35 +329,35 @@ static void pc_compat_2_1_fn(MachineState *machine) x86_cpu_change_kvm_default("svm", NULL); } =20 -static void pc_compat_2_0(MachineState *machine) +static void pc_compat_2_0_fn(MachineState *machine) { pc_compat_2_1_fn(machine); } =20 -static void pc_compat_1_7(MachineState *machine) +static void pc_compat_1_7_fn(MachineState *machine) { - pc_compat_2_0(machine); + pc_compat_2_0_fn(machine); x86_cpu_change_kvm_default("x2apic", NULL); } =20 -static void pc_compat_1_6(MachineState *machine) +static void pc_compat_1_6_fn(MachineState *machine) { - pc_compat_1_7(machine); + pc_compat_1_7_fn(machine); } =20 -static void pc_compat_1_5(MachineState *machine) +static void pc_compat_1_5_fn(MachineState *machine) { - pc_compat_1_6(machine); + pc_compat_1_6_fn(machine); } =20 -static void pc_compat_1_4(MachineState *machine) +static void pc_compat_1_4_fn(MachineState *machine) { - pc_compat_1_5(machine); + pc_compat_1_5_fn(machine); } =20 static void pc_compat_1_3(MachineState *machine) { - pc_compat_1_4(machine); + pc_compat_1_4_fn(machine); enable_compat_apic_id_mode(); } =20 @@ -609,13 +609,10 @@ DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compa= t_2_1_fn, static void pc_i440fx_2_0_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_2_0 - }; =20 pc_i440fx_2_1_machine_options(m); m->hw_version =3D "2.0.0"; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, pc_compat_2_0, pc_compat_2_0_len); pcmc->smbios_legacy_mode =3D true; pcmc->has_reserved_memory =3D false; /* This value depends on the actual DSDT and SSDT compiled into @@ -638,73 +635,59 @@ static void pc_i440fx_2_0_machine_options(MachineClas= s *m) pcmc->acpi_data_size =3D 0x10000; } =20 -DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0, +DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0_fn, pc_i440fx_2_0_machine_options); =20 static void pc_i440fx_1_7_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_1_7 - }; =20 pc_i440fx_2_0_machine_options(m); m->hw_version =3D "1.7.0"; m->default_machine_opts =3D NULL; m->option_rom_has_mr =3D true; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, pc_compat_1_7, pc_compat_1_7_len); pcmc->smbios_defaults =3D false; pcmc->gigabyte_align =3D false; pcmc->legacy_acpi_table_size =3D 6414; } =20 -DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7, +DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7_fn, pc_i440fx_1_7_machine_options); =20 static void pc_i440fx_1_6_machine_options(MachineClass *m) { PCMachineClass *pcmc =3D PC_MACHINE_CLASS(m); - static GlobalProperty compat[] =3D { - PC_COMPAT_1_6 - }; =20 pc_i440fx_1_7_machine_options(m); m->hw_version =3D "1.6.0"; m->rom_file_has_mr =3D false; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, pc_compat_1_6, pc_compat_1_6_len); pcmc->has_acpi_build =3D false; } =20 -DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6, +DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6_fn, pc_i440fx_1_6_machine_options); =20 static void pc_i440fx_1_5_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_1_5 - }; - pc_i440fx_1_6_machine_options(m); m->hw_version =3D "1.5.0"; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, pc_compat_1_5, pc_compat_1_5_len); } =20 -DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5, +DEFINE_I440FX_MACHINE(v1_5, "pc-i440fx-1.5", pc_compat_1_5_fn, pc_i440fx_1_5_machine_options); =20 static void pc_i440fx_1_4_machine_options(MachineClass *m) { - static GlobalProperty compat[] =3D { - PC_COMPAT_1_4 - }; - pc_i440fx_1_5_machine_options(m); m->hw_version =3D "1.4.0"; m->hot_add_cpu =3D NULL; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, pc_compat_1_4, pc_compat_1_4_len); } =20 -DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4, +DEFINE_I440FX_MACHINE(v1_4, "pc-i440fx-1.4", pc_compat_1_4_fn, pc_i440fx_1_4_machine_options); =20 static void pc_i440fx_1_3_machine_options(MachineClass *m) --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384238146886.931495306968; Fri, 21 Dec 2018 01:23:58 -0800 (PST) Received: from localhost ([::1]:44454 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH2C-0001jD-Iu for importer@patchew.org; Fri, 21 Dec 2018 04:23:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38623) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlN-0004YT-3A for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlH-0002KJ-Ly for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52168) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlF-0002El-P5 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:27 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A089736887 for ; Fri, 21 Dec 2018 09:06:20 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4ECCE63BAE; Fri, 21 Dec 2018 09:06:15 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:04 +0400 Message-Id: <20181221090410.27250-23-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 21 Dec 2018 09:06:20 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 22/28] qdev: make a separate helper function to apply compat properties X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" This will allow to apply compat properties on other objects than QDev easil= y. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov --- include/hw/qdev-core.h | 2 ++ hw/core/qdev.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 84e612f473..5989fb6565 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -422,6 +422,8 @@ const char *qdev_fw_name(DeviceState *dev); =20 Object *qdev_get_machine(void); =20 +void object_apply_compat_props(Object *obj); + /* FIXME: make this a link<> */ void qdev_set_parent_bus(DeviceState *dev, BusState *bus); =20 diff --git a/hw/core/qdev.c b/hw/core/qdev.c index d510340bac..3769a2bccb 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -970,7 +970,7 @@ static void device_initfn(Object *obj) QLIST_INIT(&dev->gpios); } =20 -static void device_post_init(Object *obj) +void object_apply_compat_props(Object *obj) { if (object_dynamic_cast(qdev_get_machine(), TYPE_MACHINE)) { MachineState *m =3D MACHINE(qdev_get_machine()); @@ -982,7 +982,11 @@ static void device_post_init(Object *obj) } object_apply_global_props(obj, mc->compat_props, &error_abort); } +} =20 +static void device_post_init(Object *obj) +{ + object_apply_compat_props(obj); qdev_prop_set_globals(DEVICE(obj)); } =20 --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383971498541.7839365075662; Fri, 21 Dec 2018 01:19:31 -0800 (PST) Received: from localhost ([::1]:44426 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGxt-0006wS-Nx for importer@patchew.org; Fri, 21 Dec 2018 04:19:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38564) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlJ-0004V8-Lu for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlI-0002Ko-1e for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:29 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35848) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlH-0002Is-L9 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:27 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8D08AC0798FC for ; Fri, 21 Dec 2018 09:06:25 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3AD7F4AC; Fri, 21 Dec 2018 09:06:23 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:05 +0400 Message-Id: <20181221090410.27250-24-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:06:25 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 23/28] qdev: all globals are now user-provided X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" All globals are now either provided via -global or through -cpu features (CPU features are implemented by registering globals). If the global isn't being used, it should warn in either case. We can thus consider that all global_props are "user-provided" globals. No need to track this per-globals anymore. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck --- include/hw/qdev-core.h | 3 -- hw/core/qdev-properties.c | 4 --- tests/test-qdev-global-props.c | 57 ++++------------------------------ vl.c | 1 - 4 files changed, 6 insertions(+), 59 deletions(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 5989fb6565..86b05baeeb 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -249,8 +249,6 @@ struct PropertyInfo { =20 /** * GlobalProperty: - * @user_provided: Set to true if property comes from user-provided config - * (command-line or config file). * @used: Set to true if property was used when initializing a device. * @errp: Error destination, used like first argument of error_setg() * in case property setting fails later. If @errp is NULL, we @@ -262,7 +260,6 @@ typedef struct GlobalProperty { const char *driver; const char *property; const char *value; - bool user_provided; bool used; Error **errp; } GlobalProperty; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index bd84c4ea4c..43c30a57f4 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1192,9 +1192,6 @@ int qdev_prop_check_globals(void) if (prop->used) { continue; } - if (!prop->user_provided) { - continue; - } oc =3D object_class_by_name(prop->driver); oc =3D object_class_dynamic_cast(oc, TYPE_DEVICE); if (!oc) { @@ -1233,7 +1230,6 @@ void qdev_prop_set_globals(DeviceState *dev) if (!dev->hotplugged && prop->errp) { error_propagate(prop->errp, err); } else { - assert(prop->user_provided); warn_report_err(err); } } diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c index b1eb505442..60231b1372 100644 --- a/tests/test-qdev-global-props.c +++ b/tests/test-qdev-global-props.c @@ -216,12 +216,12 @@ static void test_dynamic_globalprop_subprocess(void) { MyType *mt; static GlobalProperty props[] =3D { - { TYPE_DYNAMIC_PROPS, "prop1", "101", true }, - { TYPE_DYNAMIC_PROPS, "prop2", "102", true }, - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", true }, - { TYPE_UNUSED_HOTPLUG, "prop4", "104", true }, - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", true }, - { TYPE_NONDEVICE, "prop6", "106", true }, + { TYPE_DYNAMIC_PROPS, "prop1", "101", }, + { TYPE_DYNAMIC_PROPS, "prop2", "102", }, + { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103", }, + { TYPE_UNUSED_HOTPLUG, "prop4", "104", }, + { TYPE_UNUSED_NOHOTPLUG, "prop5", "105", }, + { TYPE_NONDEVICE, "prop6", "106", }, {} }; int global_error; @@ -256,46 +256,6 @@ static void test_dynamic_globalprop(void) g_test_trap_assert_stdout(""); } =20 -/* Test setting of dynamic properties using user_provided=3Dfalse properti= es */ -static void test_dynamic_globalprop_nouser_subprocess(void) -{ - MyType *mt; - static GlobalProperty props[] =3D { - { TYPE_DYNAMIC_PROPS, "prop1", "101" }, - { TYPE_DYNAMIC_PROPS, "prop2", "102" }, - { TYPE_DYNAMIC_PROPS"-bad", "prop3", "103" }, - { TYPE_UNUSED_HOTPLUG, "prop4", "104" }, - { TYPE_UNUSED_NOHOTPLUG, "prop5", "105" }, - { TYPE_NONDEVICE, "prop6", "106" }, - {} - }; - int global_error; - - register_global_properties(props); - - mt =3D DYNAMIC_TYPE(object_new(TYPE_DYNAMIC_PROPS)); - qdev_init_nofail(DEVICE(mt)); - - g_assert_cmpuint(mt->prop1, =3D=3D, 101); - g_assert_cmpuint(mt->prop2, =3D=3D, 102); - global_error =3D qdev_prop_check_globals(); - g_assert_cmpuint(global_error, =3D=3D, 0); - g_assert(props[0].used); - g_assert(props[1].used); - g_assert(!props[2].used); - g_assert(!props[3].used); - g_assert(!props[4].used); - g_assert(!props[5].used); -} - -static void test_dynamic_globalprop_nouser(void) -{ - g_test_trap_subprocess("/qdev/properties/dynamic/global/nouser/subproc= ess", 0, 0); - g_test_trap_assert_passed(); - g_test_trap_assert_stderr(""); - g_test_trap_assert_stdout(""); -} - /* Test if global props affecting subclasses are applied in the right orde= r */ static void test_subclass_global_props(void) { @@ -345,11 +305,6 @@ int main(int argc, char **argv) g_test_add_func("/qdev/properties/dynamic/global", test_dynamic_globalprop); =20 - g_test_add_func("/qdev/properties/dynamic/global/nouser/subprocess", - test_dynamic_globalprop_nouser_subprocess); - g_test_add_func("/qdev/properties/dynamic/global/nouser", - test_dynamic_globalprop_nouser); - g_test_add_func("/qdev/properties/global/subclass", test_subclass_global_props); =20 diff --git a/vl.c b/vl.c index aa0386952e..7a99a93908 100644 --- a/vl.c +++ b/vl.c @@ -2952,7 +2952,6 @@ static int global_init_func(void *opaque, QemuOpts *o= pts, Error **errp) g->driver =3D qemu_opt_get(opts, "driver"); g->property =3D qemu_opt_get(opts, "property"); g->value =3D qemu_opt_get(opts, "value"); - g->user_provided =3D true; g->errp =3D &error_fatal; qdev_prop_register_global(g); return 0; --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384367511902.3213294238183; Fri, 21 Dec 2018 01:26:07 -0800 (PST) Received: from localhost ([::1]:44482 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH4I-0003Ty-5t for importer@patchew.org; Fri, 21 Dec 2018 04:26:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38629) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlN-0004Yj-B0 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlK-0002NQ-OM for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35884) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlK-0002Ml-Hw for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:30 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E7A31C049587 for ; Fri, 21 Dec 2018 09:06:29 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 132A517555; Fri, 21 Dec 2018 09:06:28 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:06 +0400 Message-Id: <20181221090410.27250-25-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:06:29 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 24/28] qdev-props: convert global_props to GPtrArray X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" A step towards being able to call a common function, object_apply_global_props(). Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck --- hw/core/qdev-properties.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 43c30a57f4..3467e0485c 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1173,22 +1173,32 @@ void qdev_prop_set_ptr(DeviceState *dev, const char= *name, void *value) *ptr =3D value; } =20 -static GList *global_props; +static GPtrArray *global_props(void) +{ + static GPtrArray *gp; + + if (!gp) { + gp =3D g_ptr_array_new(); + } + + return gp; +} =20 void qdev_prop_register_global(GlobalProperty *prop) { - global_props =3D g_list_append(global_props, prop); + g_ptr_array_add(global_props(), prop); } =20 int qdev_prop_check_globals(void) { - GList *l; - int ret =3D 0; + int i, ret =3D 0; =20 - for (l =3D global_props; l; l =3D l->next) { - GlobalProperty *prop =3D l->data; + for (i =3D 0; i < global_props()->len; i++) { + GlobalProperty *prop; ObjectClass *oc; DeviceClass *dc; + + prop =3D g_ptr_array_index(global_props(), i); if (prop->used) { continue; } @@ -1213,12 +1223,13 @@ int qdev_prop_check_globals(void) =20 void qdev_prop_set_globals(DeviceState *dev) { - GList *l; + int i; =20 - for (l =3D global_props; l; l =3D l->next) { - GlobalProperty *prop =3D l->data; + for (i =3D 0; i < global_props()->len; i++) { + GlobalProperty *prop; Error *err =3D NULL; =20 + prop =3D g_ptr_array_index(global_props(), i); if (object_dynamic_cast(OBJECT(dev), prop->driver) =3D=3D NULL) { continue; } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384475095383.72240313584155; Fri, 21 Dec 2018 01:27:55 -0800 (PST) Received: from localhost ([::1]:44488 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH61-0004hd-LY for importer@patchew.org; Fri, 21 Dec 2018 04:27:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38670) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlR-0004cK-0p for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlQ-0002Rw-8O for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35904) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlP-0002Qx-W8 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:36 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E97C6C05B01A for ; Fri, 21 Dec 2018 09:06:34 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id BB8944AC; Fri, 21 Dec 2018 09:06:33 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:07 +0400 Message-Id: <20181221090410.27250-26-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 21 Dec 2018 09:06:34 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 25/28] qdev-props: remove errp from GlobalProperty X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" All qdev_prop_register_global() set &error_fatal for errp, except '-rtc driftfix=3Dslew', which arguably should also use &error_fatal, as otherwise failing to apply the property would only report a warning. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck --- include/hw/qdev-core.h | 6 ------ hw/core/qdev-properties.c | 4 ++-- qom/cpu.c | 1 - target/i386/cpu.c | 1 - target/sparc/cpu.c | 1 - vl.c | 1 - 6 files changed, 2 insertions(+), 12 deletions(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 86b05baeeb..b6ce69c4ac 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -250,18 +250,12 @@ struct PropertyInfo { /** * GlobalProperty: * @used: Set to true if property was used when initializing a device. - * @errp: Error destination, used like first argument of error_setg() - * in case property setting fails later. If @errp is NULL, we - * print warnings instead of ignoring errors silently. For - * hotplugged devices, errp is always ignored and warnings are - * printed instead. */ typedef struct GlobalProperty { const char *driver; const char *property; const char *value; bool used; - Error **errp; } GlobalProperty; =20 static inline void diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 3467e0485c..a2d25d3d37 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1238,8 +1238,8 @@ void qdev_prop_set_globals(DeviceState *dev) if (err !=3D NULL) { error_prepend(&err, "can't apply global %s.%s=3D%s: ", prop->driver, prop->property, prop->value); - if (!dev->hotplugged && prop->errp) { - error_propagate(prop->errp, err); + if (!dev->hotplugged) { + error_propagate(&error_fatal, err); } else { warn_report_err(err); } diff --git a/qom/cpu.c b/qom/cpu.c index 9ad1372d57..5442a7323b 100644 --- a/qom/cpu.c +++ b/qom/cpu.c @@ -312,7 +312,6 @@ static void cpu_common_parse_features(const char *typen= ame, char *features, prop->driver =3D typename; prop->property =3D g_strdup(featurestr); prop->value =3D g_strdup(val); - prop->errp =3D &error_fatal; qdev_prop_register_global(prop); } else { error_setg(errp, "Expected key=3Dvalue format, found %s.", diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 677a3bd5fb..fa37203d89 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -3568,7 +3568,6 @@ static void x86_cpu_parse_featurestr(const char *type= name, char *features, prop->driver =3D typename; prop->property =3D g_strdup(name); prop->value =3D g_strdup(val); - prop->errp =3D &error_fatal; qdev_prop_register_global(prop); } =20 diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 0f090ece54..4a4445bdf5 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -111,7 +111,6 @@ cpu_add_feat_as_prop(const char *typename, const char *= name, const char *val) prop->driver =3D typename; prop->property =3D g_strdup(name); prop->value =3D g_strdup(val); - prop->errp =3D &error_fatal; qdev_prop_register_global(prop); } =20 diff --git a/vl.c b/vl.c index 7a99a93908..72a0968fda 100644 --- a/vl.c +++ b/vl.c @@ -2952,7 +2952,6 @@ static int global_init_func(void *opaque, QemuOpts *o= pts, Error **errp) g->driver =3D qemu_opt_get(opts, "driver"); g->property =3D qemu_opt_get(opts, "property"); g->value =3D qemu_opt_get(opts, "value"); - g->errp =3D &error_fatal; qdev_prop_register_global(g); return 0; } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384136832849.8111495919065; Fri, 21 Dec 2018 01:22:16 -0800 (PST) Received: from localhost ([::1]:44441 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH0V-0000UA-P0 for importer@patchew.org; Fri, 21 Dec 2018 04:22:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGll-0004ur-Ok for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGlk-0002dB-Vn for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:57 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47594) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlk-0002VZ-N5 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:56 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8235BC025D27 for ; Fri, 21 Dec 2018 09:06:39 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9A9A270111; Fri, 21 Dec 2018 09:06:38 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:08 +0400 Message-Id: <20181221090410.27250-27-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 21 Dec 2018 09:06:39 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 26/28] qdev-props: call object_apply_global_props() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" It's now possible to use the common function. Teach object_apply_global_props() to warn if Error argument is NULL. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost Reviewed-by: Cornelia Huck --- hw/core/qdev-properties.c | 24 ++---------------------- qom/object.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index a2d25d3d37..6061090dc2 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1223,28 +1223,8 @@ int qdev_prop_check_globals(void) =20 void qdev_prop_set_globals(DeviceState *dev) { - int i; - - for (i =3D 0; i < global_props()->len; i++) { - GlobalProperty *prop; - Error *err =3D NULL; - - prop =3D g_ptr_array_index(global_props(), i); - if (object_dynamic_cast(OBJECT(dev), prop->driver) =3D=3D NULL) { - continue; - } - prop->used =3D true; - object_property_parse(OBJECT(dev), prop->value, prop->property, &e= rr); - if (err !=3D NULL) { - error_prepend(&err, "can't apply global %s.%s=3D%s: ", - prop->driver, prop->property, prop->value); - if (!dev->hotplugged) { - error_propagate(&error_fatal, err); - } else { - warn_report_err(err); - } - } - } + object_apply_global_props(OBJECT(dev), global_props(), + dev->hotplugged ? NULL : &error_fatal); } =20 /* --- 64bit unsigned int 'size' type --- */ diff --git a/qom/object.c b/qom/object.c index dbdab0aead..aa6f3a2a71 100644 --- a/qom/object.c +++ b/qom/object.c @@ -390,7 +390,17 @@ void object_apply_global_props(Object *obj, const GPtr= Array *props, Error **errp if (err !=3D NULL) { error_prepend(&err, "can't apply global %s.%s=3D%s: ", p->driver, p->property, p->value); - error_propagate(errp, err); + /* + * If errp !=3D NULL, propagate error and return. + * If errp =3D=3D NULL, report a warning, but keep going + * with the remaining globals. + */ + if (errp) { + error_propagate(errp, err); + return; + } else { + warn_report_err(err); + } } } } --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545383712717575.070898629265; Fri, 21 Dec 2018 01:15:12 -0800 (PST) Received: from localhost ([::1]:44396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGtj-0003Py-4P for importer@patchew.org; Fri, 21 Dec 2018 04:15:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38771) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGlm-0004vC-3p for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGll-0002dW-4W for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60866) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlk-0002XA-QP for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:57 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6CE7B2F39 for ; Fri, 21 Dec 2018 09:06:44 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id 114E417130; Fri, 21 Dec 2018 09:06:42 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:09 +0400 Message-Id: <20181221090410.27250-28-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 21 Dec 2018 09:06:44 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 27/28] arm: replace instance_post_init() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Replace arm_cpu_post_init() instance callback by calling it from leaf classes, to avoid potential ordering issue with other post_init callbacks. Signed-off-by: Marc-Andr=C3=A9 Lureau Suggested-by: Igor Mammedov Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost --- target/arm/cpu-qom.h | 3 +++ target/arm/cpu.h | 2 ++ target/arm/cpu.c | 30 ++++++++++++++++++++++++------ target/arm/cpu64.c | 24 ++++++++++++++++++++---- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/target/arm/cpu-qom.h b/target/arm/cpu-qom.h index d135ff8e06..2049fa9612 100644 --- a/target/arm/cpu-qom.h +++ b/target/arm/cpu-qom.h @@ -35,6 +35,8 @@ struct arm_boot_info; =20 #define TYPE_ARM_MAX_CPU "max-" TYPE_ARM_CPU =20 +typedef struct ARMCPUInfo ARMCPUInfo; + /** * ARMCPUClass: * @parent_realize: The parent class' realize handler. @@ -47,6 +49,7 @@ typedef struct ARMCPUClass { CPUClass parent_class; /*< public >*/ =20 + const ARMCPUInfo *info; DeviceRealize parent_realize; void (*parent_reset)(CPUState *cpu); } ARMCPUClass; diff --git a/target/arm/cpu.h b/target/arm/cpu.h index c943f35dd9..3aedfeeaf1 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -884,6 +884,8 @@ static inline ARMCPU *arm_env_get_cpu(CPUARMState *env) return container_of(env, ARMCPU, env); } =20 +void arm_cpu_post_init(Object *obj); + uint64_t arm_cpu_mp_affinity(int idx, uint8_t clustersz); =20 #define ENV_GET_CPU(e) CPU(arm_env_get_cpu(e)) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index c8505eaaee..baf430c092 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -740,7 +740,7 @@ static Property arm_cpu_pmsav7_dregion_property =3D static Property arm_cpu_initsvtor_property =3D DEFINE_PROP_UINT32("init-svtor", ARMCPU, init_svtor, 0); =20 -static void arm_cpu_post_init(Object *obj) +void arm_cpu_post_init(Object *obj) { ARMCPU *cpu =3D ARM_CPU(obj); =20 @@ -1457,8 +1457,10 @@ static void cortex_m33_initfn(Object *obj) =20 static void arm_v7m_class_init(ObjectClass *oc, void *data) { + ARMCPUClass *acc =3D ARM_CPU_CLASS(oc); CPUClass *cc =3D CPU_CLASS(oc); =20 + acc->info =3D data; #ifndef CONFIG_USER_ONLY cc->do_interrupt =3D arm_v7m_cpu_do_interrupt; #endif @@ -1959,11 +1961,11 @@ static void arm_max_initfn(Object *obj) =20 #endif /* !defined(CONFIG_USER_ONLY) || !defined(TARGET_AARCH64) */ =20 -typedef struct ARMCPUInfo { +struct ARMCPUInfo { const char *name; void (*initfn)(Object *obj); void (*class_init)(ObjectClass *oc, void *data); -} ARMCPUInfo; +}; =20 static const ARMCPUInfo arm_cpus[] =3D { #if !defined(CONFIG_USER_ONLY) || !defined(TARGET_AARCH64) @@ -2113,6 +2115,7 @@ static void arm_host_initfn(Object *obj) ARMCPU *cpu =3D ARM_CPU(obj); =20 kvm_arm_set_cpu_features_from_host(cpu); + arm_cpu_post_init(ARM_CPU(obj)); } =20 static const TypeInfo host_arm_cpu_type_info =3D { @@ -2127,14 +2130,30 @@ static const TypeInfo host_arm_cpu_type_info =3D { =20 #endif =20 +static void arm_cpu_instance_init(Object *obj) +{ + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(obj); + + acc->info->initfn(obj); + arm_cpu_post_init(obj); +} + +static void cpu_register_class_init(ObjectClass *oc, void *data) +{ + ARMCPUClass *acc =3D ARM_CPU_CLASS(oc); + + acc->info =3D data; +} + static void cpu_register(const ARMCPUInfo *info) { TypeInfo type_info =3D { .parent =3D TYPE_ARM_CPU, .instance_size =3D sizeof(ARMCPU), - .instance_init =3D info->initfn, + .instance_init =3D arm_cpu_instance_init, .class_size =3D sizeof(ARMCPUClass), - .class_init =3D info->class_init, + .class_init =3D info->class_init ?: cpu_register_class_init, + .class_data =3D (void *)info, }; =20 type_info.name =3D g_strdup_printf("%s-" TYPE_ARM_CPU, info->name); @@ -2147,7 +2166,6 @@ static const TypeInfo arm_cpu_type_info =3D { .parent =3D TYPE_CPU, .instance_size =3D sizeof(ARMCPU), .instance_init =3D arm_cpu_initfn, - .instance_post_init =3D arm_cpu_post_init, .instance_finalize =3D arm_cpu_finalizefn, .abstract =3D true, .class_size =3D sizeof(ARMCPUClass), diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 1d57be0c91..4b544a1c58 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -364,11 +364,11 @@ static void aarch64_max_initfn(Object *obj) } } =20 -typedef struct ARMCPUInfo { +struct ARMCPUInfo { const char *name; void (*initfn)(Object *obj); void (*class_init)(ObjectClass *oc, void *data); -} ARMCPUInfo; +}; =20 static const ARMCPUInfo aarch64_cpus[] =3D { { .name =3D "cortex-a57", .initfn =3D aarch64_a57_initfn }, @@ -452,14 +452,30 @@ static void aarch64_cpu_class_init(ObjectClass *oc, v= oid *data) cc->gdb_arch_name =3D aarch64_gdb_arch_name; } =20 +static void aarch64_cpu_instance_init(Object *obj) +{ + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(obj); + + acc->info->initfn(obj); + arm_cpu_post_init(obj); +} + +static void cpu_register_class_init(ObjectClass *oc, void *data) +{ + ARMCPUClass *acc =3D ARM_CPU_CLASS(oc); + + acc->info =3D data; +} + static void aarch64_cpu_register(const ARMCPUInfo *info) { TypeInfo type_info =3D { .parent =3D TYPE_AARCH64_CPU, .instance_size =3D sizeof(ARMCPU), - .instance_init =3D info->initfn, + .instance_init =3D aarch64_cpu_instance_init, .class_size =3D sizeof(ARMCPUClass), - .class_init =3D info->class_init, + .class_init =3D info->class_init ?: cpu_register_class_init, + .class_data =3D (void *)info, }; =20 type_info.name =3D g_strdup_printf("%s-" TYPE_ARM_CPU, info->name); --=20 2.20.1.2.gb21ebb671b From nobody Thu May 16 09:50:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1545384584845916.7349857346767; Fri, 21 Dec 2018 01:29:44 -0800 (PST) Received: from localhost ([::1]:44495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaH7m-00067U-Vh for importer@patchew.org; Fri, 21 Dec 2018 04:29:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38796) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaGln-0004wb-E5 for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:07:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaGll-0002dc-5W for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46946) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gaGlk-0002YV-QU for qemu-devel@nongnu.org; Fri, 21 Dec 2018 04:06:57 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 633A0A3403 for ; Fri, 21 Dec 2018 09:06:49 +0000 (UTC) Received: from localhost (ovpn-112-51.ams2.redhat.com [10.36.112.51]) by smtp.corp.redhat.com (Postfix) with ESMTP id F3A2E17B49; Fri, 21 Dec 2018 09:06:47 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 21 Dec 2018 13:04:10 +0400 Message-Id: <20181221090410.27250-29-marcandre.lureau@redhat.com> In-Reply-To: <20181221090410.27250-1-marcandre.lureau@redhat.com> References: <20181221090410.27250-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 21 Dec 2018 09:06:49 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v7 28/28] hostmem: use object id for memory region name with >= 4.0 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" hostmem-file and hostmem-memfd use the whole object path for the memory region name, and hostname-ram uses only the path component (the object id, or canonical path basename): qemu -m 1024 -object memory-backend-file,id=3Dmem,size=3D1G,mem-path=3D/tmp= /foo -numa node,memdev=3Dmem -monitor stdio (qemu) info ramblock Block Name PSize Offset Used = Total /objects/mem 4 KiB 0x0000000000000000 0x0000000040000000 0x= 0000000040000000 qemu -m 1024 -object memory-backend-memfd,id=3Dmem,size=3D1G -numa node,mem= dev=3Dmem -monitor stdio (qemu) info ramblock Block Name PSize Offset Used = Total /objects/mem 4 KiB 0x0000000000000000 0x0000000040000000 0x= 0000000040000000 qemu -m 1024 -object memory-backend-ram,id=3Dmem,size=3D1G -numa node,memde= v=3Dmem -monitor stdio (qemu) info ramblock Block Name PSize Offset Used = Total mem 4 KiB 0x0000000000000000 0x0000000040000000 0x= 0000000040000000 For consistency, change to use object id for -file and -memfd as well with >=3D 4.0. Having a consistent naming allows to migrate to different hostmem backends. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost --- include/sysemu/hostmem.h | 3 ++- backends/hostmem-file.c | 8 ++++---- backends/hostmem-memfd.c | 2 +- backends/hostmem-ram.c | 9 ++++----- backends/hostmem.c | 36 ++++++++++++++++++++++++++++++++++++ hw/core/machine.c | 12 +++++++++++- 6 files changed, 58 insertions(+), 12 deletions(-) diff --git a/include/sysemu/hostmem.h b/include/sysemu/hostmem.h index 6e6bd2c1cb..a023b372a4 100644 --- a/include/sysemu/hostmem.h +++ b/include/sysemu/hostmem.h @@ -53,7 +53,7 @@ struct HostMemoryBackend { =20 /* protected */ uint64_t size; - bool merge, dump; + bool merge, dump, use_canonical_path; bool prealloc, force_prealloc, is_mapped, share; DECLARE_BITMAP(host_nodes, MAX_NODES + 1); HostMemPolicy policy; @@ -67,5 +67,6 @@ MemoryRegion *host_memory_backend_get_memory(HostMemoryBa= ckend *backend); void host_memory_backend_set_mapped(HostMemoryBackend *backend, bool mappe= d); bool host_memory_backend_is_mapped(HostMemoryBackend *backend); size_t host_memory_backend_pagesize(HostMemoryBackend *memdev); +char *host_memory_backend_get_name(HostMemoryBackend *backend); =20 #endif diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index 78f058dee2..7a34e25c43 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -43,7 +43,7 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Err= or **errp) { HostMemoryBackendFile *fb =3D MEMORY_BACKEND_FILE(backend); #ifdef CONFIG_POSIX - gchar *path; + gchar *name; #endif =20 if (!backend->size) { @@ -58,14 +58,14 @@ file_backend_memory_alloc(HostMemoryBackend *backend, E= rror **errp) error_setg(errp, "-mem-path not supported on this host"); #else backend->force_prealloc =3D mem_prealloc; - path =3D object_get_canonical_path(OBJECT(backend)); + name =3D host_memory_backend_get_name(backend); memory_region_init_ram_from_file(&backend->mr, OBJECT(backend), - path, + name, backend->size, fb->align, (backend->share ? RAM_SHARED : 0) | (fb->is_pmem ? RAM_PMEM : 0), fb->mem_path, errp); - g_free(path); + g_free(name); #endif } =20 diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index 2eb9c827a5..98c9bf3240 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -53,7 +53,7 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, Er= ror **errp) return; } =20 - name =3D object_get_canonical_path(OBJECT(backend)); + name =3D host_memory_backend_get_name(backend); memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), name, backend->size, backend->share, fd, errp); diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c index 7ddd08d370..24b65d9ae3 100644 --- a/backends/hostmem-ram.c +++ b/backends/hostmem-ram.c @@ -16,21 +16,20 @@ =20 #define TYPE_MEMORY_BACKEND_RAM "memory-backend-ram" =20 - static void ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) { - char *path; + char *name; =20 if (!backend->size) { error_setg(errp, "can't create backend with size 0"); return; } =20 - path =3D object_get_canonical_path_component(OBJECT(backend)); - memory_region_init_ram_shared_nomigrate(&backend->mr, OBJECT(backend),= path, + name =3D host_memory_backend_get_name(backend); + memory_region_init_ram_shared_nomigrate(&backend->mr, OBJECT(backend),= name, backend->size, backend->share, errp); - g_free(path); + g_free(name); } =20 static void diff --git a/backends/hostmem.c b/backends/hostmem.c index af800284e0..0c8ef17653 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -28,6 +28,16 @@ QEMU_BUILD_BUG_ON(HOST_MEM_POLICY_BIND !=3D MPOL_BIND); QEMU_BUILD_BUG_ON(HOST_MEM_POLICY_INTERLEAVE !=3D MPOL_INTERLEAVE); #endif =20 +char * +host_memory_backend_get_name(HostMemoryBackend *backend) +{ + if (!backend->use_canonical_path) { + return object_get_canonical_path_component(OBJECT(backend)); + } + + return object_get_canonical_path(OBJECT(backend)); +} + static void host_memory_backend_get_size(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -247,6 +257,11 @@ static void host_memory_backend_init(Object *obj) backend->prealloc =3D mem_prealloc; } =20 +static void host_memory_backend_post_init(Object *obj) +{ + object_apply_compat_props(obj); +} + bool host_memory_backend_mr_inited(HostMemoryBackend *backend) { /* @@ -395,6 +410,23 @@ static void host_memory_backend_set_share(Object *o, b= ool value, Error **errp) backend->share =3D value; } =20 +static bool +host_memory_backend_get_use_canonical_path(Object *obj, Error **errp) +{ + HostMemoryBackend *backend =3D MEMORY_BACKEND(obj); + + return backend->use_canonical_path; +} + +static void +host_memory_backend_set_use_canonical_path(Object *obj, bool value, + Error **errp) +{ + HostMemoryBackend *backend =3D MEMORY_BACKEND(obj); + + backend->use_canonical_path =3D value; +} + static void host_memory_backend_class_init(ObjectClass *oc, void *data) { @@ -441,6 +473,9 @@ host_memory_backend_class_init(ObjectClass *oc, void *d= ata) &error_abort); object_class_property_set_description(oc, "share", "Mark the memory as private to QEMU or shared", &error_abort); + object_class_property_add_bool(oc, "x-use-canonical-path-for-ramblock-= id", + host_memory_backend_get_use_canonical_path, + host_memory_backend_set_use_canonical_path, &error_abort); } =20 static const TypeInfo host_memory_backend_info =3D { @@ -451,6 +486,7 @@ static const TypeInfo host_memory_backend_info =3D { .class_init =3D host_memory_backend_class_init, .instance_size =3D sizeof(HostMemoryBackend), .instance_init =3D host_memory_backend_init, + .instance_post_init =3D host_memory_backend_post_init, .interfaces =3D (InterfaceInfo[]) { { TYPE_USER_CREATABLE }, { } diff --git a/hw/core/machine.c b/hw/core/machine.c index 7570408caa..cba79ef7ff 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -23,7 +23,17 @@ #include "sysemu/qtest.h" #include "hw/pci/pci.h" =20 -GlobalProperty hw_compat_3_1[] =3D {}; +GlobalProperty hw_compat_3_1[] =3D { + { + .driver =3D "memory-backend-file", + .property =3D "x-use-canonical-path-for-ramblock-id", + .value =3D "true", + },{ + .driver =3D "memory-backend-memfd", + .property =3D "x-use-canonical-path-for-ramblock-id", + .value =3D "true", + }, +}; const size_t hw_compat_3_1_len =3D G_N_ELEMENTS(hw_compat_3_1); =20 GlobalProperty hw_compat_3_0[] =3D {}; --=20 2.20.1.2.gb21ebb671b