From nobody Sat May 4 06:06:33 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 1546623183036991.012563836237; Fri, 4 Jan 2019 09:33:03 -0800 (PST) Received: from localhost ([127.0.0.1]:37375 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTL5-0004Lg-EU for importer@patchew.org; Fri, 04 Jan 2019 12:32:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43698) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJ9-0002rL-0j for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:30:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJ7-0000s2-Rc for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:30:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41680) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJ6-0000r2-DI for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:30:53 -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 819B8A4049; Fri, 4 Jan 2019 17:30:51 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id EEE8C19C7E; Fri, 4 Jan 2019 17:30:49 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:15 +0400 Message-Id: <20190104173042.32714-2-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:30:51 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 8353d3c718..f2a20f8148 100644 --- a/vl.c +++ b/vl.c @@ -2997,7 +2997,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 Sat May 4 06:06:33 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 1546623366553995.5408365295267; Fri, 4 Jan 2019 09:36:06 -0800 (PST) Received: from localhost ([127.0.0.1]:37407 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTO9-0008Pe-3A for importer@patchew.org; Fri, 04 Jan 2019 12:36:05 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43731) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJH-0002yf-Iu for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJD-0000vZ-OH for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:03 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40760) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJD-0000uz-DU for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:30:59 -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 AA1EC86641; Fri, 4 Jan 2019 17:30:58 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 73D4A60BE7; Fri, 4 Jan 2019 17:30:54 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:16 +0400 Message-Id: <20190104173042.32714-3-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:30:58 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- include/hw/boards.h | 10 +- hw/arm/virt.c | 45 ++-- hw/i386/pc_piix.c | 474 +++++++++++++++++++++---------------- hw/i386/pc_q35.c | 66 +++++- hw/ppc/spapr.c | 201 ++++++++-------- hw/s390x/s390-virtio-ccw.c | 219 +++++++++-------- 6 files changed, 577 insertions(+), 438 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 362384815e..a5d8ddd68b 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -289,18 +289,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 c2641e56ea..6ecec1cb05 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 7f1cb527b5..ac97097cac 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,302 +708,311 @@ 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"; m->deprecation_reason =3D "use a newer machine type instead"; - 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, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 0a3f3f18e4..9aabae358c 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -321,51 +321,71 @@ 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->default_kernel_irqchip_split =3D false; 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; } @@ -373,65 +393,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 19a07c5c9d..f724a8d57a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4021,13 +4021,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); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); } =20 @@ -4036,15 +4037,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; @@ -4055,25 +4057,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 @@ -4100,8 +4103,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) { @@ -4109,7 +4113,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); @@ -4117,13 +4121,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); @@ -4131,20 +4136,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; @@ -4155,18 +4161,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 @@ -4175,28 +4182,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, @@ -4254,7 +4262,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 @@ -4263,19 +4271,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); @@ -4283,13 +4292,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) { @@ -4297,7 +4307,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); @@ -4305,8 +4315,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) { @@ -4314,7 +4325,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); @@ -4322,37 +4333,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); @@ -4360,13 +4372,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 Sat May 4 06:06:33 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 1546623213652154.9273648677855; Fri, 4 Jan 2019 09:33:33 -0800 (PST) Received: from localhost ([127.0.0.1]:37377 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTLg-0004zX-8n for importer@patchew.org; Fri, 04 Jan 2019 12:33:32 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJM-00035r-Vu for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJK-0000xL-7a for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52826) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJJ-0000wr-Vq for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:06 -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 57D18C057FA3; Fri, 4 Jan 2019 17:31:05 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8BA2D19C7E; Fri, 4 Jan 2019 17:31:02 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:17 +0400 Message-Id: <20190104173042.32714-4-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.32]); Fri, 04 Jan 2019 17:31:05 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 | 81 +++++++++++++++++++++++++------------- hw/i386/pc_q35.c | 33 ++++++++++------ hw/ppc/spapr.c | 42 +++++++++++++------- hw/s390x/s390-virtio-ccw.c | 33 ++++++++++------ vl.c | 1 - 9 files changed, 148 insertions(+), 93 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index a5d8ddd68b..f14c38bb63 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 6ecec1cb05..275ef8bc02 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 4439ea663f..bd644c976b 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 @@ -836,24 +837,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 ac97097cac..a88646a711 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, @@ -900,7 +923,8 @@ static void pc_i440fx_0_15_machine_options(MachineClass= *m) pc_i440fx_1_0_machine_options(m); m->hw_version =3D "0.15"; m->deprecation_reason =3D "use a newer machine type instead"; - 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, @@ -940,7 +964,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, @@ -976,7 +1001,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 @@ -1012,7 +1038,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, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 9aabae358c..4ae6718b74 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -330,7 +330,8 @@ static void pc_q35_3_1_machine_options(MachineClass *m) pc_q35_4_0_machine_options(m); m->default_kernel_irqchip_split =3D false; 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, @@ -343,7 +344,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, @@ -356,7 +358,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, @@ -372,7 +375,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, @@ -385,7 +389,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; } @@ -400,7 +405,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, @@ -413,7 +419,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, @@ -427,7 +434,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, @@ -443,7 +451,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, @@ -459,7 +468,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, @@ -475,7 +485,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 f724a8d57a..f27aa5a09f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4028,7 +4028,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)); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); } =20 @@ -4046,7 +4047,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; @@ -4076,7 +4078,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 @@ -4113,7 +4116,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); @@ -4128,7 +4132,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); @@ -4150,7 +4155,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; @@ -4173,7 +4179,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 @@ -4262,7 +4269,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 @@ -4284,7 +4292,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); @@ -4307,7 +4316,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); @@ -4325,7 +4335,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); @@ -4345,7 +4356,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 @@ -4364,7 +4376,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); @@ -4379,7 +4392,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 f2a20f8148..7baa7a8968 100644 --- a/vl.c +++ b/vl.c @@ -2997,7 +2997,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546623610711365.815200596305; Fri, 4 Jan 2019 09:40:10 -0800 (PST) Received: from localhost ([127.0.0.1]:37437 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTS4-00054w-EY for importer@patchew.org; Fri, 04 Jan 2019 12:40:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJi-0003P8-Hl for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJd-00014L-2f for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60696) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJT-0000zn-Fr for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:17 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3E08988318; Fri, 4 Jan 2019 17:31:12 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1EE145D6A6; Fri, 4 Jan 2019 17:31:08 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:18 +0400 Message-Id: <20190104173042.32714-5-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 04 Jan 2019 17:31: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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- hw/arm/virt.c | 94 +++--- hw/i386/pc_piix.c | 607 ++++++++++++++++++------------------- 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, 637 insertions(+), 716 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 275ef8bc02..19bec3fe59 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 a88646a711..2423428acd 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,332 +698,321 @@ 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"; m->deprecation_reason =3D "use a newer machine type instead"; - 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, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 4ae6718b74..d84614546c 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -321,76 +321,71 @@ 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->default_kernel_irqchip_split =3D false; 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; } @@ -398,95 +393,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 f27aa5a09f..f3b8c18de3 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4021,15 +4021,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)); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); } =20 @@ -4038,17 +4037,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; @@ -4059,27 +4057,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 @@ -4106,18 +4102,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); @@ -4125,15 +4120,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); @@ -4141,22 +4136,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; @@ -4167,20 +4161,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 @@ -4189,29 +4183,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, @@ -4265,12 +4236,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 @@ -4279,21 +4272,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); @@ -4301,23 +4294,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); @@ -4325,18 +4317,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); @@ -4344,40 +4335,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); @@ -4385,15 +4375,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 Sat May 4 06:06:33 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 1546623392877428.2283276066896; Fri, 4 Jan 2019 09:36:32 -0800 (PST) Received: from localhost ([127.0.0.1]:37409 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTOZ-0000aj-Ms for importer@patchew.org; Fri, 04 Jan 2019 12:36:31 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43827) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJj-0003Qh-MD for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJi-000170-UV for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:31 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39552) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJi-00011A-Mi for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:30 -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 CA01858E55; Fri, 4 Jan 2019 17:31:16 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id E93E3102BCEB; Fri, 4 Jan 2019 17:31:15 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:19 +0400 Message-Id: <20190104173042.32714-6-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.39]); Fri, 04 Jan 2019 17:31:16 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- include/hw/boards.h | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index f14c38bb63..0566742412 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -288,16 +288,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 Sat May 4 06:06:33 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 1546623570978558.5976920017898; Fri, 4 Jan 2019 09:39:30 -0800 (PST) Received: from localhost ([127.0.0.1]:37431 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTRN-0004He-Ij for importer@patchew.org; Fri, 04 Jan 2019 12:39:25 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43853) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJk-0003Rn-Cm for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJj-00017R-3X for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40054) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJi-00013J-OG for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:30 -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 E77F2461CF; Fri, 4 Jan 2019 17:31:21 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5FBDC5C22C; Fri, 4 Jan 2019 17:31:20 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:20 +0400 Message-Id: <20190104173042.32714-7-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.29]); Fri, 04 Jan 2019 17:31:21 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- include/hw/boards.h | 3 +++ include/hw/compat.h | 11 ----------- include/hw/i386/pc.h | 9 ++------- hw/arm/virt.c | 6 +----- hw/core/machine.c | 13 +++++++++++++ hw/i386/pc.c | 9 +++++++++ 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, 34 insertions(+), 43 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index 0566742412..b9a5c2d087 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -288,4 +288,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 3ca85b037c..6f4d5fc647 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_3_1 \ - {\ - .driver =3D "pcie-root-port",\ - .property =3D "x-speed",\ - .value =3D "2_5",\ - },{\ - .driver =3D "pcie-root-port",\ - .property =3D "x-width",\ - .value =3D "1",\ - }, - #define HW_COMPAT_3_0 \ /* empty */ =20 diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index c7c0c944e8..dd1d6fd0f3 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -294,13 +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 \ - {\ - .driver =3D "intel-iommu",\ - .property =3D "dma-drain",\ - .value =3D "off",\ - }, +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 19bec3fe59..ebd5f306e4 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 bd644c976b..d6204967c3 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -22,6 +22,19 @@ #include "qemu/error-report.h" #include "sysemu/qtest.h" =20 +GlobalProperty hw_compat_3_1[] =3D { + { + .driver =3D "pcie-root-port", + .property =3D "x-speed", + .value =3D "2_5", + },{ + .driver =3D "pcie-root-port", + .property =3D "x-width", + .value =3D "1", + }, +}; +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 f248662e97..33d09a832a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -109,6 +109,15 @@ 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 { + { + .driver =3D "intel-iommu", + .property =3D "dma-drain", + .value =3D "off", + }, +}; +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 2423428acd..c938437627 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 d84614546c..fad3d6da17 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -323,14 +323,11 @@ 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->default_kernel_irqchip_split =3D false; 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 f3b8c18de3..f04135fffd 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4023,12 +4023,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); mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); } =20 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 Sat May 4 06:06:33 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 1546623425220600.1720193056927; Fri, 4 Jan 2019 09:37:05 -0800 (PST) Received: from localhost ([127.0.0.1]:37413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTP5-00019j-VU for importer@patchew.org; Fri, 04 Jan 2019 12:37:04 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43860) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJk-0003Ry-Hx for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJj-00017V-3C for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39658) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJi-00015B-OQ for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:30 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 118CA3150C; Fri, 4 Jan 2019 17:31:27 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7DEA05D6A6; Fri, 4 Jan 2019 17:31:25 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:21 +0400 Message-Id: <20190104173042.32714-8-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 04 Jan 2019 17:31: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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 b9a5c2d087..aaa57f1f6b 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -291,4 +291,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 ebd5f306e4..5c541ec55e 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 d6204967c3..f00f6381d2 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -35,6 +35,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 33d09a832a..b5799985a1 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -118,6 +118,23 @@ 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 c938437627..cc8b249ccc 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 fad3d6da17..39378ee1cd 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -335,12 +335,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 f04135fffd..8a99e4d9b8 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4037,12 +4037,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 Sat May 4 06:06:33 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 1546623778062241.19549910551382; Fri, 4 Jan 2019 09:42:58 -0800 (PST) Received: from localhost ([127.0.0.1]:37469 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTUm-0000L0-Tf for importer@patchew.org; Fri, 04 Jan 2019 12:42:56 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43884) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJm-0003Uo-JB for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJl-00019J-Ae for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46828) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJl-00018r-3D for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:33 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 74A61C049DFC; Fri, 4 Jan 2019 17:31:32 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id B35845D6AA; Fri, 4 Jan 2019 17:31:30 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:22 +0400 Message-Id: <20190104173042.32714-9-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 04 Jan 2019 17:31:32 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 aaa57f1f6b..c6d828e73c 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -294,4 +294,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 5c541ec55e..228ee63d99 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 f00f6381d2..ae94f5e4ca 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -38,6 +38,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 b5799985a1..031602a005 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -135,6 +135,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 cc8b249ccc..fd3906cda6 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 39378ee1cd..7928f703d0 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -345,12 +345,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 8a99e4d9b8..f1fe455c71 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4054,7 +4054,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", @@ -4068,6 +4067,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 Sat May 4 06:06:33 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 154662373159692.59880611538722; Fri, 4 Jan 2019 09:42:11 -0800 (PST) Received: from localhost ([127.0.0.1]:37463 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTU2-0007nU-Bc for importer@patchew.org; Fri, 04 Jan 2019 12:42:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJr-0003aX-P3 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJq-0001D0-J7 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34360) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJq-0001CY-C3 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:38 -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 AFF7381DFA; Fri, 4 Jan 2019 17:31:37 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 402ED6061B; Fri, 4 Jan 2019 17:31:35 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:23 +0400 Message-Id: <20190104173042.32714-10-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.25]); Fri, 04 Jan 2019 17:31:37 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 c6d828e73c..67202b5a2f 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -297,4 +297,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 228ee63d99..548b6efa93 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 ae94f5e4ca..41f37ee4d4 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -67,6 +67,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 031602a005..563ba90202 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -156,6 +156,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 fd3906cda6..aeb51a2772 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 7928f703d0..fd3187003a 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -356,14 +356,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 f1fe455c71..9afa22fd13 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4099,13 +4099,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 Sat May 4 06:06:33 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 1546623254225152.5742927256092; Fri, 4 Jan 2019 09:34:14 -0800 (PST) Received: from localhost ([127.0.0.1]:37379 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTML-0005qf-02 for importer@patchew.org; Fri, 04 Jan 2019 12:34:13 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43999) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTJz-0003kl-6q for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTJw-0001GN-24 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:47 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42090) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTJv-0001Fr-R1 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:44 -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 35E35A6E1E; Fri, 4 Jan 2019 17:31:43 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 893BA19C7E; Fri, 4 Jan 2019 17:31:41 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:24 +0400 Message-Id: <20190104173042.32714-11-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:31:43 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 67202b5a2f..732eb7bb73 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -300,4 +300,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 548b6efa93..75ab14305a 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 41f37ee4d4..7673454a66 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -88,6 +88,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 563ba90202..c0bb82c454 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -169,6 +169,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 aeb51a2772..aea678dc91 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 fd3187003a..a9c4fc27e4 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -368,12 +368,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 9afa22fd13..483a1373df 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4113,12 +4113,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 15466239068942.284329803541823; Fri, 4 Jan 2019 09:45:06 -0800 (PST) Received: from localhost ([127.0.0.1]:37492 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTWh-0002r8-Li for importer@patchew.org; Fri, 04 Jan 2019 12:44:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTK4-0003s9-V1 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTK1-0001KS-Rl for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42132) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTK1-0001Jg-5R for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:49 -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 75BC8D3C0F; Fri, 4 Jan 2019 17:31:48 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id EFACE101F97D; Fri, 4 Jan 2019 17:31:46 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:25 +0400 Message-Id: <20190104173042.32714-12-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:31:48 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 732eb7bb73..0e69350939 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -303,4 +303,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 75ab14305a..a0898f27d3 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 7673454a66..aa5f03fba2 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -101,6 +101,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 c0bb82c454..3f6f5df363 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -186,6 +186,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 aea678dc91..02520bceb9 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 a9c4fc27e4..e94d2d05c7 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -380,12 +380,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 483a1373df..477ff5eb94 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4127,7 +4127,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", @@ -4136,6 +4135,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 Sat May 4 06:06:33 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 1546623546381610.4858795089675; Fri, 4 Jan 2019 09:39:06 -0800 (PST) Received: from localhost ([127.0.0.1]:37429 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTR3-0003op-3c for importer@patchew.org; Fri, 04 Jan 2019 12:39:05 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44058) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKB-0003wJ-6C for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTK8-0001O4-RT for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42172) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTK6-0001ME-RC for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:31:56 -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 7C0B1A6E1F; Fri, 4 Jan 2019 17:31:53 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 081CF600D6; Fri, 4 Jan 2019 17:31:51 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:26 +0400 Message-Id: <20190104173042.32714-13-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.38]); Fri, 04 Jan 2019 17:31:53 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 0e69350939..03278a8c39 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -306,4 +306,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 a0898f27d3..d4dee3ece7 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 aa5f03fba2..efda98a9ab 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 { { @@ -122,6 +123,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 3f6f5df363..b094e5b2ad 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -195,6 +195,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 02520bceb9..b1fa038a69 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 e94d2d05c7..7e608b3ffb 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -390,12 +390,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 477ff5eb94..a19353827f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4151,7 +4151,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", @@ -4160,6 +4159,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546624058867787.6274697687346; Fri, 4 Jan 2019 09:47:38 -0800 (PST) Received: from localhost ([127.0.0.1]:37527 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTZJ-0006F0-Qg for importer@patchew.org; Fri, 04 Jan 2019 12:47:37 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44076) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKE-00040p-SB for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKD-0001Rj-35 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:02 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39906) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKC-0001Qf-Rg for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32: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 0307F58E27; Fri, 4 Jan 2019 17:31:59 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1E0D219C7E; Fri, 4 Jan 2019 17:31:56 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:27 +0400 Message-Id: <20190104173042.32714-14-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.39]); Fri, 04 Jan 2019 17:31:59 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 03278a8c39..ac4854db0f 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -309,4 +309,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 d4dee3ece7..0134d0d439 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 efda98a9ab..cc92b0cc84 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -168,6 +168,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 b094e5b2ad..ed46f9c27f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -224,6 +224,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 b1fa038a69..182d868de8 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 7e608b3ffb..35377524d0 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -400,13 +400,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 a19353827f..c83b0c0d66 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4223,7 +4223,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", @@ -4249,6 +4248,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546623710661754.7279445831939; Fri, 4 Jan 2019 09:41:50 -0800 (PST) Received: from localhost ([127.0.0.1]:37461 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTTh-0007LL-HR for importer@patchew.org; Fri, 04 Jan 2019 12:41:49 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44115) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKL-000496-2r for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKJ-0001VK-AW for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:09 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40412) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKJ-0001Tg-3A for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:07 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B825D20264; Fri, 4 Jan 2019 17:32:04 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2F1915D6A9; Fri, 4 Jan 2019 17:32:02 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:28 +0400 Message-Id: <20190104173042.32714-15-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 04 Jan 2019 17:32:04 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 ac4854db0f..1135ee23ac 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -312,4 +312,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 0134d0d439..d3174f1402 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 cc92b0cc84..e27b1b5c34 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -193,6 +193,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 ed46f9c27f..6c8ff0e928 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -258,6 +258,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 182d868de8..89e81a028a 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 35377524d0..efb70fb8af 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -412,14 +412,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 c83b0c0d66..eff015987d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4262,7 +4262,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", @@ -4272,6 +4271,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 Sat May 4 06:06:33 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 1546623948185181.31204916744957; Fri, 4 Jan 2019 09:45:48 -0800 (PST) Received: from localhost ([127.0.0.1]:37503 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTXW-00041K-WA for importer@patchew.org; Fri, 04 Jan 2019 12:45:47 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44141) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKN-0004C5-TA for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKM-0001Xq-O1 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42378) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKM-0001XN-GV for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:10 -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 D4BC4A6DFA; Fri, 4 Jan 2019 17:32:09 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 655D85D9C6; Fri, 4 Jan 2019 17:32:08 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:29 +0400 Message-Id: <20190104173042.32714-16-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.38]); Fri, 04 Jan 2019 17:32:09 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 1135ee23ac..0023b72b02 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -315,4 +315,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 e27b1b5c34..4d05501775 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -210,6 +210,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 6c8ff0e928..8eb69ff054 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -281,6 +281,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 89e81a028a..3a31de7316 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 efb70fb8af..418b8387d9 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -426,14 +426,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 eff015987d..6be74ae0c8 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4285,7 +4285,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", @@ -4295,6 +4294,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 Sat May 4 06:06:33 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 1546624229019206.32188727344806; Fri, 4 Jan 2019 09:50:29 -0800 (PST) Received: from localhost ([127.0.0.1]:37552 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTc3-00010J-KZ for importer@patchew.org; Fri, 04 Jan 2019 12:50:27 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44203) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKc-0004Q8-7K for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKY-0001dr-46 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:25 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48472) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKW-0001av-3X for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:20 -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 5E5D3356CA; Fri, 4 Jan 2019 17:32:15 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7B50319C7E; Fri, 4 Jan 2019 17:32:13 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:30 +0400 Message-Id: <20190104173042.32714-17-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.30]); Fri, 04 Jan 2019 17:32:15 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 0023b72b02..254b7d8919 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -318,4 +318,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 4d05501775..1808900c3a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -236,6 +236,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 8eb69ff054..cc14cb42d5 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -284,6 +284,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 3a31de7316..125ab600ef 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 418b8387d9..94494e6441 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -440,14 +440,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 6be74ae0c8..a42cb49109 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4307,13 +4307,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 Sat May 4 06:06:33 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 1546623502181513.5430852823263; Fri, 4 Jan 2019 09:38:22 -0800 (PST) Received: from localhost ([127.0.0.1]:37423 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTQH-0002kB-CP for importer@patchew.org; Fri, 04 Jan 2019 12:38:17 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44235) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKh-0004Wb-Ex for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKb-0001fp-Mr for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:27 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47178) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKY-0001dZ-E5 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:24 -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 36491C0528CF; Fri, 4 Jan 2019 17:32:21 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 106CC608C6; Fri, 4 Jan 2019 17:32:18 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:31 +0400 Message-Id: <20190104173042.32714-18-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.31]); Fri, 04 Jan 2019 17:32:21 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 254b7d8919..e7e3d2bc3c 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -321,4 +321,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 1808900c3a..d37cdc3153 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -265,6 +265,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 cc14cb42d5..1f6d7809ce 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -355,6 +355,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 125ab600ef..5b03f9ef80 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 a42cb49109..b99ed19baf 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4322,7 +4322,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", @@ -4330,6 +4329,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 Sat May 4 06:06:33 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 1546624508389773.7061214009341; Fri, 4 Jan 2019 09:55:08 -0800 (PST) Received: from localhost ([127.0.0.1]:37592 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTgZ-00062n-8p for importer@patchew.org; Fri, 04 Jan 2019 12:55:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44273) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKk-0004bV-Lc for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKh-0001jO-MX for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42552) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKe-0001gj-SN for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:31 -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 9E7C2A9707; Fri, 4 Jan 2019 17:32:26 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3388E60A97; Fri, 4 Jan 2019 17:32:24 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:32 +0400 Message-Id: <20190104173042.32714-19-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.38]); Fri, 04 Jan 2019 17:32:26 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 e7e3d2bc3c..2d82d80107 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -324,4 +324,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 d37cdc3153..cfa9a5d95f 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -306,6 +306,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 1f6d7809ce..b92d1900da 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -441,6 +441,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 5b03f9ef80..d2a2bacba4 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 b99ed19baf..449c5dd58d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4341,7 +4341,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", @@ -4350,6 +4349,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546624142647131.17189329122505; Fri, 4 Jan 2019 09:49:02 -0800 (PST) Received: from localhost ([127.0.0.1]:37541 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTaf-0007pj-FN for importer@patchew.org; Fri, 04 Jan 2019 12:49:01 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44276) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKk-0004bf-Qr for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKj-0001kX-Jy for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34902) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKj-0001jh-CY for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:33 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AE08181F13; Fri, 4 Jan 2019 17:32:31 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3823D5D6A9; Fri, 4 Jan 2019 17:32:29 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:33 +0400 Message-Id: <20190104173042.32714-20-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 04 Jan 2019 17:32:31 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 2d82d80107..02f114085f 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -327,4 +327,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 cfa9a5d95f..84a4c8cdc3 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -309,6 +309,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 b92d1900da..731d2010c8 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -536,6 +536,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 d2a2bacba4..7b48b1c816 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 449c5dd58d..8aba66a32f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4361,12 +4361,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546624312017794.8552876525806; Fri, 4 Jan 2019 09:51:52 -0800 (PST) Received: from localhost ([127.0.0.1]:37567 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTdP-0002MX-1C for importer@patchew.org; Fri, 04 Jan 2019 12:51:51 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44309) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKo-0004gu-1G for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKn-0001nB-4a for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40722) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKm-0001mb-Vs for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:37 -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 57B6E37E60; Fri, 4 Jan 2019 17:32:36 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6DD4019750; Fri, 4 Jan 2019 17:32:35 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:34 +0400 Message-Id: <20190104173042.32714-21-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:32:36 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 d3174f1402..99c2b6e60d 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 8aba66a32f..5671608cea 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 Sat May 4 06:06:33 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 1546623668787930.1881782986526; Fri, 4 Jan 2019 09:41:08 -0800 (PST) Received: from localhost ([127.0.0.1]:37454 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTT1-0006PJ-FJ for importer@patchew.org; Fri, 04 Jan 2019 12:41:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKv-0004pl-Vt for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKt-0001rp-Di for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:45 -0500 Received: from mx1.redhat.com ([209.132.183.28]:32952) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKt-0001rC-5Q for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:43 -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 83DE980496; Fri, 4 Jan 2019 17:32:42 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 26D6360BE8; Fri, 4 Jan 2019 17:32:39 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:35 +0400 Message-Id: <20190104173042.32714-22-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.28]); Fri, 04 Jan 2019 17:32:42 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Igor Mammedov Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 731d2010c8..4952feb476 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 @@ -551,6 +552,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 7b48b1c816..ed6984638e 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 Sat May 4 06:06:33 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 1546623881021807.9704789179175; Fri, 4 Jan 2019 09:44:41 -0800 (PST) Received: from localhost ([127.0.0.1]:37489 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTWO-0002U4-Dj for importer@patchew.org; Fri, 04 Jan 2019 12:44:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTKy-0004vd-U9 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTKy-0001vn-7D for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:48 -0500 Received: from mx1.redhat.com ([209.132.183.28]:53948) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTKy-0001vK-2G for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:48 -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 6F5ADC0587CE; Fri, 4 Jan 2019 17:32:47 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6347E60C47; Fri, 4 Jan 2019 17:32:46 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:36 +0400 Message-Id: <20190104173042.32714-23-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:32:47 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Reviewed-by: Igor Mammedov Acked-by: Eduardo Habkost --- 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 Sat May 4 06:06:33 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 1546623837449647.6206172586161; Fri, 4 Jan 2019 09:43:57 -0800 (PST) Received: from localhost ([127.0.0.1]:37481 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTVg-0001VW-Ua for importer@patchew.org; Fri, 04 Jan 2019 12:43:52 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44472) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTL4-000538-F8 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTL3-0001zl-FM for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40578) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTL3-0001z3-7m for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:53 -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 8E545792BA; Fri, 4 Jan 2019 17:32:52 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D51E5C22E; Fri, 4 Jan 2019 17:32:50 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:37 +0400 Message-Id: <20190104173042.32714-24-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.39]); Fri, 04 Jan 2019 17:32:52 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 943dc2654b..84df9c06a7 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 7baa7a8968..18b3b5727c 100644 --- a/vl.c +++ b/vl.c @@ -2965,7 +2965,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 Sat May 4 06:06:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=listsout.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.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 listsout.gnu.org (listsout.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1546624001943358.22034095886534; Fri, 4 Jan 2019 09:46:41 -0800 (PST) Received: from localhost ([127.0.0.1]:37517 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTYO-000533-U8 for importer@patchew.org; Fri, 04 Jan 2019 12:46:40 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTL8-00058s-IO for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTL7-00022C-TL for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:58 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40638) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTL7-00021k-Nv for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:32:57 -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 1922858E24; Fri, 4 Jan 2019 17:32:57 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3A63260BE7; Fri, 4 Jan 2019 17:32:55 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:38 +0400 Message-Id: <20190104173042.32714-25-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.39]); Fri, 04 Jan 2019 17:32:57 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 84df9c06a7..fa47f39584 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 Sat May 4 06:06:33 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 1546624453581190.50648982310145; Fri, 4 Jan 2019 09:54:13 -0800 (PST) Received: from localhost ([127.0.0.1]:37587 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTfg-00054h-Ji for importer@patchew.org; Fri, 04 Jan 2019 12:54:12 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTLG-0005Fa-CT for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTLD-00025w-8j for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41516) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTLD-00025i-0q for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:03 -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 6204F81F12; Fri, 4 Jan 2019 17:33:02 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D841608C6; Fri, 4 Jan 2019 17:33:00 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:39 +0400 Message-Id: <20190104173042.32714-26-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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, 04 Jan 2019 17:33:02 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- include/hw/qdev-core.h | 8 ++------ 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, 4 insertions(+), 12 deletions(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 86b05baeeb..bc014c1c9f 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -250,18 +250,14 @@ 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. + * + * An error is fatal for non-hotplugged devices, when the global is applie= d. */ 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 fa47f39584..5f9046b84a 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 18b3b5727c..03438cd886 100644 --- a/vl.c +++ b/vl.c @@ -2965,7 +2965,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 Sat May 4 06:06:33 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 1546624682228782.0885078708411; Fri, 4 Jan 2019 09:58:02 -0800 (PST) Received: from localhost ([127.0.0.1]:37639 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTjJ-00010t-Vp for importer@patchew.org; Fri, 04 Jan 2019 12:57:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTLI-0005GM-Qu for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTLI-00028h-3L for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48800) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTLH-00028V-UO for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:08 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4D206369BC; Fri, 4 Jan 2019 17:33:07 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 10ADA5D6A6; Fri, 4 Jan 2019 17:33:05 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:40 +0400 Message-Id: <20190104173042.32714-27-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 04 Jan 2019 17:33:07 +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] [PULL 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: peter.maydell@linaro.org 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 Reviewed-by: Cornelia Huck Acked-by: Eduardo Habkost --- 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 5f9046b84a..5da1439a8b 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 Sat May 4 06:06:33 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 1546624174711142.27213450919248; Fri, 4 Jan 2019 09:49:34 -0800 (PST) Received: from localhost ([127.0.0.1]:37546 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTb8-0008Jx-Rq for importer@patchew.org; Fri, 04 Jan 2019 12:49:30 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTLW-0005YH-DQ for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTLN-0002D7-NX for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41578) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTLN-0002CM-E1 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:13 -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 6A07081F01; Fri, 4 Jan 2019 17:33:12 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id F025219C7E; Fri, 4 Jan 2019 17:33:10 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:41 +0400 Message-Id: <20190104173042.32714-28-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-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.27]); Fri, 04 Jan 2019 17:33: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] [PULL 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: peter.maydell@linaro.org 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 Sat May 4 06:06:33 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 1546624329699864.1001492073567; Fri, 4 Jan 2019 09:52:09 -0800 (PST) Received: from localhost ([127.0.0.1]:37571 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTdg-0002gT-Ii for importer@patchew.org; Fri, 04 Jan 2019 12:52:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44656) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gfTLe-0005eg-G5 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gfTLc-0002KE-J4 for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41748) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gfTLc-0002Ei-Ah for qemu-devel@nongnu.org; Fri, 04 Jan 2019 12:33:28 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8768386641; Fri, 4 Jan 2019 17:33:17 +0000 (UTC) Received: from localhost (ovpn-112-35.ams2.redhat.com [10.36.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 000EB5D6A6; Fri, 4 Jan 2019 17:33:15 +0000 (UTC) From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Fri, 4 Jan 2019 21:30:42 +0400 Message-Id: <20190104173042.32714-29-marcandre.lureau@redhat.com> In-Reply-To: <20190104173042.32714-1-marcandre.lureau@redhat.com> References: <20190104173042.32714-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 04 Jan 2019 17:33: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] [PULL 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: peter.maydell@linaro.org 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 | 8 ++++++++ 6 files changed, 55 insertions(+), 11 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 84a4c8cdc3..f8563efb86 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -32,6 +32,14 @@ GlobalProperty hw_compat_3_1[] =3D { .driver =3D "pcie-root-port", .property =3D "x-width", .value =3D "1", + },{ + .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 2.20.1.2.gb21ebb671b