From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962877910798.5032600276157; Tue, 20 Jun 2017 05:47:57 -0700 (PDT) Received: from localhost ([::1]:48635 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIZY-0002ET-EK for importer@patchew.org; Tue, 20 Jun 2017 08:47:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44909) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT6-0004D9-Lg for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT4-00028z-DG for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37430) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT4-00028n-5w for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:14 -0400 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 3F10E3F1E7 for ; Tue, 20 Jun 2017 12:41:13 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B9CE158859; Tue, 20 Jun 2017 12:41:09 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 3C42111385EF; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3F10E3F1E7 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3F10E3F1E7 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:28 +0200 Message-Id: <1497962468-22936-2-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.30]); Tue, 20 Jun 2017 12:41:13 +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 v2 01/41] qdev: remove PropertyInfo.qtype field 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Remove dependency on qapi qtype, replace a field by a few PropertyInfo callbacks to set the default value type (introduced in commit 4f2d3d7). Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-2-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/core/qdev-properties.c | 35 ++++++++++++++++++++++++++++++++++- hw/core/qdev.c | 13 ++----------- include/hw/qdev-core.h | 2 +- include/hw/qdev-properties.h | 5 ----- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 9f1a497..c5e028a 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -69,6 +69,12 @@ static void set_enum(Object *obj, Visitor *v, const char= *name, void *opaque, visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 +static void set_default_value_enum(Object *obj, const Property *prop) +{ + object_property_set_str(obj, prop->info->enum_table[prop->defval], + prop->name, &error_abort); +} + /* Bit */ =20 static uint32_t qdev_get_prop_mask(Property *prop) @@ -120,11 +126,17 @@ static void prop_set_bit(Object *obj, Visitor *v, con= st char *name, bit_prop_set(dev, prop, value); } =20 +static void set_default_value_bool(Object *obj, const Property *prop) +{ + object_property_set_bool(obj, prop->defval, prop->name, &error_abort); +} + PropertyInfo qdev_prop_bit =3D { .name =3D "bool", .description =3D "on/off", .get =3D prop_get_bit, .set =3D prop_set_bit, + .set_default_value =3D set_default_value_bool, }; =20 /* Bit64 */ @@ -183,6 +195,7 @@ PropertyInfo qdev_prop_bit64 =3D { .description =3D "on/off", .get =3D prop_get_bit64, .set =3D prop_set_bit64, + .set_default_value =3D set_default_value_bool, }; =20 /* --- bool --- */ @@ -216,6 +229,7 @@ PropertyInfo qdev_prop_bool =3D { .name =3D "bool", .get =3D get_bool, .set =3D set_bool, + .set_default_value =3D set_default_value_bool, }; =20 /* --- 8bit integer --- */ @@ -245,10 +259,16 @@ static void set_uint8(Object *obj, Visitor *v, const = char *name, void *opaque, visit_type_uint8(v, name, ptr, errp); } =20 +static void set_default_value_int(Object *obj, const Property *prop) +{ + object_property_set_int(obj, prop->defval, prop->name, &error_abort); +} + PropertyInfo qdev_prop_uint8 =3D { .name =3D "uint8", .get =3D get_uint8, .set =3D set_uint8, + .set_default_value =3D set_default_value_int, }; =20 /* --- 16bit integer --- */ @@ -282,6 +302,7 @@ PropertyInfo qdev_prop_uint16 =3D { .name =3D "uint16", .get =3D get_uint16, .set =3D set_uint16, + .set_default_value =3D set_default_value_int, }; =20 /* --- 32bit integer --- */ @@ -340,12 +361,14 @@ PropertyInfo qdev_prop_uint32 =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_uint32, + .set_default_value =3D set_default_value_int, }; =20 PropertyInfo qdev_prop_int32 =3D { .name =3D "int32", .get =3D get_int32, .set =3D set_int32, + .set_default_value =3D set_default_value_int, }; =20 /* --- 64bit integer --- */ @@ -379,6 +402,7 @@ PropertyInfo qdev_prop_uint64 =3D { .name =3D "uint64", .get =3D get_uint64, .set =3D set_uint64, + .set_default_value =3D set_default_value_int, }; =20 /* --- string --- */ @@ -526,6 +550,7 @@ PropertyInfo qdev_prop_on_off_auto =3D { .enum_table =3D OnOffAuto_lookup, .get =3D get_enum, .set =3D set_enum, + .set_default_value =3D set_default_value_enum, }; =20 /* --- lost tick policy --- */ @@ -537,6 +562,7 @@ PropertyInfo qdev_prop_losttickpolicy =3D { .enum_table =3D LostTickPolicy_lookup, .get =3D get_enum, .set =3D set_enum, + .set_default_value =3D set_default_value_enum, }; =20 /* --- Block device error handling policy --- */ @@ -550,6 +576,7 @@ PropertyInfo qdev_prop_blockdev_on_error =3D { .enum_table =3D BlockdevOnError_lookup, .get =3D get_enum, .set =3D set_enum, + .set_default_value =3D set_default_value_enum, }; =20 /* --- BIOS CHS translation */ @@ -563,6 +590,7 @@ PropertyInfo qdev_prop_bios_chs_trans =3D { .enum_table =3D BiosAtaTranslation_lookup, .get =3D get_enum, .set =3D set_enum, + .set_default_value =3D set_default_value_enum, }; =20 /* --- FDC default drive types */ @@ -573,7 +601,8 @@ PropertyInfo qdev_prop_fdc_drive_type =3D { "144/288/120/none/auto", .enum_table =3D FloppyDriveType_lookup, .get =3D get_enum, - .set =3D set_enum + .set =3D set_enum, + .set_default_value =3D set_default_value_enum, }; =20 /* --- pci address --- */ @@ -648,6 +677,7 @@ PropertyInfo qdev_prop_pci_devfn =3D { .print =3D print_pci_devfn, .get =3D get_int32, .set =3D set_pci_devfn, + .set_default_value =3D set_default_value_int, }; =20 /* --- blocksize --- */ @@ -695,6 +725,7 @@ PropertyInfo qdev_prop_blocksize =3D { .description =3D "A power of two between 512 and 32768", .get =3D get_uint16, .set =3D set_blocksize, + .set_default_value =3D set_default_value_int, }; =20 /* --- pci host address --- */ @@ -917,6 +948,7 @@ PropertyInfo qdev_prop_arraylen =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_prop_arraylen, + .set_default_value =3D set_default_value_int, }; =20 /* --- public helpers --- */ @@ -1153,4 +1185,5 @@ PropertyInfo qdev_prop_size =3D { .name =3D "size", .get =3D get_size, .set =3D set_size, + .set_default_value =3D set_default_value_int, }; diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 0ce45a2..849952a 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -793,17 +793,8 @@ void qdev_property_add_static(DeviceState *dev, Proper= ty *prop, prop->info->description, &error_abort); =20 - if (prop->qtype =3D=3D QTYPE_NONE) { - return; - } - - if (prop->qtype =3D=3D QTYPE_QBOOL) { - object_property_set_bool(obj, prop->defval, prop->name, &error_abo= rt); - } else if (prop->info->enum_table) { - object_property_set_str(obj, prop->info->enum_table[prop->defval], - prop->name, &error_abort); - } else if (prop->qtype =3D=3D QTYPE_QINT) { - object_property_set_int(obj, prop->defval, prop->name, &error_abor= t); + if (prop->info->set_default_value) { + prop->info->set_default_value(obj, prop); } } =20 diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index e69489e..9523339 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -226,7 +226,6 @@ struct Property { PropertyInfo *info; ptrdiff_t offset; uint8_t bitnr; - QType qtype; int64_t defval; int arrayoffset; PropertyInfo *arrayinfo; @@ -238,6 +237,7 @@ struct PropertyInfo { const char *description; const char * const *enum_table; int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); + void (*set_default_value)(Object *obj, const Property *prop); ObjectPropertyAccessor *get; ObjectPropertyAccessor *set; ObjectPropertyRelease *release; diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index d206fc9..85e6899 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -42,7 +42,6 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(_prop), \ .offset =3D offsetof(_state, _field) \ + type_check(_type,typeof_field(_state, _field)), \ - .qtype =3D QTYPE_QINT, \ .defval =3D (_type)_defval, \ } #define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) { \ @@ -51,7 +50,6 @@ extern PropertyInfo qdev_prop_arraylen; .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint32_t,typeof_field(_state, _field)), \ - .qtype =3D QTYPE_QBOOL, \ .defval =3D (bool)_defval, \ } #define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \ @@ -60,7 +58,6 @@ extern PropertyInfo qdev_prop_arraylen; .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint64_t, typeof_field(_state, _field)), \ - .qtype =3D QTYPE_QBOOL, \ .defval =3D (bool)_defval, \ } =20 @@ -69,7 +66,6 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(qdev_prop_bool), \ .offset =3D offsetof(_state, _field) \ + type_check(bool, typeof_field(_state, _field)), \ - .qtype =3D QTYPE_QBOOL, \ .defval =3D (bool)_defval, \ } =20 @@ -105,7 +101,6 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(qdev_prop_arraylen), \ .offset =3D offsetof(_state, _field) \ + type_check(uint32_t, typeof_field(_state, _field)), \ - .qtype =3D QTYPE_QINT, \ .arrayinfo =3D &(_arrayprop), \ .arrayfieldsize =3D sizeof(_arraytype), \ .arrayoffset =3D offsetof(_state, _arrayfield), \ --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962579236721.741098892522; Tue, 20 Jun 2017 05:42:59 -0700 (PDT) Received: from localhost ([::1]:48609 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIUj-00062B-P9 for importer@patchew.org; Tue, 20 Jun 2017 08:42:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT6-0004DD-Mz for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT5-00029R-Je for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5597) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT5-000295-De for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:15 -0400 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 5CDC88CB52 for ; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BC6A06DC98; Tue, 20 Jun 2017 12:41:09 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 3FE041142064; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5CDC88CB52 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 5CDC88CB52 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:29 +0200 Message-Id: <1497962468-22936-3-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.26]); Tue, 20 Jun 2017 12:41:14 +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 v2 02/41] object: fix potential leak in getters 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau If the property is not of the requested type, the getters will leak a QObject. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Eric Blake Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-3-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- qom/object.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qom/object.c b/qom/object.c index eb4bc92..c7b8079 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1122,7 +1122,7 @@ char *object_property_get_str(Object *obj, const char= *name, retval =3D g_strdup(qstring_get_str(qstring)); } =20 - QDECREF(qstring); + qobject_decref(ret); return retval; } =20 @@ -1183,7 +1183,7 @@ bool object_property_get_bool(Object *obj, const char= *name, retval =3D qbool_get_bool(qbool); } =20 - QDECREF(qbool); + qobject_decref(ret); return retval; } =20 @@ -1214,7 +1214,7 @@ int64_t object_property_get_int(Object *obj, const ch= ar *name, retval =3D qint_get_int(qint); } =20 - QDECREF(qint); + qobject_decref(ret); return retval; } =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962582136746.024644274332; Tue, 20 Jun 2017 05:43:02 -0700 (PDT) Received: from localhost ([::1]:48611 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIUm-00065D-Gv for importer@patchew.org; Tue, 20 Jun 2017 08:43:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44918) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT6-0004DG-Oq for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT5-00029H-8k for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53302) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT5-000293-0N for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:15 -0400 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 12128A4F8B for ; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BEE5A70C05; Tue, 20 Jun 2017 12:41:09 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 432031129C73; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 12128A4F8B Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 12128A4F8B From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:30 +0200 Message-Id: <1497962468-22936-4-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:14 +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 v2 03/41] tests: Remove test cases for alternates of 'number' and 'int' 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Alternates with both a 'number' and an 'int' branch will become invalid when the next patch merges of QFloat and QInt into QNum. More sophisticated alternate code could keep them valid, but since we have no users outside tests, simply drop the tests. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-4-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- tests/qapi-schema/qapi-schema-test.json | 2 -- tests/qapi-schema/qapi-schema-test.out | 8 -------- tests/test-keyval.c | 4 ++-- tests/test-qobject-input-visitor.c | 26 -------------------------- 4 files changed, 2 insertions(+), 38 deletions(-) diff --git a/tests/qapi-schema/qapi-schema-test.json b/tests/qapi-schema/qa= pi-schema-test.json index 17649c6..91ffb26 100644 --- a/tests/qapi-schema/qapi-schema-test.json +++ b/tests/qapi-schema/qapi-schema-test.json @@ -103,8 +103,6 @@ { 'alternate': 'AltEnumNum', 'data': { 'e': 'EnumOne', 'n': 'number' } } { 'alternate': 'AltNumEnum', 'data': { 'n': 'number', 'e': 'EnumOne' } } { 'alternate': 'AltEnumInt', 'data': { 'e': 'EnumOne', 'i': 'int' } } -{ 'alternate': 'AltIntNum', 'data': { 'i': 'int', 'n': 'number' } } -{ 'alternate': 'AltNumInt', 'data': { 'n': 'number', 'i': 'int' } } =20 # for testing use of 'str' within alternates { 'alternate': 'AltStrObj', 'data': { 's': 'str', 'o': 'TestStruct' } } diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qap= i-schema-test.out index 9f68610..e727a5a 100644 --- a/tests/qapi-schema/qapi-schema-test.out +++ b/tests/qapi-schema/qapi-schema-test.out @@ -10,18 +10,10 @@ alternate AltEnumNum tag type case e: EnumOne case n: number -alternate AltIntNum - tag type - case i: int - case n: number alternate AltNumEnum tag type case n: number case e: EnumOne -alternate AltNumInt - tag type - case n: number - case i: int alternate AltStrObj tag type case s: str diff --git a/tests/test-keyval.c b/tests/test-keyval.c index c3be005..baf7e33 100644 --- a/tests/test-keyval.c +++ b/tests/test-keyval.c @@ -615,7 +615,7 @@ static void test_keyval_visit_alternate(void) Visitor *v; QDict *qdict; AltStrObj *aso; - AltNumInt *ani; + AltNumEnum *ane; AltEnumBool *aeb; =20 /* @@ -631,7 +631,7 @@ static void test_keyval_visit_alternate(void) g_assert_cmpint(aso->type, =3D=3D, QTYPE_QSTRING); g_assert_cmpstr(aso->u.s, =3D=3D, "1"); qapi_free_AltStrObj(aso); - visit_type_AltNumInt(v, "b", &ani, &err); + visit_type_AltNumEnum(v, "b", &ane, &err); error_free_or_abort(&err); visit_type_AltEnumBool(v, "c", &aeb, &err); error_free_or_abort(&err); diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-= visitor.c index 6b997a1..83d663d 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -592,8 +592,6 @@ static void test_visitor_in_alternate_number(TestInputV= isitorData *data, AltEnumNum *aen; AltNumEnum *ans; AltEnumInt *asi; - AltIntNum *ain; - AltNumInt *ani; =20 /* Parsing an int */ =20 @@ -620,18 +618,6 @@ static void test_visitor_in_alternate_number(TestInput= VisitorData *data, g_assert_cmpint(asi->u.i, =3D=3D, 42); qapi_free_AltEnumInt(asi); =20 - v =3D visitor_input_test_init(data, "42"); - visit_type_AltIntNum(v, NULL, &ain, &error_abort); - g_assert_cmpint(ain->type, =3D=3D, QTYPE_QINT); - g_assert_cmpint(ain->u.i, =3D=3D, 42); - qapi_free_AltIntNum(ain); - - v =3D visitor_input_test_init(data, "42"); - visit_type_AltNumInt(v, NULL, &ani, &error_abort); - g_assert_cmpint(ani->type, =3D=3D, QTYPE_QINT); - g_assert_cmpint(ani->u.i, =3D=3D, 42); - qapi_free_AltNumInt(ani); - /* Parsing a double */ =20 v =3D visitor_input_test_init(data, "42.5"); @@ -655,18 +641,6 @@ static void test_visitor_in_alternate_number(TestInput= VisitorData *data, visit_type_AltEnumInt(v, NULL, &asi, &err); error_free_or_abort(&err); qapi_free_AltEnumInt(asi); - - v =3D visitor_input_test_init(data, "42.5"); - visit_type_AltIntNum(v, NULL, &ain, &error_abort); - g_assert_cmpint(ain->type, =3D=3D, QTYPE_QFLOAT); - g_assert_cmpfloat(ain->u.n, =3D=3D, 42.5); - qapi_free_AltIntNum(ain); - - v =3D visitor_input_test_init(data, "42.5"); - visit_type_AltNumInt(v, NULL, &ani, &error_abort); - g_assert_cmpint(ani->type, =3D=3D, QTYPE_QFLOAT); - g_assert_cmpfloat(ani->u.n, =3D=3D, 42.5); - qapi_free_AltNumInt(ani); } =20 static void test_native_list_integer_helper(TestInputVisitorData *data, --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962580277181.1733971511611; Tue, 20 Jun 2017 05:43:00 -0700 (PDT) Received: from localhost ([::1]:48610 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIUl-00063X-0K for importer@patchew.org; Tue, 20 Jun 2017 08:42:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44911) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT6-0004DA-Ln for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT5-00029c-LT for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58888) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT5-000299-Du for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:15 -0400 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 81B4A4E4FC for ; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C1F356DC9A; Tue, 20 Jun 2017 12:41:09 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 46555114CF87; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 81B4A4E4FC Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 81B4A4E4FC From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:31 +0200 Message-Id: <1497962468-22936-5-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:14 +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 v2 04/41] tests: add more int/number ranges checks 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-5-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [test_visitor_in_uint() tightened slightly] Signed-off-by: Markus Armbruster --- tests/test-qobject-input-visitor.c | 39 ++++++++++++++++++++++++++++++++++= +++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-= visitor.c index 83d663d..4dc9c03 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -107,6 +107,7 @@ static void test_visitor_in_int(TestInputVisitorData *d= ata, const void *unused) { int64_t res =3D 0; + double dbl; int value =3D -42; Visitor *v; =20 @@ -114,6 +115,9 @@ static void test_visitor_in_int(TestInputVisitorData *d= ata, =20 visit_type_int(v, NULL, &res, &error_abort); g_assert_cmpint(res, =3D=3D, value); + + visit_type_number(v, NULL, &dbl, &error_abort); + g_assert_cmpfloat(dbl, =3D=3D, -42.0); } =20 static void test_visitor_in_uint(TestInputVisitorData *data, @@ -121,6 +125,8 @@ static void test_visitor_in_uint(TestInputVisitorData *= data, { Error *err =3D NULL; uint64_t res =3D 0; + int64_t i64; + double dbl; int value =3D 42; Visitor *v; =20 @@ -129,8 +135,13 @@ static void test_visitor_in_uint(TestInputVisitorData = *data, visit_type_uint64(v, NULL, &res, &error_abort); g_assert_cmpuint(res, =3D=3D, (uint64_t)value); =20 + visit_type_int(v, NULL, &i64, &error_abort); + g_assert_cmpint(i64, =3D=3D, value); + + visit_type_number(v, NULL, &dbl, &error_abort); + g_assert_cmpfloat(dbl, =3D=3D, value); + /* BUG: value between INT64_MIN and -1 accepted modulo 2^64 */ - v =3D visitor_input_test_init(data, "%d", -value); =20 visit_type_uint64(v, NULL, &res, &error_abort); @@ -142,6 +153,9 @@ static void test_visitor_in_uint(TestInputVisitorData *= data, =20 visit_type_uint64(v, NULL, &res, &err); error_free_or_abort(&err); + + visit_type_number(v, NULL, &dbl, &error_abort); + g_assert_cmpfloat(dbl, =3D=3D, 18446744073709552000.0); } =20 static void test_visitor_in_int_overflow(TestInputVisitorData *data, @@ -260,6 +274,27 @@ static void test_visitor_in_number(TestInputVisitorDat= a *data, g_assert_cmpfloat(res, =3D=3D, value); } =20 +static void test_visitor_in_large_number(TestInputVisitorData *data, + const void *unused) +{ + Error *err =3D NULL; + double res =3D 0; + int64_t i64; + uint64_t u64; + Visitor *v; + + v =3D visitor_input_test_init(data, "-18446744073709551616"); /* -2^64= */ + + visit_type_number(v, NULL, &res, &error_abort); + g_assert_cmpfloat(res, =3D=3D, -18446744073709552e3); + + visit_type_int(v, NULL, &i64, &err); + error_free_or_abort(&err); + + visit_type_uint64(v, NULL, &u64, &err); + error_free_or_abort(&err); +} + static void test_visitor_in_number_keyval(TestInputVisitorData *data, const void *unused) { @@ -1253,6 +1288,8 @@ int main(int argc, char **argv) NULL, test_visitor_in_bool_str_fail); input_visitor_test_add("/visitor/input/number", NULL, test_visitor_in_number); + input_visitor_test_add("/visitor/input/large_number", + NULL, test_visitor_in_large_number); input_visitor_test_add("/visitor/input/number_keyval", NULL, test_visitor_in_number_keyval); input_visitor_test_add("/visitor/input/number_str_keyval", --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962726666725.1474670728809; Tue, 20 Jun 2017 05:45:26 -0700 (PDT) Received: from localhost ([::1]:48622 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIX7-00086b-CC for importer@patchew.org; Tue, 20 Jun 2017 08:45:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44912) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT6-0004DC-Ly for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT5-00029Z-LF for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34590) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT5-000296-F0 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:15 -0400 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 5CA2561D3B for ; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C8D460840; Tue, 20 Jun 2017 12:41:11 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4935A114D03F; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5CA2561D3B Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 5CA2561D3B From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:32 +0200 Message-Id: <1497962468-22936-6-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.39]); Tue, 20 Jun 2017 12:41:14 +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 v2 05/41] qapi: Clean up qobject_input_type_number() control flow 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Use the more common pattern to error out. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-6-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [Commit message tweaked] Signed-off-by: Markus Armbruster --- qapi/qobject-input-visitor.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index eac40f6..26ef49a 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -547,13 +547,13 @@ static void qobject_input_type_number(Visitor *v, con= st char *name, double *obj, } =20 qfloat =3D qobject_to_qfloat(qobj); - if (qfloat) { - *obj =3D qfloat_get_double(qobject_to_qfloat(qobj)); + if (!qfloat) { + error_setg(errp, QERR_INVALID_PARAMETER_TYPE, + full_name(qiv, name), "number"); return; } =20 - error_setg(errp, QERR_INVALID_PARAMETER_TYPE, - full_name(qiv, name), "number"); + *obj =3D qfloat_get_double(qobject_to_qfloat(qobj)); } =20 static void qobject_input_type_number_keyval(Visitor *v, const char *name, --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964576687205.08342246128007; Tue, 20 Jun 2017 06:16:16 -0700 (PDT) Received: from localhost ([::1]:48826 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNJ0w-00021R-Or for importer@patchew.org; Tue, 20 Jun 2017 09:16:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45403) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITJ-0004SW-W8 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002By-Vo for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:30 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58934) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002A3-1b for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 E91C04ACCB for ; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F994600C4; Tue, 20 Jun 2017 12:41:11 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4C6AF114D1F7; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E91C04ACCB Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E91C04ACCB From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:33 +0200 Message-Id: <1497962468-22936-7-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 06/41] qapi: merge QInt and QFloat in QNum 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau We would like to use a same QObject type to represent numbers, whether they are int, uint, or floats. Getters will allow some compatibility between the various types if the number fits other representations. Add a few more tests while at it. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-7-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [parse_stats_intervals() simplified a bit, comment in test_visitor_in_int_overflow() tidied up, suppress bogus warnings] Signed-off-by: Markus Armbruster --- MAINTAINERS | 3 +- block/blkdebug.c | 1 - block/nbd.c | 1 - block/nfs.c | 1 - block/qapi.c | 13 +-- block/quorum.c | 1 - block/sheepdog.c | 1 - block/ssh.c | 1 - block/vvfat.c | 1 - blockdev.c | 5 +- hw/acpi/pcihp.c | 1 - hw/i386/acpi-build.c | 16 ++-- hw/usb/xen-usb.c | 1 - include/qapi/qmp/qdict.h | 3 +- include/qapi/qmp/qfloat.h | 29 ------ include/qapi/qmp/qint.h | 28 ------ include/qapi/qmp/qlist.h | 3 +- include/qapi/qmp/qnum.h | 46 +++++++++ include/qapi/qmp/types.h | 3 +- include/qapi/qobject-input-visitor.h | 6 +- include/qapi/qobject-output-visitor.h | 8 +- monitor.c | 2 +- qapi/qobject-input-visitor.c | 41 +++----- qapi/qobject-output-visitor.c | 6 +- qga/commands.c | 2 +- qga/main.c | 1 - qobject/Makefile.objs | 2 +- qobject/json-parser.c | 30 +++--- qobject/qdict.c | 37 +++---- qobject/qfloat.c | 62 ------------ qobject/qint.c | 61 ------------ qobject/qjson.c | 37 +------ qobject/qnum.c | 159 +++++++++++++++++++++++++++= ++++ qobject/qobject.c | 3 +- qom/object.c | 16 ++-- scripts/coccinelle/qobject.cocci | 4 +- scripts/qapi-visit.py | 2 +- scripts/qapi.py | 36 ++++--- target/i386/cpu.c | 6 +- tests/.gitignore | 3 +- tests/Makefile.include | 13 +-- tests/check-qdict.c | 25 +++-- tests/check-qfloat.c | 53 ----------- tests/check-qint.c | 87 ----------------- tests/check-qjson.c | 91 ++++++++++-------- tests/check-qlist.c | 17 ++-- tests/check-qnum.c | 136 ++++++++++++++++++++++++++ tests/qapi-schema/comments.out | 2 +- tests/qapi-schema/doc-good.out | 2 +- tests/qapi-schema/empty.out | 2 +- tests/qapi-schema/event-case.out | 2 +- tests/qapi-schema/ident-with-escape.out | 2 +- tests/qapi-schema/include-relpath.out | 2 +- tests/qapi-schema/include-repetition.out | 2 +- tests/qapi-schema/include-simple.out | 2 +- tests/qapi-schema/indented-expr.out | 2 +- tests/qapi-schema/qapi-schema-test.out | 2 +- tests/test-qmp-commands.c | 8 +- tests/test-qmp-event.c | 9 +- tests/test-qobject-input-visitor.c | 38 ++++---- tests/test-qobject-output-visitor.c | 71 ++++++++------ tests/test-x86-cpuid-compat.c | 18 ++-- ui/spice-core.c | 1 - ui/vnc-enc-tight.c | 1 - util/qemu-option.c | 24 ++--- 65 files changed, 630 insertions(+), 664 deletions(-) delete mode 100644 include/qapi/qmp/qfloat.h delete mode 100644 include/qapi/qmp/qint.h create mode 100644 include/qapi/qmp/qnum.h delete mode 100644 qobject/qfloat.c delete mode 100644 qobject/qint.c create mode 100644 qobject/qnum.c delete mode 100644 tests/check-qfloat.c delete mode 100644 tests/check-qint.c create mode 100644 tests/check-qnum.c diff --git a/MAINTAINERS b/MAINTAINERS index 120788d..05e6e96 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1411,8 +1411,7 @@ F: include/qapi/qmp/ X: include/qapi/qmp/dispatch.h F: scripts/coccinelle/qobject.cocci F: tests/check-qdict.c -F: tests/check-qfloat.c -F: tests/check-qint.c +F: tests/check-qnum.c F: tests/check-qjson.c F: tests/check-qlist.c F: tests/check-qstring.c diff --git a/block/blkdebug.c b/block/blkdebug.c index a5196e8..0618fc7 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -31,7 +31,6 @@ #include "qemu/module.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qdict.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" #include "sysemu/qtest.h" =20 diff --git a/block/nbd.c b/block/nbd.c index 975faab..e946ea9 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -37,7 +37,6 @@ #include "qapi/qobject-output-visitor.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qjson.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" #include "qemu/cutils.h" =20 diff --git a/block/nfs.c b/block/nfs.c index 848b2c0..decefd1 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -36,7 +36,6 @@ #include "qemu/cutils.h" #include "sysemu/sysemu.h" #include "qapi/qmp/qdict.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" #include "qapi-visit.h" #include "qapi/qobject-input-visitor.h" diff --git a/block/qapi.c b/block/qapi.c index a40922e..2050df2 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -595,9 +595,11 @@ static void dump_qobject(fprintf_function func_fprintf= , void *f, int comp_indent, QObject *obj) { switch (qobject_type(obj)) { - case QTYPE_QINT: { - QInt *value =3D qobject_to_qint(obj); - func_fprintf(f, "%" PRId64, qint_get_int(value)); + case QTYPE_QNUM: { + QNum *value =3D qobject_to_qnum(obj); + char *tmp =3D qnum_to_string(value); + func_fprintf(f, "%s", tmp); + g_free(tmp); break; } case QTYPE_QSTRING: { @@ -615,11 +617,6 @@ static void dump_qobject(fprintf_function func_fprintf= , void *f, dump_qlist(func_fprintf, f, comp_indent, value); break; } - case QTYPE_QFLOAT: { - QFloat *value =3D qobject_to_qfloat(obj); - func_fprintf(f, "%g", qfloat_get_double(value)); - break; - } case QTYPE_QBOOL: { QBool *value =3D qobject_to_qbool(obj); func_fprintf(f, "%s", qbool_get_bool(value) ? "true" : "false"= ); diff --git a/block/quorum.c b/block/quorum.c index 1b2a8c3..55ba916 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -19,7 +19,6 @@ #include "qapi/qmp/qbool.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qerror.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qjson.h" #include "qapi/qmp/qlist.h" #include "qapi/qmp/qstring.h" diff --git a/block/sheepdog.c b/block/sheepdog.c index a18315a..dea9000 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -16,7 +16,6 @@ #include "qapi-visit.h" #include "qapi/error.h" #include "qapi/qmp/qdict.h" -#include "qapi/qmp/qint.h" #include "qapi/qobject-input-visitor.h" #include "qemu/uri.h" #include "qemu/error-report.h" diff --git a/block/ssh.c b/block/ssh.c index 11203fc..bac3453 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -34,7 +34,6 @@ #include "qemu/sockets.h" #include "qemu/uri.h" #include "qapi-visit.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" #include "qapi/qobject-input-visitor.h" #include "qapi/qobject-output-visitor.h" diff --git a/block/vvfat.c b/block/vvfat.c index 426ca70..8ab647c 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -29,7 +29,6 @@ #include "qemu/module.h" #include "qemu/bswap.h" #include "migration/blocker.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" #include "qemu/cutils.h" diff --git a/blockdev.c b/blockdev.c index 6472548..18acc5b 100644 --- a/blockdev.c +++ b/blockdev.c @@ -334,8 +334,9 @@ static bool parse_stats_intervals(BlockAcctStats *stats= , QList *intervals, break; } =20 - case QTYPE_QINT: { - int64_t length =3D qint_get_int(qobject_to_qint(entry->value)); + case QTYPE_QNUM: { + int64_t length =3D qnum_get_int(qobject_to_qnum(entry->value)); + if (length > 0 && length <=3D UINT_MAX) { block_acct_add_interval(stats, (unsigned) length); } else { diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c index 2b0f3e1..3a531a4 100644 --- a/hw/acpi/pcihp.c +++ b/hw/acpi/pcihp.c @@ -37,7 +37,6 @@ #include "hw/pci/pci_bus.h" #include "qapi/error.h" #include "qom/qom-qobject.h" -#include "qapi/qmp/qint.h" =20 //#define DEBUG =20 diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index ce74c84..d7d2b65 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -57,7 +57,6 @@ =20 #include "hw/acpi/aml-build.h" =20 -#include "qapi/qmp/qint.h" #include "qom/qom-qobject.h" #include "hw/i386/amd_iommu.h" #include "hw/i386/intel_iommu.h" @@ -150,21 +149,21 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) /* Fill in optional s3/s4 related properties */ o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S3_DISABLED, NULL); if (o) { - pm->s3_disabled =3D qint_get_int(qobject_to_qint(o)); + pm->s3_disabled =3D qnum_get_int(qobject_to_qnum(o)); } else { pm->s3_disabled =3D false; } qobject_decref(o); o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S4_DISABLED, NULL); if (o) { - pm->s4_disabled =3D qint_get_int(qobject_to_qint(o)); + pm->s4_disabled =3D qnum_get_int(qobject_to_qnum(o)); } else { pm->s4_disabled =3D false; } qobject_decref(o); o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S4_VAL, NULL); if (o) { - pm->s4_val =3D qint_get_int(qobject_to_qint(o)); + pm->s4_val =3D qnum_get_int(qobject_to_qnum(o)); } else { pm->s4_val =3D false; } @@ -529,7 +528,7 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, =20 bsel =3D object_property_get_qobject(OBJECT(bus), ACPI_PCIHP_PROP_BSEL= , NULL); if (bsel) { - int64_t bsel_val =3D qint_get_int(qobject_to_qint(bsel)); + int64_t bsel_val =3D qnum_get_int(qobject_to_qnum(bsel)); =20 aml_append(parent_scope, aml_name_decl("BSEL", aml_int(bsel_val))); notify_method =3D aml_method("DVNT", 2, AML_NOTSERIALIZED); @@ -639,7 +638,8 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, =20 /* If bus supports hotplug select it and notify about local events */ if (bsel) { - int64_t bsel_val =3D qint_get_int(qobject_to_qint(bsel)); + int64_t bsel_val =3D qnum_get_int(qobject_to_qnum(bsel)); + aml_append(method, aml_store(aml_int(bsel_val), aml_name("BNUM"))); aml_append(method, aml_call2("DVNT", aml_name("PCIU"), aml_int(1) /* Device Check= */) @@ -2614,12 +2614,12 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) if (!o) { return false; } - mcfg->mcfg_base =3D qint_get_int(qobject_to_qint(o)); + mcfg->mcfg_base =3D qnum_get_int(qobject_to_qnum(o)); qobject_decref(o); =20 o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); assert(o); - mcfg->mcfg_size =3D qint_get_int(qobject_to_qint(o)); + mcfg->mcfg_size =3D qnum_get_int(qobject_to_qnum(o)); qobject_decref(o); return true; } diff --git a/hw/usb/xen-usb.c b/hw/usb/xen-usb.c index fe62183..584a6f2 100644 --- a/hw/usb/xen-usb.c +++ b/hw/usb/xen-usb.c @@ -30,7 +30,6 @@ #include "hw/xen/xen_backend.h" #include "monitor/qdev.h" #include "qapi/qmp/qbool.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" =20 #include "hw/xen/io/ring.h" diff --git a/include/qapi/qmp/qdict.h b/include/qapi/qmp/qdict.h index 188440a..363e431 100644 --- a/include/qapi/qmp/qdict.h +++ b/include/qapi/qmp/qdict.h @@ -15,6 +15,7 @@ =20 #include "qapi/qmp/qobject.h" #include "qapi/qmp/qlist.h" +#include "qapi/qmp/qnum.h" #include "qemu/queue.h" =20 #define QDICT_BUCKET_MAX 512 @@ -54,7 +55,7 @@ void qdict_destroy_obj(QObject *obj); =20 /* Helpers for int, bool, and string */ #define qdict_put_int(qdict, key, value) \ - qdict_put(qdict, key, qint_from_int(value)) + qdict_put(qdict, key, qnum_from_int(value)) #define qdict_put_bool(qdict, key, value) \ qdict_put(qdict, key, qbool_from_bool(value)) #define qdict_put_str(qdict, key, value) \ diff --git a/include/qapi/qmp/qfloat.h b/include/qapi/qmp/qfloat.h deleted file mode 100644 index b5d1583..0000000 --- a/include/qapi/qmp/qfloat.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * QFloat Module - * - * Copyright IBM, Corp. 2009 - * - * Authors: - * Anthony Liguori - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#ifndef QFLOAT_H -#define QFLOAT_H - -#include "qapi/qmp/qobject.h" - -typedef struct QFloat { - QObject base; - double value; -} QFloat; - -QFloat *qfloat_from_double(double value); -double qfloat_get_double(const QFloat *qi); -QFloat *qobject_to_qfloat(const QObject *obj); -void qfloat_destroy_obj(QObject *obj); - -#endif /* QFLOAT_H */ diff --git a/include/qapi/qmp/qint.h b/include/qapi/qmp/qint.h deleted file mode 100644 index 3aaff76..0000000 --- a/include/qapi/qmp/qint.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * QInt Module - * - * Copyright (C) 2009 Red Hat Inc. - * - * Authors: - * Luiz Capitulino - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - */ - -#ifndef QINT_H -#define QINT_H - -#include "qapi/qmp/qobject.h" - -typedef struct QInt { - QObject base; - int64_t value; -} QInt; - -QInt *qint_from_int(int64_t value); -int64_t qint_get_int(const QInt *qi); -QInt *qobject_to_qint(const QObject *obj); -void qint_destroy_obj(QObject *obj); - -#endif /* QINT_H */ diff --git a/include/qapi/qmp/qlist.h b/include/qapi/qmp/qlist.h index 5dc4ed9..c4b5fda 100644 --- a/include/qapi/qmp/qlist.h +++ b/include/qapi/qmp/qlist.h @@ -14,6 +14,7 @@ #define QLIST_H =20 #include "qapi/qmp/qobject.h" +#include "qapi/qmp/qnum.h" #include "qemu/queue.h" =20 typedef struct QListEntry { @@ -31,7 +32,7 @@ typedef struct QList { =20 /* Helpers for int, bool, and string */ #define qlist_append_int(qlist, value) \ - qlist_append(qlist, qint_from_int(value)) + qlist_append(qlist, qnum_from_int(value)) #define qlist_append_bool(qlist, value) \ qlist_append(qlist, qbool_from_bool(value)) #define qlist_append_str(qlist, value) \ diff --git a/include/qapi/qmp/qnum.h b/include/qapi/qmp/qnum.h new file mode 100644 index 0000000..e42b136 --- /dev/null +++ b/include/qapi/qmp/qnum.h @@ -0,0 +1,46 @@ +/* + * QNum Module + * + * Copyright (C) 2009 Red Hat Inc. + * + * Authors: + * Luiz Capitulino + * Anthony Liguori + * Marc-Andr=C3=A9 Lureau + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. + * See the COPYING.LIB file in the top-level directory. + */ + +#ifndef QNUM_H +#define QNUM_H + +#include "qapi/qmp/qobject.h" + +typedef enum { + QNUM_I64, + QNUM_DOUBLE +} QNumKind; + +typedef struct QNum { + QObject base; + QNumKind kind; + union { + int64_t i64; + double dbl; + } u; +} QNum; + +QNum *qnum_from_int(int64_t value); +QNum *qnum_from_double(double value); + +bool qnum_get_try_int(const QNum *qn, int64_t *val); +int64_t qnum_get_int(const QNum *qn); +double qnum_get_double(QNum *qn); + +char *qnum_to_string(QNum *qn); + +QNum *qobject_to_qnum(const QObject *obj); +void qnum_destroy_obj(QObject *obj); + +#endif /* QNUM_H */ diff --git a/include/qapi/qmp/types.h b/include/qapi/qmp/types.h index 27cfbd8..a4bc662 100644 --- a/include/qapi/qmp/types.h +++ b/include/qapi/qmp/types.h @@ -14,8 +14,7 @@ #define QAPI_QMP_TYPES_H =20 #include "qapi/qmp/qobject.h" -#include "qapi/qmp/qint.h" -#include "qapi/qmp/qfloat.h" +#include "qapi/qmp/qnum.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" #include "qapi/qmp/qdict.h" diff --git a/include/qapi/qobject-input-visitor.h b/include/qapi/qobject-in= put-visitor.h index b399285..daee18c 100644 --- a/include/qapi/qobject-input-visitor.h +++ b/include/qapi/qobject-input-visitor.h @@ -30,9 +30,9 @@ typedef struct QObjectInputVisitor QObjectInputVisitor; * visit_type_FOO() creates an instance of QAPI type FOO. The visited * QObject must match FOO. QDict matches struct/union types, QList * matches list types, QString matches type 'str' and enumeration - * types, QInt matches integer types, QFloat matches type 'number', - * QBool matches type 'bool'. Type 'any' is matched by QObject. A - * QAPI alternate type is matched when one of its member types is. + * types, QNum matches integer and float types, QBool matches type + * 'bool'. Type 'any' is matched by QObject. A QAPI alternate type + * is matched when one of its member types is. * * visit_start_struct() ... visit_end_struct() visits a QDict and * creates a QAPI struct/union. Visits in between visit the diff --git a/include/qapi/qobject-output-visitor.h b/include/qapi/qobject-o= utput-visitor.h index 9b990c3..e5a3490 100644 --- a/include/qapi/qobject-output-visitor.h +++ b/include/qapi/qobject-output-visitor.h @@ -28,10 +28,10 @@ typedef struct QObjectOutputVisitor QObjectOutputVisito= r; * * visit_type_FOO() creates a QObject for QAPI type FOO. It creates a * QDict for struct/union types, a QList for list types, QString for - * type 'str' and enumeration types, QInt for integer types, QFloat - * for type 'number', QBool for type 'bool'. For type 'any', it - * increments the QObject's reference count. For QAPI alternate - * types, it creates the QObject for the member that is in use. + * type 'str' and enumeration types, QNum for integer and float + * types, QBool for type 'bool'. For type 'any', it increments the + * QObject's reference count. For QAPI alternate types, it creates + * the QObject for the member that is in use. * * visit_start_struct() ... visit_end_struct() visits a QAPI * struct/union and creates a QDict. Visits in between visit the diff --git a/monitor.c b/monitor.c index fcf4fad..3c369f4 100644 --- a/monitor.c +++ b/monitor.c @@ -2974,7 +2974,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, monitor_printf(mon, "Unknown unit suffix\n"); goto fail; } - qdict_put(qdict, key, qfloat_from_double(val)); + qdict_put(qdict, key, qnum_from_double(val)); } break; case 'b': diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index 26ef49a..b24f99d 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -378,9 +378,6 @@ static void qobject_input_start_alternate(Visitor *v, c= onst char *name, } *obj =3D g_malloc0(size); (*obj)->type =3D qobject_type(qobj); - if (promote_int && (*obj)->type =3D=3D QTYPE_QINT) { - (*obj)->type =3D QTYPE_QFLOAT; - } } =20 static void qobject_input_type_int64(Visitor *v, const char *name, int64_t= *obj, @@ -388,22 +385,18 @@ static void qobject_input_type_int64(Visitor *v, cons= t char *name, int64_t *obj, { QObjectInputVisitor *qiv =3D to_qiv(v); QObject *qobj =3D qobject_input_get_object(qiv, name, true, errp); - QInt *qint; + QNum *qnum; =20 if (!qobj) { return; } - qint =3D qobject_to_qint(qobj); - if (!qint) { + qnum =3D qobject_to_qnum(qobj); + if (!qnum || !qnum_get_try_int(qnum, obj)) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, full_name(qiv, name), "integer"); - return; } - - *obj =3D qint_get_int(qint); } =20 - static void qobject_input_type_int64_keyval(Visitor *v, const char *name, int64_t *obj, Error **errp) { @@ -424,22 +417,21 @@ static void qobject_input_type_int64_keyval(Visitor *= v, const char *name, static void qobject_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, Error **errp) { - /* FIXME: qobject_to_qint mishandles values over INT64_MAX */ + /* FIXME: qobject_to_qnum mishandles values over INT64_MAX */ QObjectInputVisitor *qiv =3D to_qiv(v); QObject *qobj =3D qobject_input_get_object(qiv, name, true, errp); - QInt *qint; + QNum *qnum; + int64_t val; =20 if (!qobj) { return; } - qint =3D qobject_to_qint(qobj); - if (!qint) { + qnum =3D qobject_to_qnum(qobj); + if (!qnum || !qnum_get_try_int(qnum, &val)) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, full_name(qiv, name), "integer"); - return; } - - *obj =3D qint_get_int(qint); + *obj =3D val; } =20 static void qobject_input_type_uint64_keyval(Visitor *v, const char *name, @@ -534,26 +526,19 @@ static void qobject_input_type_number(Visitor *v, con= st char *name, double *obj, { QObjectInputVisitor *qiv =3D to_qiv(v); QObject *qobj =3D qobject_input_get_object(qiv, name, true, errp); - QInt *qint; - QFloat *qfloat; + QNum *qnum; =20 if (!qobj) { return; } - qint =3D qobject_to_qint(qobj); - if (qint) { - *obj =3D qint_get_int(qobject_to_qint(qobj)); - return; - } - - qfloat =3D qobject_to_qfloat(qobj); - if (!qfloat) { + qnum =3D qobject_to_qnum(qobj); + if (!qnum) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, full_name(qiv, name), "number"); return; } =20 - *obj =3D qfloat_get_double(qobject_to_qfloat(qobj)); + *obj =3D qnum_get_double(qnum); } =20 static void qobject_input_type_number_keyval(Visitor *v, const char *name, diff --git a/qapi/qobject-output-visitor.c b/qapi/qobject-output-visitor.c index 8711270..2ca5093 100644 --- a/qapi/qobject-output-visitor.c +++ b/qapi/qobject-output-visitor.c @@ -144,7 +144,7 @@ static void qobject_output_type_int64(Visitor *v, const= char *name, int64_t *obj, Error **errp) { QObjectOutputVisitor *qov =3D to_qov(v); - qobject_output_add(qov, name, qint_from_int(*obj)); + qobject_output_add(qov, name, qnum_from_int(*obj)); } =20 static void qobject_output_type_uint64(Visitor *v, const char *name, @@ -152,7 +152,7 @@ static void qobject_output_type_uint64(Visitor *v, cons= t char *name, { /* FIXME values larger than INT64_MAX become negative */ QObjectOutputVisitor *qov =3D to_qov(v); - qobject_output_add(qov, name, qint_from_int(*obj)); + qobject_output_add(qov, name, qnum_from_int(*obj)); } =20 static void qobject_output_type_bool(Visitor *v, const char *name, bool *o= bj, @@ -177,7 +177,7 @@ static void qobject_output_type_number(Visitor *v, cons= t char *name, double *obj, Error **errp) { QObjectOutputVisitor *qov =3D to_qov(v); - qobject_output_add(qov, name, qfloat_from_double(*obj)); + qobject_output_add(qov, name, qnum_from_double(*obj)); } =20 static void qobject_output_type_any(Visitor *v, const char *name, diff --git a/qga/commands.c b/qga/commands.c index 3333ed5..ff89e80 100644 --- a/qga/commands.c +++ b/qga/commands.c @@ -485,7 +485,7 @@ int ga_parse_whence(GuestFileWhence *whence, Error **er= rp) { /* Exploit the fact that we picked values to match QGA_SEEK_*. */ if (whence->type =3D=3D QTYPE_QSTRING) { - whence->type =3D QTYPE_QINT; + whence->type =3D QTYPE_QNUM; whence->u.value =3D whence->u.name; } switch (whence->u.value) { diff --git a/qga/main.c b/qga/main.c index cc58d2b..405c129 100644 --- a/qga/main.c +++ b/qga/main.c @@ -19,7 +19,6 @@ #endif #include "qapi/qmp/json-streamer.h" #include "qapi/qmp/json-parser.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qjson.h" #include "qga/guest-agent-core.h" #include "qemu/module.h" diff --git a/qobject/Makefile.objs b/qobject/Makefile.objs index bed5508..fc8885c 100644 --- a/qobject/Makefile.objs +++ b/qobject/Makefile.objs @@ -1,2 +1,2 @@ -util-obj-y =3D qnull.o qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o +util-obj-y =3D qnull.o qnum.o qstring.o qdict.o qlist.o qbool.o util-obj-y +=3D qjson.o qobject.o json-lexer.o json-streamer.o json-parser= .o diff --git a/qobject/json-parser.c b/qobject/json-parser.c index c18e48a..5e80828 100644 --- a/qobject/json-parser.c +++ b/qobject/json-parser.c @@ -466,16 +466,16 @@ static QObject *parse_escape(JSONParserContext *ctxt,= va_list *ap) } else if (!strcmp(token->str, "%i")) { return QOBJECT(qbool_from_bool(va_arg(*ap, int))); } else if (!strcmp(token->str, "%d")) { - return QOBJECT(qint_from_int(va_arg(*ap, int))); + return QOBJECT(qnum_from_int(va_arg(*ap, int))); } else if (!strcmp(token->str, "%ld")) { - return QOBJECT(qint_from_int(va_arg(*ap, long))); + return QOBJECT(qnum_from_int(va_arg(*ap, long))); } else if (!strcmp(token->str, "%lld") || !strcmp(token->str, "%I64d")) { - return QOBJECT(qint_from_int(va_arg(*ap, long long))); + return QOBJECT(qnum_from_int(va_arg(*ap, long long))); } else if (!strcmp(token->str, "%s")) { return QOBJECT(qstring_from_str(va_arg(*ap, const char *))); } else if (!strcmp(token->str, "%f")) { - return QOBJECT(qfloat_from_double(va_arg(*ap, double))); + return QOBJECT(qnum_from_double(va_arg(*ap, double))); } return NULL; } @@ -491,24 +491,22 @@ static QObject *parse_literal(JSONParserContext *ctxt) case JSON_STRING: return QOBJECT(qstring_from_escaped_str(ctxt, token)); case JSON_INTEGER: { - /* A possibility exists that this is a whole-valued float where the - * fractional part was left out due to being 0 (.0). It's not a big - * deal to treat these as ints in the parser, so long as users of = the - * resulting QObject know to expect a QInt in place of a QFloat in - * cases like these. + /* + * Represent JSON_INTEGER as QNUM_I64 if possible, else as + * QNUM_DOUBLE. Note that strtoll() fails with ERANGE when + * it's not possible. * - * However, in some cases these values will overflow/underflow a - * QInt/int64 container, thus we should assume these are to be han= dled - * as QFloats/doubles rather than silently changing their values. - * - * strtoll() indicates these instances by setting errno to ERANGE + * qnum_get_int() will then work for any signed 64-bit + * JSON_INTEGER, and qnum_get_double() both for any + * JSON_INTEGER and any JSON_FLOAT (with precision loss for + * integers beyond 53 bits) */ int64_t value; =20 errno =3D 0; /* strtoll doesn't set errno on success */ value =3D strtoll(token->str, NULL, 10); if (errno !=3D ERANGE) { - return QOBJECT(qint_from_int(value)); + return QOBJECT(qnum_from_int(value)); } /* fall through to JSON_FLOAT */ } @@ -516,7 +514,7 @@ static QObject *parse_literal(JSONParserContext *ctxt) /* FIXME dependent on locale; a pervasive issue in QEMU */ /* FIXME our lexer matches RFC 7159 in forbidding Inf or NaN, * but those might be useful extensions beyond JSON */ - return QOBJECT(qfloat_from_double(strtod(token->str, NULL))); + return QOBJECT(qnum_from_double(strtod(token->str, NULL))); default: abort(); } diff --git a/qobject/qdict.c b/qobject/qdict.c index 88e2ecd..576018e 100644 --- a/qobject/qdict.c +++ b/qobject/qdict.c @@ -11,8 +11,7 @@ */ =20 #include "qemu/osdep.h" -#include "qapi/qmp/qint.h" -#include "qapi/qmp/qfloat.h" +#include "qapi/qmp/qnum.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" @@ -180,37 +179,26 @@ size_t qdict_size(const QDict *qdict) /** * qdict_get_double(): Get an number mapped by 'key' * - * This function assumes that 'key' exists and it stores a - * QFloat or QInt object. + * This function assumes that 'key' exists and it stores a QNum. * * Return number mapped by 'key'. */ double qdict_get_double(const QDict *qdict, const char *key) { - QObject *obj =3D qdict_get(qdict, key); - - assert(obj); - switch (qobject_type(obj)) { - case QTYPE_QFLOAT: - return qfloat_get_double(qobject_to_qfloat(obj)); - case QTYPE_QINT: - return qint_get_int(qobject_to_qint(obj)); - default: - abort(); - } + return qnum_get_double(qobject_to_qnum(qdict_get(qdict, key))); } =20 /** * qdict_get_int(): Get an integer mapped by 'key' * * This function assumes that 'key' exists and it stores a - * QInt object. + * QNum representable as int. * * Return integer mapped by 'key'. */ int64_t qdict_get_int(const QDict *qdict, const char *key) { - return qint_get_int(qobject_to_qint(qdict_get(qdict, key))); + return qnum_get_int(qobject_to_qnum(qdict_get(qdict, key))); } =20 /** @@ -259,16 +247,21 @@ const char *qdict_get_str(const QDict *qdict, const c= har *key) /** * qdict_get_try_int(): Try to get integer mapped by 'key' * - * Return integer mapped by 'key', if it is not present in - * the dictionary or if the stored object is not of QInt type - * 'def_value' will be returned. + * Return integer mapped by 'key', if it is not present in the + * dictionary or if the stored object is not a QNum representing an + * integer, 'def_value' will be returned. */ int64_t qdict_get_try_int(const QDict *qdict, const char *key, int64_t def_value) { - QInt *qint =3D qobject_to_qint(qdict_get(qdict, key)); + QNum *qnum =3D qobject_to_qnum(qdict_get(qdict, key)); + int64_t val; =20 - return qint ? qint_get_int(qint) : def_value; + if (!qnum || !qnum_get_try_int(qnum, &val)) { + return def_value; + } + + return val; } =20 /** diff --git a/qobject/qfloat.c b/qobject/qfloat.c deleted file mode 100644 index d5da847..0000000 --- a/qobject/qfloat.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * QFloat Module - * - * Copyright IBM, Corp. 2009 - * - * Authors: - * Anthony Liguori - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#include "qemu/osdep.h" -#include "qapi/qmp/qfloat.h" -#include "qapi/qmp/qobject.h" -#include "qemu-common.h" - -/** - * qfloat_from_int(): Create a new QFloat from a float - * - * Return strong reference. - */ -QFloat *qfloat_from_double(double value) -{ - QFloat *qf; - - qf =3D g_malloc(sizeof(*qf)); - qobject_init(QOBJECT(qf), QTYPE_QFLOAT); - qf->value =3D value; - - return qf; -} - -/** - * qfloat_get_double(): Get the stored float - */ -double qfloat_get_double(const QFloat *qf) -{ - return qf->value; -} - -/** - * qobject_to_qfloat(): Convert a QObject into a QFloat - */ -QFloat *qobject_to_qfloat(const QObject *obj) -{ - if (!obj || qobject_type(obj) !=3D QTYPE_QFLOAT) { - return NULL; - } - return container_of(obj, QFloat, base); -} - -/** - * qfloat_destroy_obj(): Free all memory allocated by a - * QFloat object - */ -void qfloat_destroy_obj(QObject *obj) -{ - assert(obj !=3D NULL); - g_free(qobject_to_qfloat(obj)); -} diff --git a/qobject/qint.c b/qobject/qint.c deleted file mode 100644 index d7d1b30..0000000 --- a/qobject/qint.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * QInt Module - * - * Copyright (C) 2009 Red Hat Inc. - * - * Authors: - * Luiz Capitulino - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - */ - -#include "qemu/osdep.h" -#include "qapi/qmp/qint.h" -#include "qapi/qmp/qobject.h" -#include "qemu-common.h" - -/** - * qint_from_int(): Create a new QInt from an int64_t - * - * Return strong reference. - */ -QInt *qint_from_int(int64_t value) -{ - QInt *qi; - - qi =3D g_malloc(sizeof(*qi)); - qobject_init(QOBJECT(qi), QTYPE_QINT); - qi->value =3D value; - - return qi; -} - -/** - * qint_get_int(): Get the stored integer - */ -int64_t qint_get_int(const QInt *qi) -{ - return qi->value; -} - -/** - * qobject_to_qint(): Convert a QObject into a QInt - */ -QInt *qobject_to_qint(const QObject *obj) -{ - if (!obj || qobject_type(obj) !=3D QTYPE_QINT) { - return NULL; - } - return container_of(obj, QInt, base); -} - -/** - * qint_destroy_obj(): Free all memory allocated by a - * QInt object - */ -void qint_destroy_obj(QObject *obj) -{ - assert(obj !=3D NULL); - g_free(qobject_to_qint(obj)); -} diff --git a/qobject/qjson.c b/qobject/qjson.c index b2f3bfe..2e09308 100644 --- a/qobject/qjson.c +++ b/qobject/qjson.c @@ -132,12 +132,11 @@ static void to_json(const QObject *obj, QString *str,= int pretty, int indent) case QTYPE_QNULL: qstring_append(str, "null"); break; - case QTYPE_QINT: { - QInt *val =3D qobject_to_qint(obj); - char buffer[1024]; - - snprintf(buffer, sizeof(buffer), "%" PRId64, qint_get_int(val)); + case QTYPE_QNUM: { + QNum *val =3D qobject_to_qnum(obj); + char *buffer =3D qnum_to_string(val); qstring_append(str, buffer); + g_free(buffer); break; } case QTYPE_QSTRING: { @@ -234,34 +233,6 @@ static void to_json(const QObject *obj, QString *str, = int pretty, int indent) qstring_append(str, "]"); break; } - case QTYPE_QFLOAT: { - QFloat *val =3D qobject_to_qfloat(obj); - char buffer[1024]; - int len; - - /* FIXME: snprintf() is locale dependent; but JSON requires - * numbers to be formatted as if in the C locale. Dependence - * on C locale is a pervasive issue in QEMU. */ - /* FIXME: This risks printing Inf or NaN, which are not valid - * JSON values. */ - /* FIXME: the default precision of 6 for %f often causes - * rounding errors; we should be using DBL_DECIMAL_DIG (17), - * and only rounding to a shorter number if the result would - * still produce the same floating point value. */ - len =3D snprintf(buffer, sizeof(buffer), "%f", qfloat_get_double(v= al)); - while (len > 0 && buffer[len - 1] =3D=3D '0') { - len--; - } - - if (len && buffer[len - 1] =3D=3D '.') { - buffer[len - 1] =3D 0; - } else { - buffer[len] =3D 0; - } - - qstring_append(str, buffer); - break; - } case QTYPE_QBOOL: { QBool *val =3D qobject_to_qbool(obj); =20 diff --git a/qobject/qnum.c b/qobject/qnum.c new file mode 100644 index 0000000..7bb9006 --- /dev/null +++ b/qobject/qnum.c @@ -0,0 +1,159 @@ +/* + * QNum Module + * + * Copyright (C) 2009 Red Hat Inc. + * + * Authors: + * Luiz Capitulino + * Anthony Liguori + * Marc-Andr=C3=A9 Lureau + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. + * See the COPYING.LIB file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qapi/qmp/qnum.h" +#include "qapi/qmp/qobject.h" +#include "qemu-common.h" + +/** + * qnum_from_int(): Create a new QNum from an int64_t + * + * Return strong reference. + */ +QNum *qnum_from_int(int64_t value) +{ + QNum *qn =3D g_new(QNum, 1); + + qobject_init(QOBJECT(qn), QTYPE_QNUM); + qn->kind =3D QNUM_I64; + qn->u.i64 =3D value; + + return qn; +} + +/** + * qnum_from_double(): Create a new QNum from a double + * + * Return strong reference. + */ +QNum *qnum_from_double(double value) +{ + QNum *qn =3D g_new(QNum, 1); + + qobject_init(QOBJECT(qn), QTYPE_QNUM); + qn->kind =3D QNUM_DOUBLE; + qn->u.dbl =3D value; + + return qn; +} + +/** + * qnum_get_try_int(): Get an integer representation of the number + * + * Return true on success. + */ +bool qnum_get_try_int(const QNum *qn, int64_t *val) +{ + switch (qn->kind) { + case QNUM_I64: + *val =3D qn->u.i64; + return true; + case QNUM_DOUBLE: + return false; + } + + assert(0); + return false; +} + +/** + * qnum_get_int(): Get an integer representation of the number + * + * assert() on failure. + */ +int64_t qnum_get_int(const QNum *qn) +{ + int64_t val; + bool success =3D qnum_get_try_int(qn, &val); + assert(success); + return val; +} + +/** + * qnum_get_double(): Get a float representation of the number + * + * qnum_get_double() loses precision for integers beyond 53 bits. + */ +double qnum_get_double(QNum *qn) +{ + switch (qn->kind) { + case QNUM_I64: + return qn->u.i64; + case QNUM_DOUBLE: + return qn->u.dbl; + } + + assert(0); + return 0.0; +} + +char *qnum_to_string(QNum *qn) +{ + char *buffer; + int len; + + switch (qn->kind) { + case QNUM_I64: + return g_strdup_printf("%" PRId64, qn->u.i64); + case QNUM_DOUBLE: + /* FIXME: snprintf() is locale dependent; but JSON requires + * numbers to be formatted as if in the C locale. Dependence + * on C locale is a pervasive issue in QEMU. */ + /* FIXME: This risks printing Inf or NaN, which are not valid + * JSON values. */ + /* FIXME: the default precision of 6 for %f often causes + * rounding errors; we should be using DBL_DECIMAL_DIG (17), + * and only rounding to a shorter number if the result would + * still produce the same floating point value. */ + buffer =3D g_strdup_printf("%f" , qn->u.dbl); + len =3D strlen(buffer); + while (len > 0 && buffer[len - 1] =3D=3D '0') { + len--; + } + + if (len && buffer[len - 1] =3D=3D '.') { + buffer[len - 1] =3D 0; + } else { + buffer[len] =3D 0; + } + + return buffer; + } + + assert(0); + return NULL; +} + +/** + * qobject_to_qnum(): Convert a QObject into a QNum + */ +QNum *qobject_to_qnum(const QObject *obj) +{ + if (!obj || qobject_type(obj) !=3D QTYPE_QNUM) { + return NULL; + } + return container_of(obj, QNum, base); +} + +/** + * qnum_destroy_obj(): Free all memory allocated by a + * QNum object + */ +void qnum_destroy_obj(QObject *obj) +{ + assert(obj !=3D NULL); + g_free(qobject_to_qnum(obj)); +} diff --git a/qobject/qobject.c b/qobject/qobject.c index fe4fa10..b0cafb6 100644 --- a/qobject/qobject.c +++ b/qobject/qobject.c @@ -14,11 +14,10 @@ static void (*qdestroy[QTYPE__MAX])(QObject *) =3D { [QTYPE_NONE] =3D NULL, /* No such object exists */ [QTYPE_QNULL] =3D NULL, /* qnull_ is indestructible */ - [QTYPE_QINT] =3D qint_destroy_obj, + [QTYPE_QNUM] =3D qnum_destroy_obj, [QTYPE_QSTRING] =3D qstring_destroy_obj, [QTYPE_QDICT] =3D qdict_destroy_obj, [QTYPE_QLIST] =3D qlist_destroy_obj, - [QTYPE_QFLOAT] =3D qfloat_destroy_obj, [QTYPE_QBOOL] =3D qbool_destroy_obj, }; =20 diff --git a/qom/object.c b/qom/object.c index c7b8079..dee7f7c 100644 --- a/qom/object.c +++ b/qom/object.c @@ -27,7 +27,6 @@ #include "qom/qom-qobject.h" #include "qapi/qmp/qobject.h" #include "qapi/qmp/qbool.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qstring.h" =20 #define MAX_INTERFACES 32 @@ -1190,28 +1189,27 @@ bool object_property_get_bool(Object *obj, const ch= ar *name, void object_property_set_int(Object *obj, int64_t value, const char *name, Error **errp) { - QInt *qint =3D qint_from_int(value); - object_property_set_qobject(obj, QOBJECT(qint), name, errp); + QNum *qnum =3D qnum_from_int(value); + object_property_set_qobject(obj, QOBJECT(qnum), name, errp); =20 - QDECREF(qint); + QDECREF(qnum); } =20 int64_t object_property_get_int(Object *obj, const char *name, Error **errp) { QObject *ret =3D object_property_get_qobject(obj, name, errp); - QInt *qint; + QNum *qnum; int64_t retval; =20 if (!ret) { return -1; } - qint =3D qobject_to_qint(ret); - if (!qint) { + + qnum =3D qobject_to_qnum(ret); + if (!qnum || !qnum_get_try_int(qnum, &retval)) { error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name, "int"); retval =3D -1; - } else { - retval =3D qint_get_int(qint); } =20 qobject_decref(ret); diff --git a/scripts/coccinelle/qobject.cocci b/scripts/coccinelle/qobject.= cocci index 97703a4..c3253de 100644 --- a/scripts/coccinelle/qobject.cocci +++ b/scripts/coccinelle/qobject.cocci @@ -6,7 +6,7 @@ expression Obj, Key, E; - qdict_put_obj(Obj, Key, QOBJECT(E)); + qdict_put(Obj, Key, E); | -- qdict_put(Obj, Key, qint_from_int(E)); +- qdict_put(Obj, Key, qnum_from_int(E)); + qdict_put_int(Obj, Key, E); | - qdict_put(Obj, Key, qbool_from_bool(E)); @@ -24,7 +24,7 @@ expression Obj, E; - qlist_append_obj(Obj, QOBJECT(E)); + qlist_append(Obj, E); | -- qlist_append(Obj, qint_from_int(E)); +- qlist_append(Obj, qnum_from_int(E)); + qlist_append_int(Obj, E); | - qlist_append(Obj, qbool_from_bool(E)); diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index 5737aef..cc447ec 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -164,7 +164,7 @@ def gen_visit_alternate(name, variants): promote_int =3D 'true' ret =3D '' for var in variants.variants: - if var.type.alternate_qtype() =3D=3D 'QTYPE_QINT': + if var.type.alternate_qtype() =3D=3D 'QTYPE_QNUM': promote_int =3D 'false' =20 ret +=3D mcgen(''' diff --git a/scripts/qapi.py b/scripts/qapi.py index b7a25e4..0de809f 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -21,18 +21,18 @@ from ordereddict import OrderedDict =20 builtin_types =3D { 'str': 'QTYPE_QSTRING', - 'int': 'QTYPE_QINT', - 'number': 'QTYPE_QFLOAT', + 'int': 'QTYPE_QNUM', + 'number': 'QTYPE_QNUM', 'bool': 'QTYPE_QBOOL', - 'int8': 'QTYPE_QINT', - 'int16': 'QTYPE_QINT', - 'int32': 'QTYPE_QINT', - 'int64': 'QTYPE_QINT', - 'uint8': 'QTYPE_QINT', - 'uint16': 'QTYPE_QINT', - 'uint32': 'QTYPE_QINT', - 'uint64': 'QTYPE_QINT', - 'size': 'QTYPE_QINT', + 'int8': 'QTYPE_QNUM', + 'int16': 'QTYPE_QNUM', + 'int32': 'QTYPE_QNUM', + 'int64': 'QTYPE_QNUM', + 'uint8': 'QTYPE_QNUM', + 'uint16': 'QTYPE_QNUM', + 'uint32': 'QTYPE_QNUM', + 'uint64': 'QTYPE_QNUM', + 'size': 'QTYPE_QNUM', 'any': None, # any QType possible, actually 'QType': 'QTYPE_QSTRING', } @@ -820,11 +820,9 @@ def check_alternate(expr, info): if v in ['on', 'off']: conflicting.add('QTYPE_QBOOL') if re.match(r'[-+0-9.]', v): # lazy, could be tightened - conflicting.add('QTYPE_QINT') - conflicting.add('QTYPE_QFLOAT') + conflicting.add('QTYPE_QNUM') else: - conflicting.add('QTYPE_QINT') - conflicting.add('QTYPE_QFLOAT') + conflicting.add('QTYPE_QNUM') conflicting.add('QTYPE_QBOOL') if conflicting & set(types_seen): raise QAPISemError(info, "Alternate '%s' member '%s' can't " @@ -1059,8 +1057,8 @@ class QAPISchemaType(QAPISchemaEntity): def alternate_qtype(self): json2qtype =3D { 'string': 'QTYPE_QSTRING', - 'number': 'QTYPE_QFLOAT', - 'int': 'QTYPE_QINT', + 'number': 'QTYPE_QNUM', + 'int': 'QTYPE_QNUM', 'boolean': 'QTYPE_QBOOL', 'object': 'QTYPE_QDICT' } @@ -1522,9 +1520,9 @@ class QAPISchema(object): self.the_empty_object_type =3D QAPISchemaObjectType( 'q_empty', None, None, None, [], None) self._def_entity(self.the_empty_object_type) - qtype_values =3D self._make_enum_members(['none', 'qnull', 'qint', + qtype_values =3D self._make_enum_members(['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist= ', - 'qfloat', 'qbool']) + 'qbool']) self._def_entity(QAPISchemaEnumType('QType', None, None, qtype_values, 'QTYPE')) =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index b2b1d20..f118a54 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -29,11 +29,7 @@ #include "qemu/option.h" #include "qemu/config-file.h" #include "qapi/qmp/qerror.h" -#include "qapi/qmp/qstring.h" -#include "qapi/qmp/qdict.h" -#include "qapi/qmp/qbool.h" -#include "qapi/qmp/qint.h" -#include "qapi/qmp/qfloat.h" +#include "qapi/qmp/types.h" =20 #include "qapi-types.h" #include "qapi-visit.h" diff --git a/tests/.gitignore b/tests/.gitignore index 40c2e3e..8e01b00 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,7 +1,6 @@ atomic_add-bench check-qdict -check-qfloat -check-qint +check-qnum check-qjson check-qlist check-qnull diff --git a/tests/Makefile.include b/tests/Makefile.include index f42f3df..fec5af7 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -10,10 +10,8 @@ check-unit-y =3D tests/check-qdict$(EXESUF) gcov-files-check-qdict-y =3D qobject/qdict.c check-unit-y +=3D tests/test-char$(EXESUF) gcov-files-check-qdict-y =3D chardev/char.c -check-unit-y +=3D tests/check-qfloat$(EXESUF) -gcov-files-check-qfloat-y =3D qobject/qfloat.c -check-unit-y +=3D tests/check-qint$(EXESUF) -gcov-files-check-qint-y =3D qobject/qint.c +check-unit-y +=3D tests/check-qnum$(EXESUF) +gcov-files-check-qnum-y =3D qobject/qnum.c check-unit-y +=3D tests/check-qstring$(EXESUF) gcov-files-check-qstring-y =3D qobject/qstring.c check-unit-y +=3D tests/check-qlist$(EXESUF) @@ -506,8 +504,8 @@ GENERATED_FILES +=3D tests/test-qapi-types.h tests/test= -qapi-visit.h \ tests/test-qmp-commands.h tests/test-qapi-event.h \ tests/test-qmp-introspect.h =20 -test-obj-y =3D tests/check-qint.o tests/check-qstring.o tests/check-qdict.= o \ - tests/check-qlist.o tests/check-qfloat.o tests/check-qnull.o \ +test-obj-y =3D tests/check-qnum.o tests/check-qstring.o tests/check-qdict.= o \ + tests/check-qlist.o tests/check-qnull.o \ tests/check-qjson.o \ tests/test-coroutine.o tests/test-string-output-visitor.o \ tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \ @@ -535,11 +533,10 @@ test-crypto-obj-y =3D $(crypto-obj-y) $(test-qom-obj-= y) test-io-obj-y =3D $(io-obj-y) $(test-crypto-obj-y) test-block-obj-y =3D $(block-obj-y) $(test-io-obj-y) tests/iothread.o =20 -tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y) +tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y) tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y) tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y) tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y) -tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y) tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y) tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y) tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom= -obj-y) diff --git a/tests/check-qdict.c b/tests/check-qdict.c index be8d81f..f067c63 100644 --- a/tests/check-qdict.c +++ b/tests/check-qdict.c @@ -11,7 +11,6 @@ */ #include "qemu/osdep.h" =20 -#include "qapi/qmp/qint.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qstring.h" #include "qapi/error.h" @@ -39,7 +38,7 @@ static void qdict_new_test(void) =20 static void qdict_put_obj_test(void) { - QInt *qi; + QNum *qn; QDict *qdict; QDictEntry *ent; const int num =3D 42; @@ -51,11 +50,11 @@ static void qdict_put_obj_test(void) =20 g_assert(qdict_size(qdict) =3D=3D 1); ent =3D QLIST_FIRST(&qdict->table[12345 % QDICT_BUCKET_MAX]); - qi =3D qobject_to_qint(ent->value); - g_assert(qint_get_int(qi) =3D=3D num); + qn =3D qobject_to_qnum(ent->value); + g_assert_cmpint(qnum_get_int(qn), =3D=3D, num); =20 // destroy doesn't exit yet - QDECREF(qi); + QDECREF(qn); g_free(ent->key); g_free(ent); g_free(qdict); @@ -74,7 +73,7 @@ static void qdict_destroy_simple_test(void) =20 static void qdict_get_test(void) { - QInt *qi; + QNum *qn; QObject *obj; const int value =3D -42; const char *key =3D "test"; @@ -85,8 +84,8 @@ static void qdict_get_test(void) obj =3D qdict_get(tests_dict, key); g_assert(obj !=3D NULL); =20 - qi =3D qobject_to_qint(obj); - g_assert(qint_get_int(qi) =3D=3D value); + qn =3D qobject_to_qnum(obj); + g_assert_cmpint(qnum_get_int(qn), =3D=3D, value); =20 QDECREF(tests_dict); } @@ -329,7 +328,7 @@ static void qdict_array_split_test(void) { QDict *test_dict =3D qdict_new(); QDict *dict1, *dict2; - QInt *int1; + QNum *int1; QList *test_list; =20 /* @@ -380,7 +379,7 @@ static void qdict_array_split_test(void) =20 dict1 =3D qobject_to_qdict(qlist_pop(test_list)); dict2 =3D qobject_to_qdict(qlist_pop(test_list)); - int1 =3D qobject_to_qint(qlist_pop(test_list)); + int1 =3D qobject_to_qnum(qlist_pop(test_list)); =20 g_assert(dict1); g_assert(dict2); @@ -402,7 +401,7 @@ static void qdict_array_split_test(void) =20 QDECREF(dict2); =20 - g_assert(qint_get_int(int1) =3D=3D 66); + g_assert_cmpint(qnum_get_int(int1), =3D=3D, 66); =20 QDECREF(int1); =20 @@ -447,14 +446,14 @@ static void qdict_array_split_test(void) =20 qdict_array_split(test_dict, &test_list); =20 - int1 =3D qobject_to_qint(qlist_pop(test_list)); + int1 =3D qobject_to_qnum(qlist_pop(test_list)); =20 g_assert(int1); g_assert(qlist_empty(test_list)); =20 QDECREF(test_list); =20 - g_assert(qint_get_int(int1) =3D=3D 42); + g_assert_cmpint(qnum_get_int(int1), =3D=3D, 42); =20 QDECREF(int1); =20 diff --git a/tests/check-qfloat.c b/tests/check-qfloat.c deleted file mode 100644 index 1da2cda..0000000 --- a/tests/check-qfloat.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * QFloat unit-tests. - * - * Copyright IBM, Corp. 2009 - * - * Authors: - * Anthony Liguori - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - * - */ -#include "qemu/osdep.h" - -#include "qapi/qmp/qfloat.h" -#include "qemu-common.h" - -/* - * Public Interface test-cases - * - * (with some violations to access 'private' data) - */ - -static void qfloat_from_double_test(void) -{ - QFloat *qf; - const double value =3D -42.23423; - - qf =3D qfloat_from_double(value); - g_assert(qf !=3D NULL); - g_assert(qf->value =3D=3D value); - g_assert(qf->base.refcnt =3D=3D 1); - g_assert(qobject_type(QOBJECT(qf)) =3D=3D QTYPE_QFLOAT); - - // destroy doesn't exit yet - g_free(qf); -} - -static void qfloat_destroy_test(void) -{ - QFloat *qf =3D qfloat_from_double(0.0); - QDECREF(qf); -} - -int main(int argc, char **argv) -{ - g_test_init(&argc, &argv, NULL); - - g_test_add_func("/public/from_double", qfloat_from_double_test); - g_test_add_func("/public/destroy", qfloat_destroy_test); - - return g_test_run(); -} diff --git a/tests/check-qint.c b/tests/check-qint.c deleted file mode 100644 index b6e4555..0000000 --- a/tests/check-qint.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * QInt unit-tests. - * - * Copyright (C) 2009 Red Hat Inc. - * - * Authors: - * Luiz Capitulino - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. - * See the COPYING.LIB file in the top-level directory. - */ -#include "qemu/osdep.h" - -#include "qapi/qmp/qint.h" -#include "qemu-common.h" - -/* - * Public Interface test-cases - * - * (with some violations to access 'private' data) - */ - -static void qint_from_int_test(void) -{ - QInt *qi; - const int value =3D -42; - - qi =3D qint_from_int(value); - g_assert(qi !=3D NULL); - g_assert(qi->value =3D=3D value); - g_assert(qi->base.refcnt =3D=3D 1); - g_assert(qobject_type(QOBJECT(qi)) =3D=3D QTYPE_QINT); - - // destroy doesn't exit yet - g_free(qi); -} - -static void qint_destroy_test(void) -{ - QInt *qi =3D qint_from_int(0); - QDECREF(qi); -} - -static void qint_from_int64_test(void) -{ - QInt *qi; - const int64_t value =3D 0x1234567890abcdefLL; - - qi =3D qint_from_int(value); - g_assert((int64_t) qi->value =3D=3D value); - - QDECREF(qi); -} - -static void qint_get_int_test(void) -{ - QInt *qi; - const int value =3D 123456; - - qi =3D qint_from_int(value); - g_assert(qint_get_int(qi) =3D=3D value); - - QDECREF(qi); -} - -static void qobject_to_qint_test(void) -{ - QInt *qi; - - qi =3D qint_from_int(0); - g_assert(qobject_to_qint(QOBJECT(qi)) =3D=3D qi); - - QDECREF(qi); -} - -int main(int argc, char **argv) -{ - g_test_init(&argc, &argv, NULL); - - g_test_add_func("/public/from_int", qint_from_int_test); - g_test_add_func("/public/destroy", qint_destroy_test); - g_test_add_func("/public/from_int64", qint_from_int64_test); - g_test_add_func("/public/get_int", qint_get_int_test); - g_test_add_func("/public/to_qint", qobject_to_qint_test); - - return g_test_run(); -} diff --git a/tests/check-qjson.c b/tests/check-qjson.c index 963dd46..f0a89f7 100644 --- a/tests/check-qjson.c +++ b/tests/check-qjson.c @@ -886,21 +886,23 @@ static void simple_number(void) }; =20 for (i =3D 0; test_cases[i].encoded; i++) { - QInt *qint; + QNum *qnum; + int64_t val; =20 - qint =3D qobject_to_qint(qobject_from_json(test_cases[i].encoded, + qnum =3D qobject_to_qnum(qobject_from_json(test_cases[i].encoded, &error_abort)); - g_assert(qint); - g_assert(qint_get_int(qint) =3D=3D test_cases[i].decoded); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, test_cases[i].decoded); if (test_cases[i].skip =3D=3D 0) { QString *str; =20 - str =3D qobject_to_json(QOBJECT(qint)); + str =3D qobject_to_json(QOBJECT(qnum)); g_assert(strcmp(qstring_get_str(str), test_cases[i].encoded) = =3D=3D 0); QDECREF(str); } =20 - QDECREF(qint); + QDECREF(qnum); } } =20 @@ -921,12 +923,12 @@ static void float_number(void) =20 for (i =3D 0; test_cases[i].encoded; i++) { QObject *obj; - QFloat *qfloat; + QNum *qnum; =20 obj =3D qobject_from_json(test_cases[i].encoded, &error_abort); - qfloat =3D qobject_to_qfloat(obj); - g_assert(qfloat); - g_assert(qfloat_get_double(qfloat) =3D=3D test_cases[i].decoded); + qnum =3D qobject_to_qnum(obj); + g_assert(qnum); + g_assert(qnum_get_double(qnum) =3D=3D test_cases[i].decoded); =20 if (test_cases[i].skip =3D=3D 0) { QString *str; @@ -936,29 +938,31 @@ static void float_number(void) QDECREF(str); } =20 - QDECREF(qfloat); + QDECREF(qnum); } } =20 static void vararg_number(void) { - QInt *qint; - QFloat *qfloat; + QNum *qnum; int value =3D 0x2342; long long value_ll =3D 0x2342342343LL; double valuef =3D 2.323423423; + int64_t val; =20 - qint =3D qobject_to_qint(qobject_from_jsonf("%d", value)); - g_assert(qint_get_int(qint) =3D=3D value); - QDECREF(qint); + qnum =3D qobject_to_qnum(qobject_from_jsonf("%d", value)); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, value); + QDECREF(qnum); =20 - qint =3D qobject_to_qint(qobject_from_jsonf("%lld", value_ll)); - g_assert(qint_get_int(qint) =3D=3D value_ll); - QDECREF(qint); + qnum =3D qobject_to_qnum(qobject_from_jsonf("%lld", value_ll)); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, value_ll); + QDECREF(qnum); =20 - qfloat =3D qobject_to_qfloat(qobject_from_jsonf("%f", valuef)); - g_assert(qfloat_get_double(qfloat) =3D=3D valuef); - QDECREF(qfloat); + qnum =3D qobject_to_qnum(qobject_from_jsonf("%f", valuef)); + g_assert(qnum_get_double(qnum) =3D=3D valuef); + QDECREF(qnum); } =20 static void keyword_literal(void) @@ -1019,7 +1023,7 @@ struct LiteralQObject { int type; union { - int64_t qint; + int64_t qnum; const char *qstr; LiteralQDictEntry *qdict; LiteralQObject *qlist; @@ -1032,7 +1036,7 @@ struct LiteralQDictEntry LiteralQObject value; }; =20 -#define QLIT_QINT(val) (LiteralQObject){.type =3D QTYPE_QINT, .value.qint = =3D (val)} +#define QLIT_QNUM(val) (LiteralQObject){.type =3D QTYPE_QNUM, .value.qnum = =3D (val)} #define QLIT_QSTR(val) (LiteralQObject){.type =3D QTYPE_QSTRING, .value.qs= tr =3D (val)} #define QLIT_QDICT(val) (LiteralQObject){.type =3D QTYPE_QDICT, .value.qdi= ct =3D (val)} #define QLIT_QLIST(val) (LiteralQObject){.type =3D QTYPE_QLIST, .value.qli= st =3D (val)} @@ -1064,13 +1068,16 @@ static void compare_helper(QObject *obj, void *opaq= ue) =20 static int compare_litqobj_to_qobj(LiteralQObject *lhs, QObject *rhs) { + int64_t val; + if (!rhs || lhs->type !=3D qobject_type(rhs)) { return 0; } =20 switch (lhs->type) { - case QTYPE_QINT: - return lhs->value.qint =3D=3D qint_get_int(qobject_to_qint(rhs)); + case QTYPE_QNUM: + g_assert(qnum_get_try_int(qobject_to_qnum(rhs), &val)); + return lhs->value.qnum =3D=3D val; case QTYPE_QSTRING: return (strcmp(lhs->value.qstr, qstring_get_str(qobject_to_qstring= (rhs))) =3D=3D 0); case QTYPE_QDICT: { @@ -1114,7 +1121,7 @@ static void simple_dict(void) { .encoded =3D "{\"foo\": 42, \"bar\": \"hello world\"}", .decoded =3D QLIT_QDICT(((LiteralQDictEntry[]){ - { "foo", QLIT_QINT(42) }, + { "foo", QLIT_QNUM(42) }, { "bar", QLIT_QSTR("hello world") }, { } })), @@ -1126,7 +1133,7 @@ static void simple_dict(void) }, { .encoded =3D "{\"foo\": 43}", .decoded =3D QLIT_QDICT(((LiteralQDictEntry[]){ - { "foo", QLIT_QINT(43) }, + { "foo", QLIT_QNUM(43) }, { } })), }, @@ -1212,15 +1219,15 @@ static void simple_list(void) { .encoded =3D "[43,42]", .decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(43), - QLIT_QINT(42), + QLIT_QNUM(43), + QLIT_QNUM(42), { } })), }, { .encoded =3D "[43]", .decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(43), + QLIT_QNUM(43), { } })), }, @@ -1269,35 +1276,35 @@ static void simple_whitespace(void) { .encoded =3D " [ 43 , 42 ]", .decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(43), - QLIT_QINT(42), + QLIT_QNUM(43), + QLIT_QNUM(42), { } })), }, { .encoded =3D " [ 43 , { 'h' : 'b' }, [ ], 42 ]", .decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(43), + QLIT_QNUM(43), QLIT_QDICT(((LiteralQDictEntry[]){ { "h", QLIT_QSTR("b") }, { }})), QLIT_QLIST(((LiteralQObject[]){ { }})), - QLIT_QINT(42), + QLIT_QNUM(42), { } })), }, { .encoded =3D " [ 43 , { 'h' : 'b' , 'a' : 32 }, [ ], 42 ]", .decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(43), + QLIT_QNUM(43), QLIT_QDICT(((LiteralQDictEntry[]){ { "h", QLIT_QSTR("b") }, - { "a", QLIT_QINT(32) }, + { "a", QLIT_QNUM(32) }, { }})), QLIT_QLIST(((LiteralQObject[]){ { }})), - QLIT_QINT(42), + QLIT_QNUM(42), { } })), }, @@ -1327,11 +1334,11 @@ static void simple_varargs(void) QObject *embedded_obj; QObject *obj; LiteralQObject decoded =3D QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(1), - QLIT_QINT(2), + QLIT_QNUM(1), + QLIT_QNUM(2), QLIT_QLIST(((LiteralQObject[]){ - QLIT_QINT(32), - QLIT_QINT(42), + QLIT_QNUM(32), + QLIT_QNUM(42), {}})), {}})); =20 diff --git a/tests/check-qlist.c b/tests/check-qlist.c index 4983867..a9b65c6 100644 --- a/tests/check-qlist.c +++ b/tests/check-qlist.c @@ -11,7 +11,8 @@ */ #include "qemu/osdep.h" =20 -#include "qapi/qmp/qint.h" +#include "qapi/error.h" +#include "qapi/qmp/qnum.h" #include "qapi/qmp/qlist.h" =20 /* @@ -35,11 +36,11 @@ static void qlist_new_test(void) =20 static void qlist_append_test(void) { - QInt *qi; + QNum *qi; QList *qlist; QListEntry *entry; =20 - qi =3D qint_from_int(42); + qi =3D qnum_from_int(42); =20 qlist =3D qlist_new(); qlist_append(qlist, qi); @@ -84,13 +85,17 @@ static const int iter_max =3D 42; =20 static void iter_func(QObject *obj, void *opaque) { - QInt *qi; + QNum *qi; + int64_t val; =20 g_assert(opaque =3D=3D NULL); =20 - qi =3D qobject_to_qint(obj); + qi =3D qobject_to_qnum(obj); g_assert(qi !=3D NULL); - g_assert((qint_get_int(qi) >=3D 0) && (qint_get_int(qi) <=3D iter_max)= ); + + g_assert(qnum_get_try_int(qi, &val)); + g_assert_cmpint(val, >=3D, 0); + g_assert_cmpint(val, <=3D, iter_max); =20 iter_called++; } diff --git a/tests/check-qnum.c b/tests/check-qnum.c new file mode 100644 index 0000000..d94cea0 --- /dev/null +++ b/tests/check-qnum.c @@ -0,0 +1,136 @@ +/* + * QNum unit-tests. + * + * Copyright (C) 2009 Red Hat Inc. + * Copyright IBM, Corp. 2009 + * + * Authors: + * Luiz Capitulino + * Anthony Liguori + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or l= ater. + * See the COPYING.LIB file in the top-level directory. + */ + +#include "qemu/osdep.h" + +#include "qapi/qmp/qnum.h" +#include "qapi/error.h" +#include "qemu-common.h" + +/* + * Public Interface test-cases + * + * (with some violations to access 'private' data) + */ + +static void qnum_from_int_test(void) +{ + QNum *qn; + const int value =3D -42; + + qn =3D qnum_from_int(value); + g_assert(qn !=3D NULL); + g_assert_cmpint(qn->kind, =3D=3D, QNUM_I64); + g_assert_cmpint(qn->u.i64, =3D=3D, value); + g_assert_cmpint(qn->base.refcnt, =3D=3D, 1); + g_assert_cmpint(qobject_type(QOBJECT(qn)), =3D=3D, QTYPE_QNUM); + + // destroy doesn't exit yet + g_free(qn); +} + +static void qnum_from_double_test(void) +{ + QNum *qn; + const double value =3D -42.23423; + + qn =3D qnum_from_double(value); + g_assert(qn !=3D NULL); + g_assert_cmpint(qn->kind, =3D=3D, QNUM_DOUBLE); + g_assert_cmpfloat(qn->u.dbl, =3D=3D, value); + g_assert_cmpint(qn->base.refcnt, =3D=3D, 1); + g_assert_cmpint(qobject_type(QOBJECT(qn)), =3D=3D, QTYPE_QNUM); + + // destroy doesn't exit yet + g_free(qn); +} + +static void qnum_from_int64_test(void) +{ + QNum *qn; + const int64_t value =3D 0x1234567890abcdefLL; + + qn =3D qnum_from_int(value); + g_assert_cmpint((int64_t) qn->u.i64, =3D=3D, value); + + QDECREF(qn); +} + +static void qnum_get_int_test(void) +{ + QNum *qn; + const int value =3D 123456; + + qn =3D qnum_from_int(value); + g_assert_cmpint(qnum_get_int(qn), =3D=3D, value); + + QDECREF(qn); +} + +static void qobject_to_qnum_test(void) +{ + QNum *qn; + + qn =3D qnum_from_int(0); + g_assert(qobject_to_qnum(QOBJECT(qn)) =3D=3D qn); + QDECREF(qn); + + qn =3D qnum_from_double(0); + g_assert(qobject_to_qnum(QOBJECT(qn)) =3D=3D qn); + QDECREF(qn); +} + +static void qnum_to_string_test(void) +{ + QNum *qn; + char *tmp; + + qn =3D qnum_from_int(123456); + tmp =3D qnum_to_string(qn); + g_assert_cmpstr(tmp, =3D=3D, "123456"); + g_free(tmp); + QDECREF(qn); + + qn =3D qnum_from_double(0.42); + tmp =3D qnum_to_string(qn); + g_assert_cmpstr(tmp, =3D=3D, "0.42"); + g_free(tmp); + QDECREF(qn); +} + +static void qnum_destroy_test(void) +{ + QNum *qn; + + qn =3D qnum_from_int(0); + QDECREF(qn); + + qn =3D qnum_from_double(0.42); + QDECREF(qn); +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/qnum/from_int", qnum_from_int_test); + g_test_add_func("/qnum/from_double", qnum_from_double_test); + g_test_add_func("/qnum/destroy", qnum_destroy_test); + g_test_add_func("/qnum/from_int64", qnum_from_int64_test); + g_test_add_func("/qnum/get_int", qnum_get_int_test); + g_test_add_func("/qnum/to_qnum", qobject_to_qnum_test); + g_test_add_func("/qnum/to_string", qnum_to_string_test); + + return g_test_run(); +} diff --git a/tests/qapi-schema/comments.out b/tests/qapi-schema/comments.out index 5d7c13c..17e6525 100644 --- a/tests/qapi-schema/comments.out +++ b/tests/qapi-schema/comments.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] object q_empty diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out index 70c1252..63ca25a 100644 --- a/tests/qapi-schema/doc-good.out +++ b/tests/qapi-schema/doc-good.out @@ -6,7 +6,7 @@ object Object tag base1 case one: Variant1 case two: Variant2 -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE object SugaredUnion member type: SugaredUnionKind optional=3DFalse diff --git a/tests/qapi-schema/empty.out b/tests/qapi-schema/empty.out index 8a5b034..40b886d 100644 --- a/tests/qapi-schema/empty.out +++ b/tests/qapi-schema/empty.out @@ -1,3 +1,3 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE object q_empty diff --git a/tests/qapi-schema/event-case.out b/tests/qapi-schema/event-cas= e.out index 5a0f2bf..313c0fe 100644 --- a/tests/qapi-schema/event-case.out +++ b/tests/qapi-schema/event-case.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE event oops None boxed=3DFalse diff --git a/tests/qapi-schema/ident-with-escape.out b/tests/qapi-schema/id= ent-with-escape.out index 1d2722c..b5637cb 100644 --- a/tests/qapi-schema/ident-with-escape.out +++ b/tests/qapi-schema/ident-with-escape.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE command fooA q_obj_fooA-arg -> None gen=3DTrue success_response=3DTrue boxed=3DFalse diff --git a/tests/qapi-schema/include-relpath.out b/tests/qapi-schema/incl= ude-relpath.out index 5d7c13c..17e6525 100644 --- a/tests/qapi-schema/include-relpath.out +++ b/tests/qapi-schema/include-relpath.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] object q_empty diff --git a/tests/qapi-schema/include-repetition.out b/tests/qapi-schema/i= nclude-repetition.out index 5d7c13c..17e6525 100644 --- a/tests/qapi-schema/include-repetition.out +++ b/tests/qapi-schema/include-repetition.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] object q_empty diff --git a/tests/qapi-schema/include-simple.out b/tests/qapi-schema/inclu= de-simple.out index 5d7c13c..17e6525 100644 --- a/tests/qapi-schema/include-simple.out +++ b/tests/qapi-schema/include-simple.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] object q_empty diff --git a/tests/qapi-schema/indented-expr.out b/tests/qapi-schema/indent= ed-expr.out index e8171c9..586795f 100644 --- a/tests/qapi-schema/indented-expr.out +++ b/tests/qapi-schema/indented-expr.out @@ -1,4 +1,4 @@ -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE command eins None -> None gen=3DTrue success_response=3DTrue boxed=3DFalse diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qap= i-schema-test.out index e727a5a..b88b8aa 100644 --- a/tests/qapi-schema/qapi-schema-test.out +++ b/tests/qapi-schema/qapi-schema-test.out @@ -50,7 +50,7 @@ object NestedEnumsOne member enum4: EnumOne optional=3DTrue enum QEnumTwo ['value1', 'value2'] prefix QENUM_TWO -enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat'= , 'qbool'] +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE object TestStruct member integer: int optional=3DFalse diff --git a/tests/test-qmp-commands.c b/tests/test-qmp-commands.c index acdded4..904c89d 100644 --- a/tests/test-qmp-commands.c +++ b/tests/test-qmp-commands.c @@ -162,7 +162,8 @@ static void test_dispatch_cmd_io(void) QDict *ud1b =3D qdict_new(); QDict *ret, *ret_dict, *ret_dict_dict, *ret_dict_dict_userdef; QDict *ret_dict_dict2, *ret_dict_dict2_userdef; - QInt *ret3; + QNum *ret3; + int64_t val; =20 qdict_put_int(ud1a, "integer", 42); qdict_put_str(ud1a, "string", "hello"); @@ -194,8 +195,9 @@ static void test_dispatch_cmd_io(void) qdict_put(req, "arguments", args3); qdict_put_str(req, "execute", "guest-get-time"); =20 - ret3 =3D qobject_to_qint(test_qmp_dispatch(req)); - assert(qint_get_int(ret3) =3D=3D 66); + ret3 =3D qobject_to_qnum(test_qmp_dispatch(req)); + g_assert(qnum_get_try_int(ret3, &val)); + g_assert_cmpint(val, =3D=3D, 66); QDECREF(ret3); =20 QDECREF(req); diff --git a/tests/test-qmp-event.c b/tests/test-qmp-event.c index 4c0f096..9fb3c5e 100644 --- a/tests/test-qmp-event.c +++ b/tests/test-qmp-event.c @@ -18,7 +18,6 @@ #include "test-qapi-visit.h" #include "test-qapi-event.h" #include "qapi/qmp/types.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qobject.h" #include "qapi/qmp-event.h" =20 @@ -41,6 +40,7 @@ void qdict_cmp_do_simple(const char *key, QObject *obj1, = void *opaque) { QObject *obj2; QDictCmpData d_new, *d =3D opaque; + int64_t val1, val2; =20 if (!d->result) { return; @@ -62,9 +62,10 @@ void qdict_cmp_do_simple(const char *key, QObject *obj1,= void *opaque) d->result =3D (qbool_get_bool(qobject_to_qbool(obj1)) =3D=3D qbool_get_bool(qobject_to_qbool(obj2))); return; - case QTYPE_QINT: - d->result =3D (qint_get_int(qobject_to_qint(obj1)) =3D=3D - qint_get_int(qobject_to_qint(obj2))); + case QTYPE_QNUM: + g_assert(qnum_get_try_int(qobject_to_qnum(obj1), &val1)); + g_assert(qnum_get_try_int(qobject_to_qnum(obj2), &val2)); + d->result =3D val1 =3D=3D val2; return; case QTYPE_QSTRING: d->result =3D g_strcmp0(qstring_get_str(qobject_to_qstring(obj1)), diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-= visitor.c index 4dc9c03..6890ce5 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -165,9 +165,10 @@ static void test_visitor_in_int_overflow(TestInputVisi= torData *data, Error *err =3D NULL; Visitor *v; =20 - /* this will overflow a Qint/int64, so should be deserialized into - * a QFloat/double field instead, leading to an error if we pass it - * to visit_type_int. confirm this. + /* + * This will overflow a QNUM_I64, so should be deserialized into a + * QNUM_DOUBLE field instead, leading to an error if we pass it to + * visit_type_int(). Confirm this. */ v =3D visitor_input_test_init(data, "%f", DBL_MAX); =20 @@ -469,17 +470,19 @@ static void test_visitor_in_any(TestInputVisitorData = *data, { QObject *res =3D NULL; Visitor *v; - QInt *qint; + QNum *qnum; QBool *qbool; QString *qstring; QDict *qdict; QObject *qobj; + int64_t val; =20 v =3D visitor_input_test_init(data, "-42"); visit_type_any(v, NULL, &res, &error_abort); - qint =3D qobject_to_qint(res); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, -42); + qnum =3D qobject_to_qnum(res); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, -42); qobject_decref(res); =20 v =3D visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true= , 'string': 'foo' }"); @@ -488,9 +491,10 @@ static void test_visitor_in_any(TestInputVisitorData *= data, g_assert(qdict && qdict_size(qdict) =3D=3D 3); qobj =3D qdict_get(qdict, "integer"); g_assert(qobj); - qint =3D qobject_to_qint(qobj); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, -42); + qnum =3D qobject_to_qnum(qobj); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, -42); qobj =3D qdict_get(qdict, "boolean"); g_assert(qobj); qbool =3D qobject_to_qbool(qobj); @@ -568,7 +572,7 @@ static void test_visitor_in_alternate(TestInputVisitorD= ata *data, =20 v =3D visitor_input_test_init(data, "42"); visit_type_UserDefAlternate(v, NULL, &tmp, &error_abort); - g_assert_cmpint(tmp->type, =3D=3D, QTYPE_QINT); + g_assert_cmpint(tmp->type, =3D=3D, QTYPE_QNUM); g_assert_cmpint(tmp->u.i, =3D=3D, 42); qapi_free_UserDefAlternate(tmp); =20 @@ -596,7 +600,7 @@ static void test_visitor_in_alternate(TestInputVisitorD= ata *data, =20 v =3D visitor_input_test_init(data, "{ 'alt': 42 }"); visit_type_WrapAlternate(v, NULL, &wrap, &error_abort); - g_assert_cmpint(wrap->alt->type, =3D=3D, QTYPE_QINT); + g_assert_cmpint(wrap->alt->type, =3D=3D, QTYPE_QNUM); g_assert_cmpint(wrap->alt->u.i, =3D=3D, 42); qapi_free_WrapAlternate(wrap); =20 @@ -637,19 +641,19 @@ static void test_visitor_in_alternate_number(TestInpu= tVisitorData *data, =20 v =3D visitor_input_test_init(data, "42"); visit_type_AltEnumNum(v, NULL, &aen, &error_abort); - g_assert_cmpint(aen->type, =3D=3D, QTYPE_QFLOAT); + g_assert_cmpint(aen->type, =3D=3D, QTYPE_QNUM); g_assert_cmpfloat(aen->u.n, =3D=3D, 42); qapi_free_AltEnumNum(aen); =20 v =3D visitor_input_test_init(data, "42"); visit_type_AltNumEnum(v, NULL, &ans, &error_abort); - g_assert_cmpint(ans->type, =3D=3D, QTYPE_QFLOAT); + g_assert_cmpint(ans->type, =3D=3D, QTYPE_QNUM); g_assert_cmpfloat(ans->u.n, =3D=3D, 42); qapi_free_AltNumEnum(ans); =20 v =3D visitor_input_test_init(data, "42"); visit_type_AltEnumInt(v, NULL, &asi, &error_abort); - g_assert_cmpint(asi->type, =3D=3D, QTYPE_QINT); + g_assert_cmpint(asi->type, =3D=3D, QTYPE_QNUM); g_assert_cmpint(asi->u.i, =3D=3D, 42); qapi_free_AltEnumInt(asi); =20 @@ -662,13 +666,13 @@ static void test_visitor_in_alternate_number(TestInpu= tVisitorData *data, =20 v =3D visitor_input_test_init(data, "42.5"); visit_type_AltEnumNum(v, NULL, &aen, &error_abort); - g_assert_cmpint(aen->type, =3D=3D, QTYPE_QFLOAT); + g_assert_cmpint(aen->type, =3D=3D, QTYPE_QNUM); g_assert_cmpfloat(aen->u.n, =3D=3D, 42.5); qapi_free_AltEnumNum(aen); =20 v =3D visitor_input_test_init(data, "42.5"); visit_type_AltNumEnum(v, NULL, &ans, &error_abort); - g_assert_cmpint(ans->type, =3D=3D, QTYPE_QFLOAT); + g_assert_cmpint(ans->type, =3D=3D, QTYPE_QNUM); g_assert_cmpfloat(ans->u.n, =3D=3D, 42.5); qapi_free_AltNumEnum(ans); =20 diff --git a/tests/test-qobject-output-visitor.c b/tests/test-qobject-outpu= t-visitor.c index 4e8fdf1..a16c8f6 100644 --- a/tests/test-qobject-output-visitor.c +++ b/tests/test-qobject-output-visitor.c @@ -58,13 +58,15 @@ static void test_visitor_out_int(TestOutputVisitorData = *data, const void *unused) { int64_t value =3D -42; - QInt *qint; + int64_t val; + QNum *qnum; =20 visit_type_int(data->ov, NULL, &value, &error_abort); =20 - qint =3D qobject_to_qint(visitor_get(data)); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, value); + qnum =3D qobject_to_qnum(visitor_get(data)); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, value); } =20 static void test_visitor_out_bool(TestOutputVisitorData *data, @@ -84,13 +86,13 @@ static void test_visitor_out_number(TestOutputVisitorDa= ta *data, const void *unused) { double value =3D 3.14; - QFloat *qfloat; + QNum *qnum; =20 visit_type_number(data->ov, NULL, &value, &error_abort); =20 - qfloat =3D qobject_to_qfloat(visitor_get(data)); - g_assert(qfloat); - g_assert(qfloat_get_double(qfloat) =3D=3D value); + qnum =3D qobject_to_qnum(visitor_get(data)); + g_assert(qnum); + g_assert(qnum_get_double(qnum) =3D=3D value); } =20 static void test_visitor_out_string(TestOutputVisitorData *data, @@ -329,16 +331,18 @@ static void test_visitor_out_any(TestOutputVisitorDat= a *data, const void *unused) { QObject *qobj; - QInt *qint; + QNum *qnum; QBool *qbool; QString *qstring; QDict *qdict; + int64_t val; =20 - qobj =3D QOBJECT(qint_from_int(-42)); + qobj =3D QOBJECT(qnum_from_int(-42)); visit_type_any(data->ov, NULL, &qobj, &error_abort); - qint =3D qobject_to_qint(visitor_get(data)); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, -42); + qnum =3D qobject_to_qnum(visitor_get(data)); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, -42); qobject_decref(qobj); =20 visitor_reset(data); @@ -351,9 +355,10 @@ static void test_visitor_out_any(TestOutputVisitorData= *data, qobject_decref(qobj); qdict =3D qobject_to_qdict(visitor_get(data)); g_assert(qdict); - qint =3D qobject_to_qint(qdict_get(qdict, "integer")); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, -42); + qnum =3D qobject_to_qnum(qdict_get(qdict, "integer")); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, -42); qbool =3D qobject_to_qbool(qdict_get(qdict, "boolean")); g_assert(qbool); g_assert(qbool_get_bool(qbool) =3D=3D true); @@ -388,18 +393,20 @@ static void test_visitor_out_alternate(TestOutputVisi= torData *data, const void *unused) { UserDefAlternate *tmp; - QInt *qint; + QNum *qnum; QString *qstr; QDict *qdict; + int64_t val; =20 tmp =3D g_new0(UserDefAlternate, 1); - tmp->type =3D QTYPE_QINT; + tmp->type =3D QTYPE_QNUM; tmp->u.i =3D 42; =20 visit_type_UserDefAlternate(data->ov, NULL, &tmp, &error_abort); - qint =3D qobject_to_qint(visitor_get(data)); - g_assert(qint); - g_assert_cmpint(qint_get_int(qint), =3D=3D, 42); + qnum =3D qobject_to_qnum(visitor_get(data)); + g_assert(qnum); + g_assert(qnum_get_try_int(qnum, &val)); + g_assert_cmpint(val, =3D=3D, 42); =20 qapi_free_UserDefAlternate(tmp); =20 @@ -603,18 +610,22 @@ static void check_native_list(QObject *qobj, case USER_DEF_NATIVE_LIST_UNION_KIND_U16: case USER_DEF_NATIVE_LIST_UNION_KIND_U32: case USER_DEF_NATIVE_LIST_UNION_KIND_U64: - /* all integer elements in JSON arrays get stored into QInts when - * we convert to QObjects, so we can check them all in the same - * fashion, so simply fall through here + /* + * All integer elements in JSON arrays get stored into QNums + * when we convert to QObjects, so we can check them all in + * the same fashion, so simply fall through here. */ case USER_DEF_NATIVE_LIST_UNION_KIND_INTEGER: for (i =3D 0; i < 32; i++) { QObject *tmp; - QInt *qvalue; + QNum *qvalue; + int64_t val; + tmp =3D qlist_peek(qlist); g_assert(tmp); - qvalue =3D qobject_to_qint(tmp); - g_assert_cmpint(qint_get_int(qvalue), =3D=3D, i); + qvalue =3D qobject_to_qnum(tmp); + g_assert(qnum_get_try_int(qvalue, &val)); + g_assert_cmpint(val, =3D=3D, i); qobject_decref(qlist_pop(qlist)); } break; @@ -645,15 +656,15 @@ static void check_native_list(QObject *qobj, case USER_DEF_NATIVE_LIST_UNION_KIND_NUMBER: for (i =3D 0; i < 32; i++) { QObject *tmp; - QFloat *qvalue; + QNum *qvalue; GString *double_expected =3D g_string_new(""); GString *double_actual =3D g_string_new(""); =20 tmp =3D qlist_peek(qlist); g_assert(tmp); - qvalue =3D qobject_to_qfloat(tmp); + qvalue =3D qobject_to_qnum(tmp); g_string_printf(double_expected, "%.6f", (double)i / 3); - g_string_printf(double_actual, "%.6f", qfloat_get_double(qvalu= e)); + g_string_printf(double_actual, "%.6f", qnum_get_double(qvalue)= ); g_assert_cmpstr(double_actual->str, =3D=3D, double_expected->s= tr); =20 qobject_decref(qlist_pop(qlist)); diff --git a/tests/test-x86-cpuid-compat.c b/tests/test-x86-cpuid-compat.c index 4166ce5..58a2dd9 100644 --- a/tests/test-x86-cpuid-compat.c +++ b/tests/test-x86-cpuid-compat.c @@ -1,9 +1,8 @@ #include "qemu/osdep.h" #include "qemu-common.h" -#include "qapi/qmp/qlist.h" -#include "qapi/qmp/qstring.h" +#include "qapi/error.h" #include "qapi/qmp/qdict.h" -#include "qapi/qmp/qint.h" +#include "qapi/qmp/qnum.h" #include "qapi/qmp/qbool.h" #include "libqtest.h" =20 @@ -57,12 +56,14 @@ static void test_cpuid_prop(const void *data) { const CpuidTestArgs *args =3D data; char *path; - QInt *value; + QNum *value; + int64_t val; =20 qtest_start(args->cmdline); path =3D get_cpu0_qom_path(); - value =3D qobject_to_qint(qom_get(path, args->property)); - g_assert_cmpint(qint_get_int(value), =3D=3D, args->expected_value); + value =3D qobject_to_qnum(qom_get(path, args->property)); + g_assert(qnum_get_try_int(value, &val)); + g_assert_cmpint(val, =3D=3D, args->expected_value); qtest_end(); =20 QDECREF(value); @@ -109,12 +110,15 @@ static uint32_t get_feature_word(QList *features, uin= t32_t eax, uint32_t ecx, uint32_t reax =3D qdict_get_int(w, "cpuid-input-eax"); bool has_ecx =3D qdict_haskey(w, "cpuid-input-ecx"); uint32_t recx =3D 0; + int64_t val; =20 if (has_ecx) { recx =3D qdict_get_int(w, "cpuid-input-ecx"); } if (eax =3D=3D reax && (!has_ecx || ecx =3D=3D recx) && !strcmp(rr= eg, reg)) { - return qint_get_int(qobject_to_qint(qdict_get(w, "features"))); + g_assert(qnum_get_try_int(qobject_to_qnum(qdict_get(w, "featur= es")), + &val)); + return val; } } return 0; diff --git a/ui/spice-core.c b/ui/spice-core.c index a087ad5..7519965 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -30,7 +30,6 @@ #include "qemu-x509.h" #include "qemu/sockets.h" #include "qmp-commands.h" -#include "qapi/qmp/qint.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" #include "qapi/qmp/qjson.h" diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c index 1e53b1c..89ab12c 100644 --- a/ui/vnc-enc-tight.c +++ b/ui/vnc-enc-tight.c @@ -44,7 +44,6 @@ #endif =20 #include "qemu/bswap.h" -#include "qapi/qmp/qint.h" #include "vnc.h" #include "vnc-enc-tight.h" #include "vnc-palette.h" diff --git a/util/qemu-option.c b/util/qemu-option.c index 5977bfc..9b1dc80 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -941,9 +941,8 @@ typedef struct OptsFromQDictState { static void qemu_opts_from_qdict_1(const char *key, QObject *obj, void *op= aque) { OptsFromQDictState *state =3D opaque; - char buf[32]; + char buf[32], *tmp =3D NULL; const char *value; - int n; =20 if (!strcmp(key, "id") || *state->errp) { return; @@ -953,17 +952,9 @@ static void qemu_opts_from_qdict_1(const char *key, QO= bject *obj, void *opaque) case QTYPE_QSTRING: value =3D qstring_get_str(qobject_to_qstring(obj)); break; - case QTYPE_QINT: - n =3D snprintf(buf, sizeof(buf), "%" PRId64, - qint_get_int(qobject_to_qint(obj))); - assert(n < sizeof(buf)); - value =3D buf; - break; - case QTYPE_QFLOAT: - n =3D snprintf(buf, sizeof(buf), "%.17g", - qfloat_get_double(qobject_to_qfloat(obj))); - assert(n < sizeof(buf)); - value =3D buf; + case QTYPE_QNUM: + tmp =3D qnum_to_string(qobject_to_qnum(obj)); + value =3D tmp; break; case QTYPE_QBOOL: pstrcpy(buf, sizeof(buf), @@ -975,13 +966,14 @@ static void qemu_opts_from_qdict_1(const char *key, Q= Object *obj, void *opaque) } =20 qemu_opt_set(state->opts, key, value, state->errp); + g_free(tmp); } =20 /* * Create QemuOpts from a QDict. - * Use value of key "id" as ID if it exists and is a QString. - * Only QStrings, QInts, QFloats and QBools are copied. Entries with - * other types are silently ignored. + * Use value of key "id" as ID if it exists and is a QString. Only + * QStrings, QNums and QBools are copied. Entries with other types + * are silently ignored. */ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list, const QDict *qdict, Error **errp) --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963736973386.5692595244981; Tue, 20 Jun 2017 06:02:16 -0700 (PDT) Received: from localhost ([::1]:48725 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNInH-00073N-JU for importer@patchew.org; Tue, 20 Jun 2017 09:02:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45384) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITJ-0004Rf-Iz for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITC-0002Hn-Gq for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45492) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITC-0002Gr-7T for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 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 4758DC056827 for ; Tue, 20 Jun 2017 12:41:21 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 83B956DACB; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4F4D21150F76; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4758DC056827 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4758DC056827 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:34 +0200 Message-Id: <1497962468-22936-8-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.32]); Tue, 20 Jun 2017 12:41: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 v2 07/41] qapi: Remove visit_start_alternate() parameter promote_int 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Before the previous commit, parameter promote_int =3D true made visit_start_alternate() with an input visitor avoid QTYPE_QINT variants and create QTYPE_QFLOAT variants instead. This was used where QTYPE_QINT variants were invalid. The previous commit fused QTYPE_QINT with QTYPE_QFLOAT, rendering promote_int useless and unused. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-8-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- include/qapi/visitor-impl.h | 2 +- include/qapi/visitor.h | 4 +--- qapi/qapi-clone-visitor.c | 2 +- qapi/qapi-dealloc-visitor.c | 2 +- qapi/qapi-visit-core.c | 6 +++--- qapi/qobject-input-visitor.c | 2 +- qapi/trace-events | 2 +- scripts/qapi-visit.py | 12 +++--------- tests/test-qobject-input-visitor.c | 2 +- 9 files changed, 13 insertions(+), 21 deletions(-) diff --git a/include/qapi/visitor-impl.h b/include/qapi/visitor-impl.h index e87709d..dcd656a 100644 --- a/include/qapi/visitor-impl.h +++ b/include/qapi/visitor-impl.h @@ -71,7 +71,7 @@ struct Visitor * optional for output visitors. */ void (*start_alternate)(Visitor *v, const char *name, GenericAlternate **obj, size_t size, - bool promote_int, Error **errp); + Error **errp); =20 /* Optional, needed for dealloc visitor */ void (*end_alternate)(Visitor *v, void **obj); diff --git a/include/qapi/visitor.h b/include/qapi/visitor.h index 4721c39..74768aa 100644 --- a/include/qapi/visitor.h +++ b/include/qapi/visitor.h @@ -410,15 +410,13 @@ void visit_end_list(Visitor *v, void **list); * the qtype of the next thing to be visited, stored in (*@obj)->type. * Other visitors will leave @obj unchanged. * - * If @promote_int, treat integers as QTYPE_FLOAT. - * * If successful, this must be paired with visit_end_alternate() with * the same @obj to clean up, even if visiting the contents of the * alternate fails. */ void visit_start_alternate(Visitor *v, const char *name, GenericAlternate **obj, size_t size, - bool promote_int, Error **errp); + Error **errp); =20 /* * Finish visiting an alternate type. diff --git a/qapi/qapi-clone-visitor.c b/qapi/qapi-clone-visitor.c index de756bf..ed16d3a 100644 --- a/qapi/qapi-clone-visitor.c +++ b/qapi/qapi-clone-visitor.c @@ -70,7 +70,7 @@ static GenericList *qapi_clone_next_list(Visitor *v, Gene= ricList *tail, =20 static void qapi_clone_start_alternate(Visitor *v, const char *name, GenericAlternate **obj, size_t size, - bool promote_int, Error **errp) + Error **errp) { qapi_clone_start_struct(v, name, (void **)obj, size, errp); } diff --git a/qapi/qapi-dealloc-visitor.c b/qapi/qapi-dealloc-visitor.c index e39457b..fd6f9fb 100644 --- a/qapi/qapi-dealloc-visitor.c +++ b/qapi/qapi-dealloc-visitor.c @@ -38,7 +38,7 @@ static void qapi_dealloc_end_struct(Visitor *v, void **ob= j) =20 static void qapi_dealloc_start_alternate(Visitor *v, const char *name, GenericAlternate **obj, size_t si= ze, - bool promote_int, Error **errp) + Error **errp) { } =20 diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c index 43a09d1..935a2c5 100644 --- a/qapi/qapi-visit-core.c +++ b/qapi/qapi-visit-core.c @@ -106,15 +106,15 @@ void visit_end_list(Visitor *v, void **obj) =20 void visit_start_alternate(Visitor *v, const char *name, GenericAlternate **obj, size_t size, - bool promote_int, Error **errp) + Error **errp) { Error *err =3D NULL; =20 assert(obj && size >=3D sizeof(GenericAlternate)); assert(!(v->type & VISITOR_OUTPUT) || *obj); - trace_visit_start_alternate(v, name, obj, size, promote_int); + trace_visit_start_alternate(v, name, obj, size); if (v->start_alternate) { - v->start_alternate(v, name, obj, size, promote_int, &err); + v->start_alternate(v, name, obj, size, &err); } if (v->type & VISITOR_INPUT) { assert(v->start_alternate && !err !=3D !*obj); diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index b24f99d..539b3b8 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -367,7 +367,7 @@ static void qobject_input_end_list(Visitor *v, void **o= bj) =20 static void qobject_input_start_alternate(Visitor *v, const char *name, GenericAlternate **obj, size_t s= ize, - bool promote_int, Error **errp) + Error **errp) { QObjectInputVisitor *qiv =3D to_qiv(v); QObject *qobj =3D qobject_input_get_object(qiv, name, false, errp); diff --git a/qapi/trace-events b/qapi/trace-events index 339cacf..3b57aba 100644 --- a/qapi/trace-events +++ b/qapi/trace-events @@ -11,7 +11,7 @@ visit_next_list(void *v, void *tail, size_t size) "v=3D%p= tail=3D%p size=3D%zu" visit_check_list(void *v) "v=3D%p" visit_end_list(void *v, void *obj) "v=3D%p obj=3D%p" =20 -visit_start_alternate(void *v, const char *name, void *obj, size_t size, b= ool promote_int) "v=3D%p name=3D%s obj=3D%p size=3D%zu promote_int=3D%d" +visit_start_alternate(void *v, const char *name, void *obj, size_t size) "= v=3D%p name=3D%s obj=3D%p size=3D%zu" visit_end_alternate(void *v, void *obj) "v=3D%p obj=3D%p" =20 visit_optional(void *v, const char *name, bool *present) "v=3D%p name=3D%s= present=3D%p" diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index cc447ec..bd0b742 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -161,20 +161,14 @@ void visit_type_%(c_name)s(Visitor *v, const char *na= me, %(c_name)s *obj, Error =20 =20 def gen_visit_alternate(name, variants): - promote_int =3D 'true' - ret =3D '' - for var in variants.variants: - if var.type.alternate_qtype() =3D=3D 'QTYPE_QNUM': - promote_int =3D 'false' - - ret +=3D mcgen(''' + ret =3D mcgen(''' =20 void visit_type_%(c_name)s(Visitor *v, const char *name, %(c_name)s **obj,= Error **errp) { Error *err =3D NULL; =20 visit_start_alternate(v, name, (GenericAlternate **)obj, sizeof(**obj), - %(promote_int)s, &err); + &err); if (err) { goto out; } @@ -183,7 +177,7 @@ void visit_type_%(c_name)s(Visitor *v, const char *name= , %(c_name)s **obj, Error } switch ((*obj)->type) { ''', - c_name=3Dc_name(name), promote_int=3Dpromote_int) + c_name=3Dc_name(name)) =20 for var in variants.variants: ret +=3D mcgen(''' diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-= visitor.c index 6890ce5..928cc26 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -1105,7 +1105,7 @@ static void test_visitor_in_fail_struct_missing(TestI= nputVisitorData *data, error_free_or_abort(&err); visit_start_list(v, "list", NULL, 0, &err); error_free_or_abort(&err); - visit_start_alternate(v, "alternate", &alt, sizeof(*alt), false, &err); + visit_start_alternate(v, "alternate", &alt, sizeof(*alt), &err); error_free_or_abort(&err); visit_optional(v, "optional", &present); g_assert(!present); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962882470800.4348207860334; Tue, 20 Jun 2017 05:48:02 -0700 (PDT) Received: from localhost ([::1]:48636 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIZa-0002FV-ST for importer@patchew.org; Tue, 20 Jun 2017 08:47:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT8-0004E0-2a for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT6-00029w-9N for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59918) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT6-00029M-0j for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:16 -0400 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 0749AC04D2A3 for ; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 866A758858; Tue, 20 Jun 2017 12:41:14 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5218B1156407; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 0749AC04D2A3 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 0749AC04D2A3 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:35 +0200 Message-Id: <1497962468-22936-9-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 20 Jun 2017 12:41: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 v2 08/41] tests: remove /{qnum, qlist, dict}/destroy test 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau The tests aren't really useful, or already covered by other simple tests. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-9-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- tests/check-qdict.c | 9 ++------- tests/check-qlist.c | 23 ++--------------------- tests/check-qnum.c | 18 ++---------------- tests/check-qstring.c | 9 --------- 4 files changed, 6 insertions(+), 53 deletions(-) diff --git a/tests/check-qdict.c b/tests/check-qdict.c index f067c63..5eca1b5 100644 --- a/tests/check-qdict.c +++ b/tests/check-qdict.c @@ -32,8 +32,7 @@ static void qdict_new_test(void) g_assert(qdict->base.refcnt =3D=3D 1); g_assert(qobject_type(QOBJECT(qdict)) =3D=3D QTYPE_QDICT); =20 - // destroy doesn't exit yet - g_free(qdict); + QDECREF(qdict); } =20 static void qdict_put_obj_test(void) @@ -53,11 +52,7 @@ static void qdict_put_obj_test(void) qn =3D qobject_to_qnum(ent->value); g_assert_cmpint(qnum_get_int(qn), =3D=3D, num); =20 - // destroy doesn't exit yet - QDECREF(qn); - g_free(ent->key); - g_free(ent); - g_free(qdict); + QDECREF(qdict); } =20 static void qdict_destroy_simple_test(void) diff --git a/tests/check-qlist.c b/tests/check-qlist.c index a9b65c6..894e991 100644 --- a/tests/check-qlist.c +++ b/tests/check-qlist.c @@ -30,8 +30,7 @@ static void qlist_new_test(void) g_assert(qlist->base.refcnt =3D=3D 1); g_assert(qobject_type(QOBJECT(qlist)) =3D=3D QTYPE_QLIST); =20 - // destroy doesn't exist yet - g_free(qlist); + QDECREF(qlist); } =20 static void qlist_append_test(void) @@ -49,10 +48,7 @@ static void qlist_append_test(void) g_assert(entry !=3D NULL); g_assert(entry->value =3D=3D QOBJECT(qi)); =20 - // destroy doesn't exist yet - QDECREF(qi); - g_free(entry); - g_free(qlist); + QDECREF(qlist); } =20 static void qobject_to_qlist_test(void) @@ -63,20 +59,6 @@ static void qobject_to_qlist_test(void) =20 g_assert(qobject_to_qlist(QOBJECT(qlist)) =3D=3D qlist); =20 - // destroy doesn't exist yet - g_free(qlist); -} - -static void qlist_destroy_test(void) -{ - int i; - QList *qlist; - - qlist =3D qlist_new(); - - for (i =3D 0; i < 42; i++) - qlist_append_int(qlist, i); - QDECREF(qlist); } =20 @@ -125,7 +107,6 @@ int main(int argc, char **argv) g_test_add_func("/public/new", qlist_new_test); g_test_add_func("/public/append", qlist_append_test); g_test_add_func("/public/to_qlist", qobject_to_qlist_test); - g_test_add_func("/public/destroy", qlist_destroy_test); g_test_add_func("/public/iter", qlist_iter_test); =20 return g_test_run(); diff --git a/tests/check-qnum.c b/tests/check-qnum.c index d94cea0..da7e0b0 100644 --- a/tests/check-qnum.c +++ b/tests/check-qnum.c @@ -36,8 +36,7 @@ static void qnum_from_int_test(void) g_assert_cmpint(qn->base.refcnt, =3D=3D, 1); g_assert_cmpint(qobject_type(QOBJECT(qn)), =3D=3D, QTYPE_QNUM); =20 - // destroy doesn't exit yet - g_free(qn); + QDECREF(qn); } =20 static void qnum_from_double_test(void) @@ -52,8 +51,7 @@ static void qnum_from_double_test(void) g_assert_cmpint(qn->base.refcnt, =3D=3D, 1); g_assert_cmpint(qobject_type(QOBJECT(qn)), =3D=3D, QTYPE_QNUM); =20 - // destroy doesn't exit yet - g_free(qn); + QDECREF(qn); } =20 static void qnum_from_int64_test(void) @@ -109,24 +107,12 @@ static void qnum_to_string_test(void) QDECREF(qn); } =20 -static void qnum_destroy_test(void) -{ - QNum *qn; - - qn =3D qnum_from_int(0); - QDECREF(qn); - - qn =3D qnum_from_double(0.42); - QDECREF(qn); -} - int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); =20 g_test_add_func("/qnum/from_int", qnum_from_int_test); g_test_add_func("/qnum/from_double", qnum_from_double_test); - g_test_add_func("/qnum/destroy", qnum_destroy_test); g_test_add_func("/qnum/from_int64", qnum_from_int64_test); g_test_add_func("/qnum/get_int", qnum_get_int_test); g_test_add_func("/qnum/to_qnum", qobject_to_qnum_test); diff --git a/tests/check-qstring.c b/tests/check-qstring.c index 239e9d9..112ec08 100644 --- a/tests/check-qstring.c +++ b/tests/check-qstring.c @@ -31,14 +31,6 @@ static void qstring_from_str_test(void) g_assert(strcmp(str, qstring->string) =3D=3D 0); g_assert(qobject_type(QOBJECT(qstring)) =3D=3D QTYPE_QSTRING); =20 - // destroy doesn't exit yet - g_free(qstring->string); - g_free(qstring); -} - -static void qstring_destroy_test(void) -{ - QString *qstring =3D qstring_from_str("destroy test"); QDECREF(qstring); } =20 @@ -97,7 +89,6 @@ int main(int argc, char **argv) g_test_init(&argc, &argv, NULL); =20 g_test_add_func("/public/from_str", qstring_from_str_test); - g_test_add_func("/public/destroy", qstring_destroy_test); g_test_add_func("/public/get_str", qstring_get_str_test); g_test_add_func("/public/append_chr", qstring_append_chr_test); g_test_add_func("/public/from_substr", qstring_from_substr_test); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963034300548.2104878586521; Tue, 20 Jun 2017 05:50:34 -0700 (PDT) Received: from localhost ([::1]:48647 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIc3-0004JI-Ox for importer@patchew.org; Tue, 20 Jun 2017 08:50:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004F5-5h for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002B5-70 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34684) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT6-00029q-SE for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 C056961B91 for ; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5D5B558858; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 54F09110CFEE; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C056961B91 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C056961B91 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:36 +0200 Message-Id: <1497962468-22936-10-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 09/41] qnum: add uint type 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau In order to store integer values between INT64_MAX and UINT64_MAX, add a uint64_t internal representation. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-10-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- include/qapi/qmp/qnum.h | 7 ++++++ qobject/qnum.c | 64 +++++++++++++++++++++++++++++++++++++++++++++= ++++ tests/check-qnum.c | 48 +++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) diff --git a/include/qapi/qmp/qnum.h b/include/qapi/qmp/qnum.h index e42b136..09d745c 100644 --- a/include/qapi/qmp/qnum.h +++ b/include/qapi/qmp/qnum.h @@ -19,6 +19,7 @@ =20 typedef enum { QNUM_I64, + QNUM_U64, QNUM_DOUBLE } QNumKind; =20 @@ -27,15 +28,21 @@ typedef struct QNum { QNumKind kind; union { int64_t i64; + uint64_t u64; double dbl; } u; } QNum; =20 QNum *qnum_from_int(int64_t value); +QNum *qnum_from_uint(uint64_t value); QNum *qnum_from_double(double value); =20 bool qnum_get_try_int(const QNum *qn, int64_t *val); int64_t qnum_get_int(const QNum *qn); + +bool qnum_get_try_uint(const QNum *qn, uint64_t *val); +uint64_t qnum_get_uint(const QNum *qn); + double qnum_get_double(QNum *qn); =20 char *qnum_to_string(QNum *qn); diff --git a/qobject/qnum.c b/qobject/qnum.c index 7bb9006..476e81c 100644 --- a/qobject/qnum.c +++ b/qobject/qnum.c @@ -35,6 +35,22 @@ QNum *qnum_from_int(int64_t value) } =20 /** + * qnum_from_uint(): Create a new QNum from an uint64_t + * + * Return strong reference. + */ +QNum *qnum_from_uint(uint64_t value) +{ + QNum *qn =3D g_new(QNum, 1); + + qobject_init(QOBJECT(qn), QTYPE_QNUM); + qn->kind =3D QNUM_U64; + qn->u.u64 =3D value; + + return qn; +} + +/** * qnum_from_double(): Create a new QNum from a double * * Return strong reference. @@ -61,6 +77,12 @@ bool qnum_get_try_int(const QNum *qn, int64_t *val) case QNUM_I64: *val =3D qn->u.i64; return true; + case QNUM_U64: + if (qn->u.u64 > INT64_MAX) { + return false; + } + *val =3D qn->u.u64; + return true; case QNUM_DOUBLE: return false; } @@ -83,6 +105,44 @@ int64_t qnum_get_int(const QNum *qn) } =20 /** + * qnum_get_uint(): Get an unsigned integer from the number + * + * Return true on success. + */ +bool qnum_get_try_uint(const QNum *qn, uint64_t *val) +{ + switch (qn->kind) { + case QNUM_I64: + if (qn->u.i64 < 0) { + return false; + } + *val =3D qn->u.i64; + return true; + case QNUM_U64: + *val =3D qn->u.u64; + return true; + case QNUM_DOUBLE: + return false; + } + + assert(0); + return false; +} + +/** + * qnum_get_uint(): Get an unsigned integer from the number + * + * assert() on failure. + */ +uint64_t qnum_get_uint(const QNum *qn) +{ + uint64_t val; + bool success =3D qnum_get_try_uint(qn, &val); + assert(success); + return val; +} + +/** * qnum_get_double(): Get a float representation of the number * * qnum_get_double() loses precision for integers beyond 53 bits. @@ -92,6 +152,8 @@ double qnum_get_double(QNum *qn) switch (qn->kind) { case QNUM_I64: return qn->u.i64; + case QNUM_U64: + return qn->u.u64; case QNUM_DOUBLE: return qn->u.dbl; } @@ -108,6 +170,8 @@ char *qnum_to_string(QNum *qn) switch (qn->kind) { case QNUM_I64: return g_strdup_printf("%" PRId64, qn->u.i64); + case QNUM_U64: + return g_strdup_printf("%" PRIu64, qn->u.u64); case QNUM_DOUBLE: /* FIXME: snprintf() is locale dependent; but JSON requires * numbers to be formatted as if in the C locale. Dependence diff --git a/tests/check-qnum.c b/tests/check-qnum.c index da7e0b0..d702d5d 100644 --- a/tests/check-qnum.c +++ b/tests/check-qnum.c @@ -39,6 +39,21 @@ static void qnum_from_int_test(void) QDECREF(qn); } =20 +static void qnum_from_uint_test(void) +{ + QNum *qn; + const uint64_t value =3D UINT64_MAX; + + qn =3D qnum_from_uint(value); + g_assert(qn !=3D NULL); + g_assert_cmpint(qn->kind, =3D=3D, QNUM_U64); + g_assert(qn->u.u64 =3D=3D value); + g_assert(qn->base.refcnt =3D=3D 1); + g_assert(qobject_type(QOBJECT(qn)) =3D=3D QTYPE_QNUM); + + QDECREF(qn); +} + static void qnum_from_double_test(void) { QNum *qn; @@ -76,6 +91,37 @@ static void qnum_get_int_test(void) QDECREF(qn); } =20 +static void qnum_get_uint_test(void) +{ + QNum *qn; + const int value =3D 123456; + uint64_t val; + int64_t ival; + + qn =3D qnum_from_uint(value); + g_assert(qnum_get_try_uint(qn, &val)); + g_assert_cmpuint(val, =3D=3D, value); + QDECREF(qn); + + qn =3D qnum_from_int(value); + g_assert(qnum_get_try_uint(qn, &val)); + g_assert_cmpuint(val, =3D=3D, value); + QDECREF(qn); + + /* invalid cases */ + qn =3D qnum_from_int(-1); + g_assert(!qnum_get_try_uint(qn, &val)); + QDECREF(qn); + + qn =3D qnum_from_uint(-1ULL); + g_assert(!qnum_get_try_int(qn, &ival)); + QDECREF(qn); + + qn =3D qnum_from_double(0.42); + g_assert(!qnum_get_try_uint(qn, &val)); + QDECREF(qn); +} + static void qobject_to_qnum_test(void) { QNum *qn; @@ -112,9 +158,11 @@ int main(int argc, char **argv) g_test_init(&argc, &argv, NULL); =20 g_test_add_func("/qnum/from_int", qnum_from_int_test); + g_test_add_func("/qnum/from_uint", qnum_from_uint_test); g_test_add_func("/qnum/from_double", qnum_from_double_test); g_test_add_func("/qnum/from_int64", qnum_from_int64_test); g_test_add_func("/qnum/get_int", qnum_get_int_test); + g_test_add_func("/qnum/get_uint", qnum_get_uint_test); g_test_add_func("/qnum/to_qnum", qobject_to_qnum_test); g_test_add_func("/qnum/to_string", qnum_to_string_test); =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963179402985.9168523128786; Tue, 20 Jun 2017 05:52:59 -0700 (PDT) Received: from localhost ([::1]:48658 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIeP-0006XL-NJ for importer@patchew.org; Tue, 20 Jun 2017 08:52:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45059) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004FM-Aj for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002Az-5F for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5637) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT6-00029r-RU for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 C45F240F0D for ; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 61F9258859; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 57C74110CFC4; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C45F240F0D Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C45F240F0D From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:37 +0200 Message-Id: <1497962468-22936-11-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.30]); Tue, 20 Jun 2017 12:41: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 v2 10/41] json: learn to parse uint64 numbers 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Switch strtoll() usage to qemu_strtoi64() helper while at it. Add a few tests for large numbers. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-11-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qobject/json-lexer.c | 4 ++++ qobject/json-parser.c | 36 ++++++++++++++++++++++++++++-------- tests/check-qjson.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 8 deletions(-) diff --git a/qobject/json-lexer.c b/qobject/json-lexer.c index af4a75e..980ba15 100644 --- a/qobject/json-lexer.c +++ b/qobject/json-lexer.c @@ -227,15 +227,18 @@ static const uint8_t json_lexer[][256] =3D { /* escape */ [IN_ESCAPE_LL] =3D { ['d'] =3D JSON_ESCAPE, + ['u'] =3D JSON_ESCAPE, }, =20 [IN_ESCAPE_L] =3D { ['d'] =3D JSON_ESCAPE, ['l'] =3D IN_ESCAPE_LL, + ['u'] =3D JSON_ESCAPE, }, =20 [IN_ESCAPE_I64] =3D { ['d'] =3D JSON_ESCAPE, + ['u'] =3D JSON_ESCAPE, }, =20 [IN_ESCAPE_I6] =3D { @@ -251,6 +254,7 @@ static const uint8_t json_lexer[][256] =3D { ['i'] =3D JSON_ESCAPE, ['p'] =3D JSON_ESCAPE, ['s'] =3D JSON_ESCAPE, + ['u'] =3D JSON_ESCAPE, ['f'] =3D JSON_ESCAPE, ['l'] =3D IN_ESCAPE_L, ['I'] =3D IN_ESCAPE_I, diff --git a/qobject/json-parser.c b/qobject/json-parser.c index 5e80828..7a417f2 100644 --- a/qobject/json-parser.c +++ b/qobject/json-parser.c @@ -12,6 +12,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/cutils.h" #include "qapi/error.h" #include "qemu-common.h" #include "qapi/qmp/types.h" @@ -472,6 +473,13 @@ static QObject *parse_escape(JSONParserContext *ctxt, = va_list *ap) } else if (!strcmp(token->str, "%lld") || !strcmp(token->str, "%I64d")) { return QOBJECT(qnum_from_int(va_arg(*ap, long long))); + } else if (!strcmp(token->str, "%u")) { + return QOBJECT(qnum_from_uint(va_arg(*ap, unsigned int))); + } else if (!strcmp(token->str, "%lu")) { + return QOBJECT(qnum_from_uint(va_arg(*ap, unsigned long))); + } else if (!strcmp(token->str, "%llu") || + !strcmp(token->str, "%I64u")) { + return QOBJECT(qnum_from_uint(va_arg(*ap, unsigned long long))); } else if (!strcmp(token->str, "%s")) { return QOBJECT(qstring_from_str(va_arg(*ap, const char *))); } else if (!strcmp(token->str, "%f")) { @@ -493,21 +501,33 @@ static QObject *parse_literal(JSONParserContext *ctxt) case JSON_INTEGER: { /* * Represent JSON_INTEGER as QNUM_I64 if possible, else as - * QNUM_DOUBLE. Note that strtoll() fails with ERANGE when - * it's not possible. + * QNUM_U64, else as QNUM_DOUBLE. Note that qemu_strtoi64() + * and qemu_strtou64() fail with ERANGE when it's not + * possible. * * qnum_get_int() will then work for any signed 64-bit - * JSON_INTEGER, and qnum_get_double() both for any - * JSON_INTEGER and any JSON_FLOAT (with precision loss for - * integers beyond 53 bits) + * JSON_INTEGER, qnum_get_uint() for any unsigned 64-bit + * integer, and qnum_get_double() both for any JSON_INTEGER + * and any JSON_FLOAT (with precision loss for integers beyond + * 53 bits) */ + int ret; int64_t value; + uint64_t uvalue; =20 - errno =3D 0; /* strtoll doesn't set errno on success */ - value =3D strtoll(token->str, NULL, 10); - if (errno !=3D ERANGE) { + ret =3D qemu_strtoi64(token->str, NULL, 10, &value); + if (!ret) { return QOBJECT(qnum_from_int(value)); } + assert(ret =3D=3D -ERANGE); + + if (token->str[0] !=3D '-') { + ret =3D qemu_strtou64(token->str, NULL, 10, &uvalue); + if (!ret) { + return QOBJECT(qnum_from_uint(uvalue)); + } + assert(ret =3D=3D -ERANGE); + } /* fall through to JSON_FLOAT */ } case JSON_FLOAT: diff --git a/tests/check-qjson.c b/tests/check-qjson.c index f0a89f7..53f2275 100644 --- a/tests/check-qjson.c +++ b/tests/check-qjson.c @@ -906,6 +906,49 @@ static void simple_number(void) } } =20 +static void large_number(void) +{ + const char *maxu64 =3D "18446744073709551615"; /* 2^64-1 */ + const char *gtu64 =3D "18446744073709551616"; /* 2^64 */ + const char *lti64 =3D "-9223372036854775809"; /* -2^63 - 1 */ + QNum *qnum; + QString *str; + uint64_t val; + int64_t ival; + + qnum =3D qobject_to_qnum(qobject_from_json(maxu64, &error_abort)); + g_assert(qnum); + g_assert_cmpuint(qnum_get_uint(qnum), =3D=3D, 18446744073709551615U); + g_assert(!qnum_get_try_int(qnum, &ival)); + + str =3D qobject_to_json(QOBJECT(qnum)); + g_assert_cmpstr(qstring_get_str(str), =3D=3D, maxu64); + QDECREF(str); + QDECREF(qnum); + + qnum =3D qobject_to_qnum(qobject_from_json(gtu64, &error_abort)); + g_assert(qnum); + g_assert_cmpfloat(qnum_get_double(qnum), =3D=3D, 18446744073709552e3); + g_assert(!qnum_get_try_uint(qnum, &val)); + g_assert(!qnum_get_try_int(qnum, &ival)); + + str =3D qobject_to_json(QOBJECT(qnum)); + g_assert_cmpstr(qstring_get_str(str), =3D=3D, gtu64); + QDECREF(str); + QDECREF(qnum); + + qnum =3D qobject_to_qnum(qobject_from_json(lti64, &error_abort)); + g_assert(qnum); + g_assert_cmpfloat(qnum_get_double(qnum), =3D=3D, -92233720368547758e2); + g_assert(!qnum_get_try_uint(qnum, &val)); + g_assert(!qnum_get_try_int(qnum, &ival)); + + str =3D qobject_to_json(QOBJECT(qnum)); + g_assert_cmpstr(qstring_get_str(str), =3D=3D, "-9223372036854775808"); + QDECREF(str); + QDECREF(qnum); +} + static void float_number(void) { int i; @@ -1475,6 +1518,7 @@ int main(int argc, char **argv) g_test_add_func("/literals/string/vararg", vararg_string); =20 g_test_add_func("/literals/number/simple", simple_number); + g_test_add_func("/literals/number/large", large_number); g_test_add_func("/literals/number/float", float_number); g_test_add_func("/literals/number/vararg", vararg_number); =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963036027184.74172012601002; Tue, 20 Jun 2017 05:50:36 -0700 (PDT) Received: from localhost ([::1]:48649 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIc5-0004LM-LQ for importer@patchew.org; Tue, 20 Jun 2017 08:50:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45021) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT9-0004Eq-RB for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002BU-Dc for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34704) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002AJ-33 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 264EB61BA1 for ; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A3B706DC9E; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5AA84110CE78; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 264EB61BA1 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 264EB61BA1 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:38 +0200 Message-Id: <1497962468-22936-12-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.39]); Tue, 20 Jun 2017 12:41: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 v2 11/41] qapi: update the qobject visitor to use QNUM_U64 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Switch to use QNum/uint where appropriate to remove i64 limitation. The input visitor will cast i64 input to u64 for compatibility reasons (existing json QMP client already use negative i64 for large u64, and expect an implicit cast in qemu). Note: before the patch, uint64_t values above INT64_MAX are sent over json QMP as negative values, e.g. UINT64_MAX is sent as -1. After the patch, they are sent unmodified. Clearly a bug fix, but we have to consider compatibility issues anyway. libvirt should cope fine, because its parsing of unsigned integers accepts negative values modulo 2^64. There's hope that other clients will, too. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-12-marcandre.lureau@redhat.com> [check_native_list() tweaked for consistency with signed case] Signed-off-by: Markus Armbruster --- hw/i386/acpi-build.c | 2 +- qapi/qobject-input-visitor.c | 21 ++++++++++++++++----- qapi/qobject-output-visitor.c | 3 +-- tests/test-qobject-input-visitor.c | 7 ++----- tests/test-qobject-output-visitor.c | 22 ++++++++++++++++++---- 5 files changed, 38 insertions(+), 17 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index d7d2b65..3eb4367 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2614,7 +2614,7 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) if (!o) { return false; } - mcfg->mcfg_base =3D qnum_get_int(qobject_to_qnum(o)); + mcfg->mcfg_base =3D qnum_get_uint(qobject_to_qnum(o)); qobject_decref(o); =20 o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index 539b3b8..35aff78 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -417,7 +417,6 @@ static void qobject_input_type_int64_keyval(Visitor *v,= const char *name, static void qobject_input_type_uint64(Visitor *v, const char *name, uint64_t *obj, Error **errp) { - /* FIXME: qobject_to_qnum mishandles values over INT64_MAX */ QObjectInputVisitor *qiv =3D to_qiv(v); QObject *qobj =3D qobject_input_get_object(qiv, name, true, errp); QNum *qnum; @@ -427,11 +426,23 @@ static void qobject_input_type_uint64(Visitor *v, con= st char *name, return; } qnum =3D qobject_to_qnum(qobj); - if (!qnum || !qnum_get_try_int(qnum, &val)) { - error_setg(errp, QERR_INVALID_PARAMETER_TYPE, - full_name(qiv, name), "integer"); + if (!qnum) { + goto err; } - *obj =3D val; + + if (qnum_get_try_uint(qnum, obj)) { + return; + } + + /* Need to accept negative values for backward compatibility */ + if (qnum_get_try_int(qnum, &val)) { + *obj =3D val; + return; + } + +err: + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, + full_name(qiv, name), "uint64"); } =20 static void qobject_input_type_uint64_keyval(Visitor *v, const char *name, diff --git a/qapi/qobject-output-visitor.c b/qapi/qobject-output-visitor.c index 2ca5093..70be84c 100644 --- a/qapi/qobject-output-visitor.c +++ b/qapi/qobject-output-visitor.c @@ -150,9 +150,8 @@ static void qobject_output_type_int64(Visitor *v, const= char *name, static void qobject_output_type_uint64(Visitor *v, const char *name, uint64_t *obj, Error **errp) { - /* FIXME values larger than INT64_MAX become negative */ QObjectOutputVisitor *qov =3D to_qov(v); - qobject_output_add(qov, name, qnum_from_int(*obj)); + qobject_output_add(qov, name, qnum_from_uint(*obj)); } =20 static void qobject_output_type_bool(Visitor *v, const char *name, bool *o= bj, diff --git a/tests/test-qobject-input-visitor.c b/tests/test-qobject-input-= visitor.c index 928cc26..34bab8a 100644 --- a/tests/test-qobject-input-visitor.c +++ b/tests/test-qobject-input-visitor.c @@ -123,7 +123,6 @@ static void test_visitor_in_int(TestInputVisitorData *d= ata, static void test_visitor_in_uint(TestInputVisitorData *data, const void *unused) { - Error *err =3D NULL; uint64_t res =3D 0; int64_t i64; double dbl; @@ -147,12 +146,10 @@ static void test_visitor_in_uint(TestInputVisitorData= *data, visit_type_uint64(v, NULL, &res, &error_abort); g_assert_cmpuint(res, =3D=3D, (uint64_t)-value); =20 - /* BUG: value between INT64_MAX+1 and UINT64_MAX rejected */ - v =3D visitor_input_test_init(data, "18446744073709551574"); =20 - visit_type_uint64(v, NULL, &res, &err); - error_free_or_abort(&err); + visit_type_uint64(v, NULL, &res, &error_abort); + g_assert_cmpuint(res, =3D=3D, 18446744073709551574U); =20 visit_type_number(v, NULL, &dbl, &error_abort); g_assert_cmpfloat(dbl, =3D=3D, 18446744073709552000.0); diff --git a/tests/test-qobject-output-visitor.c b/tests/test-qobject-outpu= t-visitor.c index a16c8f6..749c540 100644 --- a/tests/test-qobject-output-visitor.c +++ b/tests/test-qobject-output-visitor.c @@ -602,14 +602,28 @@ static void check_native_list(QObject *qobj, qlist =3D qlist_copy(qobject_to_qlist(qdict_get(qdict, "data"))); =20 switch (kind) { - case USER_DEF_NATIVE_LIST_UNION_KIND_S8: - case USER_DEF_NATIVE_LIST_UNION_KIND_S16: - case USER_DEF_NATIVE_LIST_UNION_KIND_S32: - case USER_DEF_NATIVE_LIST_UNION_KIND_S64: case USER_DEF_NATIVE_LIST_UNION_KIND_U8: case USER_DEF_NATIVE_LIST_UNION_KIND_U16: case USER_DEF_NATIVE_LIST_UNION_KIND_U32: case USER_DEF_NATIVE_LIST_UNION_KIND_U64: + for (i =3D 0; i < 32; i++) { + QObject *tmp; + QNum *qvalue; + uint64_t val; + + tmp =3D qlist_peek(qlist); + g_assert(tmp); + qvalue =3D qobject_to_qnum(tmp); + g_assert(qnum_get_try_uint(qvalue, &val)); + g_assert_cmpint(val, =3D=3D, i); + qobject_decref(qlist_pop(qlist)); + } + break; + + case USER_DEF_NATIVE_LIST_UNION_KIND_S8: + case USER_DEF_NATIVE_LIST_UNION_KIND_S16: + case USER_DEF_NATIVE_LIST_UNION_KIND_S32: + case USER_DEF_NATIVE_LIST_UNION_KIND_S64: /* * All integer elements in JSON arrays get stored into QNums * when we convert to QObjects, so we can check them all in --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963179847511.1253867394295; Tue, 20 Jun 2017 05:52:59 -0700 (PDT) Received: from localhost ([::1]:48659 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIeP-0006Xp-Di for importer@patchew.org; Tue, 20 Jun 2017 08:52:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45126) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004Gn-LO for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002DX-Aw for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45412) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002CZ-Vg for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 ECCF7C01CB97 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A2F617D90C; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5D7FF110CE7F; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com ECCF7C01CB97 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com ECCF7C01CB97 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:39 +0200 Message-Id: <1497962468-22936-13-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.32]); Tue, 20 Jun 2017 12:41:18 +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 v2 12/41] object: add uint property setter/getter 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-13-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- include/qom/object.h | 23 +++++++++++++++++++++++ qom/object.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index cd0f412..abaeb8c 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1094,6 +1094,29 @@ int64_t object_property_get_int(Object *obj, const c= har *name, Error **errp); =20 /** + * object_property_set_uint: + * @value: the value to be written to the property + * @name: the name of the property + * @errp: returns an error if this function fails + * + * Writes an unsigned integer value to a property. + */ +void object_property_set_uint(Object *obj, uint64_t value, + const char *name, Error **errp); + +/** + * object_property_get_uint: + * @obj: the object + * @name: the name of the property + * @errp: returns an error if this function fails + * + * Returns: the value of the property, converted to an unsigned integer, o= r 0 + * an error occurs (including when the property value is not an integer). + */ +uint64_t object_property_get_uint(Object *obj, const char *name, + Error **errp); + +/** * object_property_get_enum: * @obj: the object * @name: the name of the property diff --git a/qom/object.c b/qom/object.c index dee7f7c..5f6fdfa 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1216,6 +1216,35 @@ int64_t object_property_get_int(Object *obj, const c= har *name, return retval; } =20 +void object_property_set_uint(Object *obj, uint64_t value, + const char *name, Error **errp) +{ + QNum *qnum =3D qnum_from_uint(value); + + object_property_set_qobject(obj, QOBJECT(qnum), name, errp); + QDECREF(qnum); +} + +uint64_t object_property_get_uint(Object *obj, const char *name, + Error **errp) +{ + QObject *ret =3D object_property_get_qobject(obj, name, errp); + QNum *qnum; + uint64_t retval; + + if (!ret) { + return 0; + } + qnum =3D qobject_to_qnum(ret); + if (!qnum || !qnum_get_try_uint(qnum, &retval)) { + error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name, "uint"); + retval =3D 0; + } + + qobject_decref(ret); + return retval; +} + typedef struct EnumProperty { const char * const *strings; int (*get)(Object *, Error **); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962726750129.23430589567909; Tue, 20 Jun 2017 05:45:26 -0700 (PDT) Received: from localhost ([::1]:48620 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIX7-00085H-BF for importer@patchew.org; Tue, 20 Jun 2017 08:45:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45006) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIT9-0004Ec-EY for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002BA-8H for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59938) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT6-0002A5-W0 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 EEB30C04B303 for ; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A4EA26DC9F; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 60564110CE29; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EEB30C04B303 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com EEB30C04B303 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:40 +0200 Message-Id: <1497962468-22936-14-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 13/41] q35: fix get_mmcfg_size to use uint64 visitor 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau e->size is hwaddr, i.e. uint64_t. We silently truncate. Signed-off-by: Marc-Andr=C3=A9 Lureau Suggested-by: Markus Armbruster Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-14-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/pci-host/q35.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index cd5c496..e8a04d3 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -129,9 +129,8 @@ static void q35_host_get_mmcfg_size(Object *obj, Visito= r *v, const char *name, void *opaque, Error **errp) { PCIExpressHost *e =3D PCIE_HOST_BRIDGE(obj); - uint32_t value =3D e->size; =20 - visit_type_uint32(v, name, &value, errp); + visit_type_uint64(v, name, &e->size, errp); } =20 static Property mch_props[] =3D { --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962589976247.95660280482616; Tue, 20 Jun 2017 05:43:09 -0700 (PDT) Received: from localhost ([::1]:48612 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIUt-0006Bf-8B for importer@patchew.org; Tue, 20 Jun 2017 08:43:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45035) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004Ex-0a for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002Bo-Ob for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48968) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002AR-Cf for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 588C385550 for ; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A73B370BFC; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 63425110CE2B; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 588C385550 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 588C385550 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:41 +0200 Message-Id: <1497962468-22936-15-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 14/41] object: use more specific property type names 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Use the actual unsigned integer type name. The type name change impacts the following externally visible area: * vl.c's machine_help_func() puts it in help for -machine NAME,help. * QMP command qom-list exposes it in ObjectPropertyInfo member @type. * QMP command device-list-properties exposes it in DevicePropertyInfo member @type. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-15-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- backends/cryptodev.c | 2 +- hw/pci-host/piix.c | 8 ++++---- hw/pci-host/q35.c | 10 +++++----- hw/ppc/pnv.c | 2 +- net/dump.c | 2 +- net/filter-buffer.c | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/backends/cryptodev.c b/backends/cryptodev.c index 832f056..1764c17 100644 --- a/backends/cryptodev.c +++ b/backends/cryptodev.c @@ -222,7 +222,7 @@ cryptodev_backend_can_be_deleted(UserCreatable *uc, Err= or **errp) =20 static void cryptodev_backend_instance_init(Object *obj) { - object_property_add(obj, "queues", "int", + object_property_add(obj, "queues", "uint32", cryptodev_backend_get_queues, cryptodev_backend_set_queues, NULL, NULL, NULL); diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index 4ce201e..a2c1033 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -273,19 +273,19 @@ static void i440fx_pcihost_initfn(Object *obj) memory_region_init_io(&s->data_mem, obj, &pci_host_data_le_ops, s, "pci-conf-data", 4); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_START, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_START, "uint32", i440fx_pcihost_get_pci_hole_start, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_END, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_END, "uint32", i440fx_pcihost_get_pci_hole_end, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_START, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_START, "uint64", i440fx_pcihost_get_pci_hole64_start, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_END, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_END, "uint64", i440fx_pcihost_get_pci_hole64_end, NULL, NULL, NULL, NULL); } diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index e8a04d3..c2f2af5 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -175,23 +175,23 @@ static void q35_host_initfn(Object *obj) qdev_prop_set_uint32(DEVICE(&s->mch), "addr", PCI_DEVFN(0, 0)); qdev_prop_set_bit(DEVICE(&s->mch), "multifunction", false); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_START, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_START, "uint32", q35_host_get_pci_hole_start, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_END, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_END, "uint32", q35_host_get_pci_hole_end, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_START, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_START, "uint64", q35_host_get_pci_hole64_start, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_END, "int", + object_property_add(obj, PCI_HOST_PROP_PCI_HOLE64_END, "uint64", q35_host_get_pci_hole64_end, NULL, NULL, NULL, NULL); =20 - object_property_add(obj, PCIE_HOST_MCFG_SIZE, "int", + object_property_add(obj, PCIE_HOST_MCFG_SIZE, "uint64", q35_host_get_mmcfg_size, NULL, NULL, NULL, NULL); =20 diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 89b6801..a4cd733 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -1111,7 +1111,7 @@ static void powernv_machine_initfn(Object *obj) =20 static void powernv_machine_class_props_init(ObjectClass *oc) { - object_class_property_add(oc, "num-chips", "uint32_t", + object_class_property_add(oc, "num-chips", "uint32", pnv_get_num_chips, pnv_set_num_chips, NULL, NULL, NULL); object_class_property_set_description(oc, "num-chips", diff --git a/net/dump.c b/net/dump.c index 442eb53..15df9a4 100644 --- a/net/dump.c +++ b/net/dump.c @@ -328,7 +328,7 @@ static void filter_dump_instance_init(Object *obj) =20 nfds->maxlen =3D 65536; =20 - object_property_add(obj, "maxlen", "int", filter_dump_get_maxlen, + object_property_add(obj, "maxlen", "uint32", filter_dump_get_maxlen, filter_dump_set_maxlen, NULL, NULL, NULL); object_property_add_str(obj, "file", file_dump_get_filename, file_dump_set_filename, NULL); diff --git a/net/filter-buffer.c b/net/filter-buffer.c index cc6bd94..9ce96aa 100644 --- a/net/filter-buffer.c +++ b/net/filter-buffer.c @@ -191,7 +191,7 @@ out: =20 static void filter_buffer_init(Object *obj) { - object_property_add(obj, "interval", "int", + object_property_add(obj, "interval", "uint32", filter_buffer_get_interval, filter_buffer_set_interval, NULL, NULL, NULL); } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 14979633949611005.1292093706195; Tue, 20 Jun 2017 05:56:34 -0700 (PDT) Received: from localhost ([::1]:48677 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIht-0001wZ-GR for importer@patchew.org; Tue, 20 Jun 2017 08:56:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45226) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITE-0004Jd-AA for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT7-0002Bi-MU for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56096) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002AN-9Q for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:17 -0400 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 3DA9680F7D for ; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CC39C704C8; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 66457110CE36; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3DA9680F7D Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3DA9680F7D From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:42 +0200 Message-Id: <1497962468-22936-16-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.27]); Tue, 20 Jun 2017 12:41: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 v2 15/41] qdev: Rename DEFINE_PROP_DEFAULT() to DEFINE_PROP_SIGNED() 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau The rename prepares for the patch after next's DEFINE_PROP_UNSIGNED(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-16-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [Commit message tweaked] Signed-off-by: Markus Armbruster --- hw/block/fdc.c | 18 +++++++++--------- hw/net/e1000e.c | 6 +++--- include/hw/qdev-properties.h | 26 +++++++++++++------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 2e629b3..28f6b6e 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -511,7 +511,7 @@ typedef struct FloppyDrive { static Property floppy_drive_properties[] =3D { DEFINE_PROP_UINT32("unit", FloppyDrive, unit, -1), DEFINE_BLOCK_PROPERTIES(FloppyDrive, conf), - DEFINE_PROP_DEFAULT("drive-type", FloppyDrive, type, + DEFINE_PROP_SIGNED("drive-type", FloppyDrive, type, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), DEFINE_PROP_END_OF_LIST(), @@ -2805,13 +2805,13 @@ static Property isa_fdc_properties[] =3D { DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.qdev_for_drives[1].blk= ), DEFINE_PROP_BIT("check_media_rate", FDCtrlISABus, state.check_media_ra= te, 0, true), - DEFINE_PROP_DEFAULT("fdtypeA", FDCtrlISABus, state.qdev_for_drives[0].= type, + DEFINE_PROP_SIGNED("fdtypeA", FDCtrlISABus, state.qdev_for_drives[0].t= ype, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), - DEFINE_PROP_DEFAULT("fdtypeB", FDCtrlISABus, state.qdev_for_drives[1].= type, + DEFINE_PROP_SIGNED("fdtypeB", FDCtrlISABus, state.qdev_for_drives[1].t= ype, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), - DEFINE_PROP_DEFAULT("fallback", FDCtrlISABus, state.fallback, + DEFINE_PROP_SIGNED("fallback", FDCtrlISABus, state.fallback, FLOPPY_DRIVE_TYPE_288, qdev_prop_fdc_drive_type, FloppyDriveType), DEFINE_PROP_END_OF_LIST(), @@ -2862,13 +2862,13 @@ static const VMStateDescription vmstate_sysbus_fdc = =3D{ static Property sysbus_fdc_properties[] =3D { DEFINE_PROP_DRIVE("driveA", FDCtrlSysBus, state.qdev_for_drives[0].blk= ), DEFINE_PROP_DRIVE("driveB", FDCtrlSysBus, state.qdev_for_drives[1].blk= ), - DEFINE_PROP_DEFAULT("fdtypeA", FDCtrlSysBus, state.qdev_for_drives[0].= type, + DEFINE_PROP_SIGNED("fdtypeA", FDCtrlSysBus, state.qdev_for_drives[0].t= ype, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), - DEFINE_PROP_DEFAULT("fdtypeB", FDCtrlSysBus, state.qdev_for_drives[1].= type, + DEFINE_PROP_SIGNED("fdtypeB", FDCtrlSysBus, state.qdev_for_drives[1].t= ype, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), - DEFINE_PROP_DEFAULT("fallback", FDCtrlISABus, state.fallback, + DEFINE_PROP_SIGNED("fallback", FDCtrlISABus, state.fallback, FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type, FloppyDriveType), DEFINE_PROP_END_OF_LIST(), @@ -2891,10 +2891,10 @@ static const TypeInfo sysbus_fdc_info =3D { =20 static Property sun4m_fdc_properties[] =3D { DEFINE_PROP_DRIVE("drive", FDCtrlSysBus, state.qdev_for_drives[0].blk), - DEFINE_PROP_DEFAULT("fdtype", FDCtrlSysBus, state.qdev_for_drives[0].t= ype, + DEFINE_PROP_SIGNED("fdtype", FDCtrlSysBus, state.qdev_for_drives[0].ty= pe, FLOPPY_DRIVE_TYPE_AUTO, qdev_prop_fdc_drive_type, FloppyDriveType), - DEFINE_PROP_DEFAULT("fallback", FDCtrlISABus, state.fallback, + DEFINE_PROP_SIGNED("fallback", FDCtrlISABus, state.fallback, FLOPPY_DRIVE_TYPE_144, qdev_prop_fdc_drive_type, FloppyDriveType), DEFINE_PROP_END_OF_LIST(), diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c index 6e23493..0e0a1dc 100644 --- a/hw/net/e1000e.c +++ b/hw/net/e1000e.c @@ -645,12 +645,12 @@ static PropertyInfo e1000e_prop_disable_vnet, =20 static Property e1000e_properties[] =3D { DEFINE_NIC_PROPERTIES(E1000EState, conf), - DEFINE_PROP_DEFAULT("disable_vnet_hdr", E1000EState, disable_vnet, fal= se, + DEFINE_PROP_SIGNED("disable_vnet_hdr", E1000EState, disable_vnet, fals= e, e1000e_prop_disable_vnet, bool), - DEFINE_PROP_DEFAULT("subsys_ven", E1000EState, subsys_ven, + DEFINE_PROP_SIGNED("subsys_ven", E1000EState, subsys_ven, PCI_VENDOR_ID_INTEL, e1000e_prop_subsys_ven, uint16_t), - DEFINE_PROP_DEFAULT("subsys", E1000EState, subsys, 0, + DEFINE_PROP_SIGNED("subsys", E1000EState, subsys, 0, e1000e_prop_subsys, uint16_t), DEFINE_PROP_END_OF_LIST(), }; diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 85e6899..0560380 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -37,7 +37,7 @@ extern PropertyInfo qdev_prop_arraylen; .offset =3D offsetof(_state, _field) \ + type_check(_type, typeof_field(_state, _field)), \ } -#define DEFINE_PROP_DEFAULT(_name, _state, _field, _defval, _prop, _type) = { \ +#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) {= \ .name =3D (_name), \ .info =3D &(_prop), \ .offset =3D offsetof(_state, _field) \ @@ -107,19 +107,19 @@ extern PropertyInfo qdev_prop_arraylen; } =20 #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) #define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_uint32, uint32_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t) #define DEFINE_PROP_INT32(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_int32, int32_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t) #define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_uint64, uint64_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t) #define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_size, uint64_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t) #define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) =20 /* * Please avoid pointer properties. If you must use them, you must @@ -153,17 +153,17 @@ extern PropertyInfo qdev_prop_arraylen; #define DEFINE_PROP_MACADDR(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_macaddr, MACAddr) #define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_on_off_auto, OnOffAuto) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_on_off_auto, OnOffAuto) #define DEFINE_PROP_LOSTTICKPOLICY(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_losttickpolicy, \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_losttickpolicy, \ LostTickPolicy) #define DEFINE_PROP_BLOCKDEV_ON_ERROR(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_blockdev_on_error, \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_blockdev_on_error, \ BlockdevOnError) #define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) #define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \ - DEFINE_PROP_DEFAULT(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t) + DEFINE_PROP_SIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t) #define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddre= ss) =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963471674749.5369638164157; Tue, 20 Jun 2017 05:57:51 -0700 (PDT) Received: from localhost ([::1]:48688 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIj6-000331-8j for importer@patchew.org; Tue, 20 Jun 2017 08:57:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45071) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004FU-I1 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT8-0002CP-AM for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34766) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002BL-U2 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 DCD1E4AC8 for ; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CD2C2704D0; Tue, 20 Jun 2017 12:41:15 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6F74E110CE42; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DCD1E4AC8 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DCD1E4AC8 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:43 +0200 Message-Id: <1497962468-22936-17-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 20 Jun 2017 12:41: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 v2 16/41] qdev: wrap default property value in an union 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Wrap the Property default value (an int64_t) in a union, to prepare for the next patch adding a uint64_t. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-17-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- hw/core/qdev-properties.c | 6 +++--- include/hw/qdev-core.h | 4 +++- include/hw/qdev-properties.h | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index c5e028a..f3f682c 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -71,7 +71,7 @@ static void set_enum(Object *obj, Visitor *v, const char = *name, void *opaque, =20 static void set_default_value_enum(Object *obj, const Property *prop) { - object_property_set_str(obj, prop->info->enum_table[prop->defval], + object_property_set_str(obj, prop->info->enum_table[prop->defval.i], prop->name, &error_abort); } =20 @@ -128,7 +128,7 @@ static void prop_set_bit(Object *obj, Visitor *v, const= char *name, =20 static void set_default_value_bool(Object *obj, const Property *prop) { - object_property_set_bool(obj, prop->defval, prop->name, &error_abort); + object_property_set_bool(obj, prop->defval.i, prop->name, &error_abort= ); } =20 PropertyInfo qdev_prop_bit =3D { @@ -261,7 +261,7 @@ static void set_uint8(Object *obj, Visitor *v, const ch= ar *name, void *opaque, =20 static void set_default_value_int(Object *obj, const Property *prop) { - object_property_set_int(obj, prop->defval, prop->name, &error_abort); + object_property_set_int(obj, prop->defval.i, prop->name, &error_abort); } =20 PropertyInfo qdev_prop_uint8 =3D { diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 9523339..784971b 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -226,7 +226,9 @@ struct Property { PropertyInfo *info; ptrdiff_t offset; uint8_t bitnr; - int64_t defval; + union { + int64_t i; + } defval; int arrayoffset; PropertyInfo *arrayinfo; int arrayfieldsize; diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 0560380..34524d0 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -42,7 +42,7 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(_prop), \ .offset =3D offsetof(_state, _field) \ + type_check(_type,typeof_field(_state, _field)), \ - .defval =3D (_type)_defval, \ + .defval.i =3D (_type)_defval, \ } #define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) { \ .name =3D (_name), \ @@ -50,7 +50,7 @@ extern PropertyInfo qdev_prop_arraylen; .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint32_t,typeof_field(_state, _field)), \ - .defval =3D (bool)_defval, \ + .defval.i =3D (bool)_defval, \ } #define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \ .name =3D (_name), \ @@ -58,7 +58,7 @@ extern PropertyInfo qdev_prop_arraylen; .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint64_t, typeof_field(_state, _field)), \ - .defval =3D (bool)_defval, \ + .defval.i =3D (bool)_defval, \ } =20 #define DEFINE_PROP_BOOL(_name, _state, _field, _defval) { \ @@ -66,7 +66,7 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(qdev_prop_bool), \ .offset =3D offsetof(_state, _field) \ + type_check(bool, typeof_field(_state, _field)), \ - .defval =3D (bool)_defval, \ + .defval.i =3D (bool)_defval, \ } =20 #define PROP_ARRAY_LEN_PREFIX "len-" --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963597015542.5894182153207; Tue, 20 Jun 2017 05:59:57 -0700 (PDT) Received: from localhost ([::1]:48701 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIl8-00053J-JA for importer@patchew.org; Tue, 20 Jun 2017 08:59:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45113) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004GK-Ab for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT8-0002C9-66 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58974) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT7-0002Av-R3 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 B30F54E4FC for ; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 525446DC6D; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 78A59110CE4A; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B30F54E4FC Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B30F54E4FC From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:44 +0200 Message-Id: <1497962468-22936-18-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 17/41] qdev: avoid type casts between signed and unsigned 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Modify the unsigned type for various properties to use QNUM_U64, to avoid type casts. There are a few empty lines added to improve code reading/style. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-18-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [Change to set_default_value_enum() dropped] Signed-off-by: Markus Armbruster --- hw/core/qdev-properties.c | 21 +++++++++++++-------- include/hw/qdev-core.h | 1 + include/hw/qdev-properties.h | 29 ++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index f3f682c..68cd653 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -128,7 +128,7 @@ static void prop_set_bit(Object *obj, Visitor *v, const= char *name, =20 static void set_default_value_bool(Object *obj, const Property *prop) { - object_property_set_bool(obj, prop->defval.i, prop->name, &error_abort= ); + object_property_set_bool(obj, prop->defval.u, prop->name, &error_abort= ); } =20 PropertyInfo qdev_prop_bit =3D { @@ -264,11 +264,16 @@ static void set_default_value_int(Object *obj, const = Property *prop) object_property_set_int(obj, prop->defval.i, prop->name, &error_abort); } =20 +static void set_default_value_uint(Object *obj, const Property *prop) +{ + object_property_set_uint(obj, prop->defval.u, prop->name, &error_abort= ); +} + PropertyInfo qdev_prop_uint8 =3D { .name =3D "uint8", .get =3D get_uint8, .set =3D set_uint8, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 /* --- 16bit integer --- */ @@ -302,7 +307,7 @@ PropertyInfo qdev_prop_uint16 =3D { .name =3D "uint16", .get =3D get_uint16, .set =3D set_uint16, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 /* --- 32bit integer --- */ @@ -361,7 +366,7 @@ PropertyInfo qdev_prop_uint32 =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_uint32, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 PropertyInfo qdev_prop_int32 =3D { @@ -402,7 +407,7 @@ PropertyInfo qdev_prop_uint64 =3D { .name =3D "uint64", .get =3D get_uint64, .set =3D set_uint64, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 /* --- string --- */ @@ -725,7 +730,7 @@ PropertyInfo qdev_prop_blocksize =3D { .description =3D "A power of two between 512 and 32768", .get =3D get_uint16, .set =3D set_blocksize, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 /* --- pci host address --- */ @@ -948,7 +953,7 @@ PropertyInfo qdev_prop_arraylen =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_prop_arraylen, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; =20 /* --- public helpers --- */ @@ -1185,5 +1190,5 @@ PropertyInfo qdev_prop_size =3D { .name =3D "size", .get =3D get_size, .set =3D set_size, - .set_default_value =3D set_default_value_int, + .set_default_value =3D set_default_value_uint, }; diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 784971b..9d7c1c0 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -228,6 +228,7 @@ struct Property { uint8_t bitnr; union { int64_t i; + uint64_t u; } defval; int arrayoffset; PropertyInfo *arrayinfo; diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 34524d0..1e5c928 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -37,6 +37,7 @@ extern PropertyInfo qdev_prop_arraylen; .offset =3D offsetof(_state, _field) \ + type_check(_type, typeof_field(_state, _field)), \ } + #define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) {= \ .name =3D (_name), \ .info =3D &(_prop), \ @@ -44,21 +45,31 @@ extern PropertyInfo qdev_prop_arraylen; + type_check(_type,typeof_field(_state, _field)), \ .defval.i =3D (_type)_defval, \ } + #define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) { \ .name =3D (_name), \ .info =3D &(qdev_prop_bit), \ .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint32_t,typeof_field(_state, _field)), \ - .defval.i =3D (bool)_defval, \ + .defval.u =3D (bool)_defval, \ } + +#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= { \ + .name =3D (_name), \ + .info =3D &(_prop), \ + .offset =3D offsetof(_state, _field) \ + + type_check(_type, typeof_field(_state, _field)), \ + .defval.u =3D (_type)_defval, \ + } + #define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \ .name =3D (_name), \ .info =3D &(qdev_prop_bit64), \ .bitnr =3D (_bit), \ .offset =3D offsetof(_state, _field) \ + type_check(uint64_t, typeof_field(_state, _field)), \ - .defval.i =3D (bool)_defval, \ + .defval.u =3D (bool)_defval, \ } =20 #define DEFINE_PROP_BOOL(_name, _state, _field, _defval) { \ @@ -66,7 +77,7 @@ extern PropertyInfo qdev_prop_arraylen; .info =3D &(qdev_prop_bool), \ .offset =3D offsetof(_state, _field) \ + type_check(bool, typeof_field(_state, _field)), \ - .defval.i =3D (bool)_defval, \ + .defval.u =3D (bool)_defval, \ } =20 #define PROP_ARRAY_LEN_PREFIX "len-" @@ -107,17 +118,17 @@ extern PropertyInfo qdev_prop_arraylen; } =20 #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) #define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t) #define DEFINE_PROP_INT32(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t) #define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t) #define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t) #define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) =20 @@ -163,7 +174,7 @@ extern PropertyInfo qdev_prop_arraylen; #define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) #define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \ - DEFINE_PROP_SIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t) #define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddre= ss) =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963964779241.98319926365355; Tue, 20 Jun 2017 06:06:04 -0700 (PDT) Received: from localhost ([::1]:48765 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIr4-0001bt-Bi for importer@patchew.org; Tue, 20 Jun 2017 09:06:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITH-0004Mf-0U for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002Fb-Le for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37726) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002Dz-7k for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 085EE40F09 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 559D070C06; Tue, 20 Jun 2017 12:41:16 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 81B5B110CE52; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 085EE40F09 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 085EE40F09 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:45 +0200 Message-Id: <1497962468-22936-19-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.30]); Tue, 20 Jun 2017 12:41:19 +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 v2 18/41] apic-common: make "id" property a uint32 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau The getter and setter of TYPE_APIC_COMMON property "id" are apic_common_get_id() and apic_common_set_id(). apic_common_get_id() reads either APICCommonState member uint32_t initial_apic_id or uint8_t id into an int64_t local variable. It then passes this variable to visit_type_int(). apic_common_set_id() uses visit_type_int() to read the value into a local variable, which it then assigns both to initial_apic_id and id. While the state backing the property is two unsigned members, 8 and 32 bits wide, the actual visitor is 64 bits signed. Change getter and setter to use visit_type_uint32(). Then everything's uint32_t, except for @id. Suggested-by: Markus Armbruster Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-19-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- hw/intc/apic_common.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c index 1ef56f8..e1ac330 100644 --- a/hw/intc/apic_common.c +++ b/hw/intc/apic_common.c @@ -450,10 +450,10 @@ static void apic_common_get_id(Object *obj, Visitor *= v, const char *name, void *opaque, Error **errp) { APICCommonState *s =3D APIC_COMMON(obj); - int64_t value; + uint32_t value; =20 value =3D s->apicbase & MSR_IA32_APICBASE_EXTD ? s->initial_apic_id : = s->id; - visit_type_int(v, name, &value, errp); + visit_type_uint32(v, name, &value, errp); } =20 static void apic_common_set_id(Object *obj, Visitor *v, const char *name, @@ -462,14 +462,14 @@ static void apic_common_set_id(Object *obj, Visitor *= v, const char *name, APICCommonState *s =3D APIC_COMMON(obj); DeviceState *dev =3D DEVICE(obj); Error *local_err =3D NULL; - int64_t value; + uint32_t value; =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); return; } =20 - visit_type_int(v, name, &value, &local_err); + visit_type_uint32(v, name, &value, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -484,7 +484,7 @@ static void apic_common_initfn(Object *obj) APICCommonState *s =3D APIC_COMMON(obj); =20 s->id =3D s->initial_apic_id =3D -1; - object_property_add(obj, "id", "int", + object_property_add(obj, "id", "uint32", apic_common_get_id, apic_common_set_id, NULL, NULL, NULL); } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963731999596.3505769016238; Tue, 20 Jun 2017 06:02:11 -0700 (PDT) Received: from localhost ([::1]:48723 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNInE-000713-7t for importer@patchew.org; Tue, 20 Jun 2017 09:02:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITG-0004Le-1y for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002DC-2N for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45388) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002Bw-Jm for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 75BACC009DD2 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 16C91704CC; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 89BD71108E79; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 75BACC009DD2 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 75BACC009DD2 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:46 +0200 Message-Id: <1497962468-22936-20-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Tue, 20 Jun 2017 12:41: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 v2 19/41] qdev: Use appropriate getter/setters type 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Based on the underlying type of the data accessed, use the appropriate getters/setters: * AcpiPmInfo members s3_disabled, s4_disabled are bool, member s4_val is an uint8_t * Property ACPI_PCIHP_IO_PROP is defined with object_property_add_uint32_ptr() * Property PCIE_HOST_MCFG_SIZE is implemented with visit_type_uint64() * PCIDevice property "addr" is backed by PCIDevice member devfn, which is an int32_t Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-20-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster [More verbose commit message] Signed-off-by: Markus Armbruster --- hw/i386/acpi-build.c | 12 ++++++------ hw/pci-host/gpex.c | 2 +- hw/pci-host/q35.c | 2 +- hw/pci-host/xilinx-pcie.c | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 3eb4367..b2dc3d8 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -149,21 +149,21 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) /* Fill in optional s3/s4 related properties */ o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S3_DISABLED, NULL); if (o) { - pm->s3_disabled =3D qnum_get_int(qobject_to_qnum(o)); + pm->s3_disabled =3D qnum_get_uint(qobject_to_qnum(o)); } else { pm->s3_disabled =3D false; } qobject_decref(o); o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S4_DISABLED, NULL); if (o) { - pm->s4_disabled =3D qnum_get_int(qobject_to_qnum(o)); + pm->s4_disabled =3D qnum_get_uint(qobject_to_qnum(o)); } else { pm->s4_disabled =3D false; } qobject_decref(o); o =3D object_property_get_qobject(obj, ACPI_PM_PROP_S4_VAL, NULL); if (o) { - pm->s4_val =3D qnum_get_int(qobject_to_qnum(o)); + pm->s4_val =3D qnum_get_uint(qobject_to_qnum(o)); } else { pm->s4_val =3D false; } @@ -528,7 +528,7 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, =20 bsel =3D object_property_get_qobject(OBJECT(bus), ACPI_PCIHP_PROP_BSEL= , NULL); if (bsel) { - int64_t bsel_val =3D qnum_get_int(qobject_to_qnum(bsel)); + uint64_t bsel_val =3D qnum_get_uint(qobject_to_qnum(bsel)); =20 aml_append(parent_scope, aml_name_decl("BSEL", aml_int(bsel_val))); notify_method =3D aml_method("DVNT", 2, AML_NOTSERIALIZED); @@ -638,7 +638,7 @@ static void build_append_pci_bus_devices(Aml *parent_sc= ope, PCIBus *bus, =20 /* If bus supports hotplug select it and notify about local events */ if (bsel) { - int64_t bsel_val =3D qnum_get_int(qobject_to_qnum(bsel)); + uint64_t bsel_val =3D qnum_get_uint(qobject_to_qnum(bsel)); =20 aml_append(method, aml_store(aml_int(bsel_val), aml_name("BNUM"))); aml_append(method, @@ -2619,7 +2619,7 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) =20 o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); assert(o); - mcfg->mcfg_size =3D qnum_get_int(qobject_to_qnum(o)); + mcfg->mcfg_size =3D qnum_get_uint(qobject_to_qnum(o)); qobject_decref(o); return true; } diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c index e2629ce..83084b9 100644 --- a/hw/pci-host/gpex.c +++ b/hw/pci-host/gpex.c @@ -94,7 +94,7 @@ static void gpex_host_initfn(Object *obj) =20 object_initialize(root, sizeof(*root), TYPE_GPEX_ROOT_DEVICE); object_property_add_child(obj, "gpex_root", OBJECT(root), NULL); - qdev_prop_set_uint32(DEVICE(root), "addr", PCI_DEVFN(0, 0)); + qdev_prop_set_int32(DEVICE(root), "addr", PCI_DEVFN(0, 0)); qdev_prop_set_bit(DEVICE(root), "multifunction", false); } =20 diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index c2f2af5..564f6cb 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -172,7 +172,7 @@ static void q35_host_initfn(Object *obj) =20 object_initialize(&s->mch, sizeof(s->mch), TYPE_MCH_PCI_DEVICE); object_property_add_child(OBJECT(s), "mch", OBJECT(&s->mch), NULL); - qdev_prop_set_uint32(DEVICE(&s->mch), "addr", PCI_DEVFN(0, 0)); + qdev_prop_set_int32(DEVICE(&s->mch), "addr", PCI_DEVFN(0, 0)); qdev_prop_set_bit(DEVICE(&s->mch), "multifunction", false); =20 object_property_add(obj, PCI_HOST_PROP_PCI_HOLE_START, "uint32", diff --git a/hw/pci-host/xilinx-pcie.c b/hw/pci-host/xilinx-pcie.c index a968cea..2c78dcf 100644 --- a/hw/pci-host/xilinx-pcie.c +++ b/hw/pci-host/xilinx-pcie.c @@ -150,7 +150,7 @@ static void xilinx_pcie_host_init(Object *obj) =20 object_initialize(root, sizeof(*root), TYPE_XILINX_PCIE_ROOT); object_property_add_child(obj, "root", OBJECT(root), NULL); - qdev_prop_set_uint32(DEVICE(root), "addr", PCI_DEVFN(0, 0)); + qdev_prop_set_int32(DEVICE(root), "addr", PCI_DEVFN(0, 0)); qdev_prop_set_bit(DEVICE(root), "multifunction", false); } =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963180183507.2328226706145; Tue, 20 Jun 2017 05:53:00 -0700 (PDT) Received: from localhost ([::1]:48660 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIeQ-0006aC-Rw for importer@patchew.org; Tue, 20 Jun 2017 08:52:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004FS-GA for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT8-0002Cm-Jn for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34834) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002Bn-Br for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 55BCB61BA1 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1BF6070BDB; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 901EC1108E9F; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 55BCB61BA1 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 55BCB61BA1 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:47 +0200 Message-Id: <1497962468-22936-21-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 20/41] isa: use get_uint() for "io-base" 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau The property is defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-21-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- include/hw/isa/isa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h index c2fdd70..9559340 100644 --- a/include/hw/isa/isa.h +++ b/include/hw/isa/isa.h @@ -29,7 +29,7 @@ static inline uint16_t applesmc_port(void) Object *obj =3D object_resolve_path_type("", TYPE_APPLE_SMC, NULL); =20 if (obj) { - return object_property_get_int(obj, APPLESMC_PROP_IO_BASE, NULL); + return object_property_get_uint(obj, APPLESMC_PROP_IO_BASE, NULL); } return 0; } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963595986923.5625506403582; Tue, 20 Jun 2017 05:59:55 -0700 (PDT) Received: from localhost ([::1]:48702 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIl8-00053h-He for importer@patchew.org; Tue, 20 Jun 2017 08:59:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITJ-0004Q6-7C for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITC-0002Hp-Ga for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47124) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITC-0002Gq-6v for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 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 46E247F6A5 for ; Tue, 20 Jun 2017 12:41:21 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 186386DAC4; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9681E1169146; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 46E247F6A5 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 46E247F6A5 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:48 +0200 Message-Id: <1497962468-22936-22-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.25]); Tue, 20 Jun 2017 12:41: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 v2 21/41] pc-dimm: use get_uint() for dimm 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_PC_DIMM's property PC_DIMM_ADDR_PROP is defined with DEFINE_PROP_UINT64(). TYPE_PC_DIMM's property PC_DIMM_NODE_PROP is defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-22-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/acpi/memory_hotplug.c | 7 ++++--- hw/acpi/nvdimm.c | 10 +++++----- hw/mem/pc-dimm.c | 5 +++-- hw/ppc/spapr.c | 7 ++++--- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c index 210073d..d2a9656 100644 --- a/hw/acpi/memory_hotplug.c +++ b/hw/acpi/memory_hotplug.c @@ -83,11 +83,12 @@ static uint64_t acpi_memory_hotplug_read(void *opaque, = hwaddr addr, o =3D OBJECT(mdev->dimm); switch (addr) { case 0x0: /* Lo part of phys address where DIMM is mapped */ - val =3D o ? object_property_get_int(o, PC_DIMM_ADDR_PROP, NULL) : = 0; + val =3D o ? object_property_get_uint(o, PC_DIMM_ADDR_PROP, NULL) := 0; trace_mhp_acpi_read_addr_lo(mem_st->selector, val); break; case 0x4: /* Hi part of phys address where DIMM is mapped */ - val =3D o ? object_property_get_int(o, PC_DIMM_ADDR_PROP, NULL) >>= 32 : 0; + val =3D + o ? object_property_get_uint(o, PC_DIMM_ADDR_PROP, NULL) >> 32= : 0; trace_mhp_acpi_read_addr_hi(mem_st->selector, val); break; case 0x8: /* Lo part of DIMM size */ @@ -99,7 +100,7 @@ static uint64_t acpi_memory_hotplug_read(void *opaque, h= waddr addr, trace_mhp_acpi_read_size_hi(mem_st->selector, val); break; case 0x10: /* node proximity for _PXM method */ - val =3D o ? object_property_get_int(o, PC_DIMM_NODE_PROP, NULL) : = 0; + val =3D o ? object_property_get_uint(o, PC_DIMM_NODE_PROP, NULL) := 0; trace_mhp_acpi_read_pxm(mem_st->selector, val); break; case 0x14: /* pack and return is_* fields */ diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index b5734f5..f507b49 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -236,14 +236,14 @@ static void nvdimm_build_structure_spa(GArray *structures, DeviceState *dev) { NvdimmNfitSpa *nfit_spa; - uint64_t addr =3D object_property_get_int(OBJECT(dev), PC_DIMM_ADDR_PR= OP, - NULL); + uint64_t addr =3D object_property_get_uint(OBJECT(dev), PC_DIMM_ADDR_P= ROP, + NULL); uint64_t size =3D object_property_get_int(OBJECT(dev), PC_DIMM_SIZE_PR= OP, NULL); - uint32_t node =3D object_property_get_int(OBJECT(dev), PC_DIMM_NODE_PR= OP, - NULL); + uint32_t node =3D object_property_get_uint(OBJECT(dev), PC_DIMM_NODE_P= ROP, + NULL); int slot =3D object_property_get_int(OBJECT(dev), PC_DIMM_SLOT_PROP, - NULL); + NULL); =20 nfit_spa =3D acpi_data_push(structures, sizeof(*nfit_spa)); =20 diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index 9e8dab0..f6def8c 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -46,7 +46,8 @@ void pc_dimm_memory_plug(DeviceState *dev, MemoryHotplugS= tate *hpms, uint64_t existing_dimms_capacity =3D 0; uint64_t addr; =20 - addr =3D object_property_get_int(OBJECT(dimm), PC_DIMM_ADDR_PROP, &loc= al_err); + addr =3D object_property_get_uint(OBJECT(dimm), + PC_DIMM_ADDR_PROP, &local_err); if (local_err) { goto out; } @@ -73,7 +74,7 @@ void pc_dimm_memory_plug(DeviceState *dev, MemoryHotplugS= tate *hpms, goto out; } =20 - object_property_set_int(OBJECT(dev), addr, PC_DIMM_ADDR_PROP, &local_e= rr); + object_property_set_uint(OBJECT(dev), addr, PC_DIMM_ADDR_PROP, &local_= err); if (local_err) { goto out; } diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index e877d45..ede5167 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2589,7 +2589,8 @@ static void spapr_memory_plug(HotplugHandler *hotplug= _dev, DeviceState *dev, goto out; } =20 - addr =3D object_property_get_int(OBJECT(dimm), PC_DIMM_ADDR_PROP, &loc= al_err); + addr =3D object_property_get_uint(OBJECT(dimm), + PC_DIMM_ADDR_PROP, &local_err); if (local_err) { pc_dimm_memory_unplug(dev, &ms->hotplug_memory, mr); goto out; @@ -2751,7 +2752,7 @@ static void spapr_memory_unplug_request(HotplugHandle= r *hotplug_dev, sPAPRDRConnector *drc; sPAPRDIMMState *ds; =20 - addr_start =3D object_property_get_int(OBJECT(dimm), PC_DIMM_ADDR_PROP, + addr_start =3D object_property_get_uint(OBJECT(dimm), PC_DIMM_ADDR_PRO= P, &local_err); if (local_err) { goto out; @@ -2986,7 +2987,7 @@ static void spapr_machine_device_plug(HotplugHandler = *hotplug_dev, error_setg(errp, "Memory hotplug not supported for this machin= e"); return; } - node =3D object_property_get_int(OBJECT(dev), PC_DIMM_NODE_PROP, e= rrp); + node =3D object_property_get_uint(OBJECT(dev), PC_DIMM_NODE_PROP, = errp); if (*errp) { return; } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963856160789.9475997742528; Tue, 20 Jun 2017 06:04:16 -0700 (PDT) Received: from localhost ([::1]:48744 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIpJ-0000Gf-JB for importer@patchew.org; Tue, 20 Jun 2017 09:04:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITF-0004KQ-8c for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002EI-Gg for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34888) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002Cg-4G for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 1D7BF624DA for ; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1B26D88E4E; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 9CE281171DB7; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1D7BF624DA Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1D7BF624DA From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:49 +0200 Message-Id: <1497962468-22936-23-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:18 +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 v2 22/41] pc-dimm: make "size" property uint64 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau This carries the memory_region_size() value without implicit cast. Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-23-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/acpi/memory_hotplug.c | 5 +++-- hw/acpi/nvdimm.c | 8 ++++---- hw/mem/pc-dimm.c | 18 +++++++++--------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c index d2a9656..cda2c9d 100644 --- a/hw/acpi/memory_hotplug.c +++ b/hw/acpi/memory_hotplug.c @@ -92,11 +92,12 @@ static uint64_t acpi_memory_hotplug_read(void *opaque, = hwaddr addr, trace_mhp_acpi_read_addr_hi(mem_st->selector, val); break; case 0x8: /* Lo part of DIMM size */ - val =3D o ? object_property_get_int(o, PC_DIMM_SIZE_PROP, NULL) : = 0; + val =3D o ? object_property_get_uint(o, PC_DIMM_SIZE_PROP, NULL) := 0; trace_mhp_acpi_read_size_lo(mem_st->selector, val); break; case 0xc: /* Hi part of DIMM size */ - val =3D o ? object_property_get_int(o, PC_DIMM_SIZE_PROP, NULL) >>= 32 : 0; + val =3D + o ? object_property_get_uint(o, PC_DIMM_SIZE_PROP, NULL) >> 32= : 0; trace_mhp_acpi_read_size_hi(mem_st->selector, val); break; case 0x10: /* node proximity for _PXM method */ diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index f507b49..6ceea19 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -238,8 +238,8 @@ nvdimm_build_structure_spa(GArray *structures, DeviceSt= ate *dev) NvdimmNfitSpa *nfit_spa; uint64_t addr =3D object_property_get_uint(OBJECT(dev), PC_DIMM_ADDR_P= ROP, NULL); - uint64_t size =3D object_property_get_int(OBJECT(dev), PC_DIMM_SIZE_PR= OP, - NULL); + uint64_t size =3D object_property_get_uint(OBJECT(dev), PC_DIMM_SIZE_P= ROP, + NULL); uint32_t node =3D object_property_get_uint(OBJECT(dev), PC_DIMM_NODE_P= ROP, NULL); int slot =3D object_property_get_int(OBJECT(dev), PC_DIMM_SLOT_PROP, @@ -284,8 +284,8 @@ static void nvdimm_build_structure_memdev(GArray *structures, DeviceState *dev) { NvdimmNfitMemDev *nfit_memdev; - uint64_t size =3D object_property_get_int(OBJECT(dev), PC_DIMM_SIZE_PR= OP, - NULL); + uint64_t size =3D object_property_get_uint(OBJECT(dev), PC_DIMM_SIZE_P= ROP, + NULL); int slot =3D object_property_get_int(OBJECT(dev), PC_DIMM_SLOT_PROP, NULL); uint32_t handle =3D nvdimm_slot_to_handle(slot); diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index f6def8c..b72258e 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -136,7 +136,7 @@ static int pc_existing_dimms_capacity_internal(Object *= obj, void *opaque) DeviceState *dev =3D DEVICE(obj); =20 if (dev->realized) { - (*size) +=3D object_property_get_int(obj, PC_DIMM_SIZE_PROP, + (*size) +=3D object_property_get_uint(obj, PC_DIMM_SIZE_PROP, cap->errp); } =20 @@ -182,8 +182,8 @@ int qmp_pc_dimm_device_list(Object *obj, void *opaque) di->addr =3D dimm->addr; di->slot =3D dimm->slot; di->node =3D dimm->node; - di->size =3D object_property_get_int(OBJECT(dimm), PC_DIMM_SIZ= E_PROP, - NULL); + di->size =3D object_property_get_uint(OBJECT(dimm), PC_DIMM_SI= ZE_PROP, + NULL); di->memdev =3D object_get_canonical_path(OBJECT(dimm->hostmem)= ); =20 info->u.dimm.data =3D di; @@ -314,9 +314,9 @@ uint64_t pc_dimm_get_free_addr(uint64_t address_space_s= tart, /* find address range that will fit new DIMM */ for (item =3D list; item; item =3D g_slist_next(item)) { PCDIMMDevice *dimm =3D item->data; - uint64_t dimm_size =3D object_property_get_int(OBJECT(dimm), - PC_DIMM_SIZE_PROP, - errp); + uint64_t dimm_size =3D object_property_get_uint(OBJECT(dimm), + PC_DIMM_SIZE_PROP, + errp); if (errp && *errp) { goto out; } @@ -356,7 +356,7 @@ static Property pc_dimm_properties[] =3D { static void pc_dimm_get_size(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - int64_t value; + uint64_t value; MemoryRegion *mr; PCDIMMDevice *dimm =3D PC_DIMM(obj); PCDIMMDeviceClass *ddc =3D PC_DIMM_GET_CLASS(obj); @@ -364,7 +364,7 @@ static void pc_dimm_get_size(Object *obj, Visitor *v, c= onst char *name, mr =3D ddc->get_memory_region(dimm); value =3D memory_region_size(mr); =20 - visit_type_int(v, name, &value, errp); + visit_type_uint64(v, name, &value, errp); } =20 static void pc_dimm_check_memdev_is_busy(Object *obj, const char *name, @@ -387,7 +387,7 @@ static void pc_dimm_init(Object *obj) { PCDIMMDevice *dimm =3D PC_DIMM(obj); =20 - object_property_add(obj, PC_DIMM_SIZE_PROP, "int", pc_dimm_get_size, + object_property_add(obj, PC_DIMM_SIZE_PROP, "uint64", pc_dimm_get_size, NULL, NULL, NULL, &error_abort); object_property_add_link(obj, PC_DIMM_MEMDEV_PROP, TYPE_MEMORY_BACKEND, (Object **)&dimm->hostmem, --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149796332467273.9195303054106; Tue, 20 Jun 2017 05:55:24 -0700 (PDT) Received: from localhost ([::1]:48668 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIgk-0000tC-RD for importer@patchew.org; Tue, 20 Jun 2017 08:55:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45094) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004G2-1q for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002DP-8P for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59096) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002CV-Vm for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 E6A114ACCB for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3D7F57D90D; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A342E1171DB8; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E6A114ACCB Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E6A114ACCB From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:50 +0200 Message-Id: <1497962468-22936-24-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.38]); Tue, 20 Jun 2017 12:41:18 +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 v2 23/41] pcihp: use get_uint() for "bsel" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau The property is defined with object_property_add_uint32_ptr() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-24-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/acpi/pcihp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c index 3a531a4..c420a38 100644 --- a/hw/acpi/pcihp.c +++ b/hw/acpi/pcihp.c @@ -62,10 +62,10 @@ typedef struct AcpiPciHpFind { static int acpi_pcihp_get_bsel(PCIBus *bus) { Error *local_err =3D NULL; - int64_t bsel =3D object_property_get_int(OBJECT(bus), ACPI_PCIHP_PROP_= BSEL, - &local_err); + uint64_t bsel =3D object_property_get_uint(OBJECT(bus), ACPI_PCIHP_PRO= P_BSEL, + &local_err); =20 - if (local_err || bsel < 0 || bsel >=3D ACPI_PCIHP_MAX_HOTPLUG_BUS) { + if (local_err || bsel >=3D ACPI_PCIHP_MAX_HOTPLUG_BUS) { if (local_err) { error_free(local_err); } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963471253901.0724041276998; Tue, 20 Jun 2017 05:57:51 -0700 (PDT) Received: from localhost ([::1]:48687 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIj5-00032A-SH for importer@patchew.org; Tue, 20 Jun 2017 08:57:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45081) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004Fl-PC for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT8-0002D0-Ti for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53478) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002C4-Lp for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 A11538EB41 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 417226A51A; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A988E1171DB9; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A11538EB41 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A11538EB41 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:51 +0200 Message-Id: <1497962468-22936-25-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.26]); Tue, 20 Jun 2017 12:41: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 v2 24/41] aspeed: use {set, get}_uint() for "ram-size" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau This property is an alias for device TYPE_ASPEED_SDMC's property "ram-size", which is defined with DEFINE_PROP_UINT64(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-25-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/arm/aspeed.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 155eeb2..db3f6d2 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -180,8 +180,8 @@ static void aspeed_board_init(MachineState *machine, =20 sc =3D ASPEED_SOC_GET_CLASS(&bmc->soc); =20 - object_property_set_int(OBJECT(&bmc->soc), ram_size, "ram-size", - &error_abort); + object_property_set_uint(OBJECT(&bmc->soc), ram_size, "ram-size", + &error_abort); object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, "hw-strap1", &error_abort); object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, "num-cs", @@ -193,8 +193,8 @@ static void aspeed_board_init(MachineState *machine, * Allocate RAM after the memory controller has checked the size * was valid. If not, a default value is used. */ - ram_size =3D object_property_get_int(OBJECT(&bmc->soc), "ram-size", - &error_abort); + ram_size =3D object_property_get_uint(OBJECT(&bmc->soc), "ram-size", + &error_abort); =20 memory_region_allocate_system_memory(&bmc->ram, NULL, "ram", ram_size); memory_region_add_subregion(get_system_memory(), sc->info->sdram_base, --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963324578496.5936842902736; Tue, 20 Jun 2017 05:55:24 -0700 (PDT) Received: from localhost ([::1]:48666 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIgl-0000sA-02 for importer@patchew.org; Tue, 20 Jun 2017 08:55:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45085) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004Fq-RR for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT8-0002Cu-TM for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56178) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002Bu-Fc for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 7BCE07DCC4 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 465AE6DC6D; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id AFEA41171DBC; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7BCE07DCC4 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7BCE07DCC4 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:52 +0200 Message-Id: <1497962468-22936-26-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 25/41] bcm2835_fb: use {get, set}_uint() for "vcram-size" and "vcram-base" 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Both properties are defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-26-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/arm/bcm2835_peripherals.c | 9 ++++----- hw/arm/raspi.c | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 502f04c..12e0dd1 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -125,7 +125,7 @@ static void bcm2835_peripherals_realize(DeviceState *de= v, Error **errp) Object *obj; MemoryRegion *ram; Error *err =3D NULL; - uint32_t ram_size, vcram_size; + uint64_t ram_size, vcram_size; int n; =20 obj =3D object_property_get_link(OBJECT(dev), "ram", &err); @@ -207,15 +207,14 @@ static void bcm2835_peripherals_realize(DeviceState *= dev, Error **errp) INTERRUPT_ARM_MAILBOX)); =20 /* Framebuffer */ - vcram_size =3D (uint32_t)object_property_get_int(OBJECT(s), "vcram-siz= e", - &err); + vcram_size =3D object_property_get_uint(OBJECT(s), "vcram-size", &err); if (err) { error_propagate(errp, err); return; } =20 - object_property_set_int(OBJECT(&s->fb), ram_size - vcram_size, - "vcram-base", &err); + object_property_set_uint(OBJECT(&s->fb), ram_size - vcram_size, + "vcram-base", &err); if (err) { error_propagate(errp, err); return; diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 2b295f1..32cdc98 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -153,8 +153,8 @@ static void raspi2_init(MachineState *machine) qdev_prop_set_drive(carddev, "drive", blk, &error_fatal); object_property_set_bool(OBJECT(carddev), true, "realized", &error_fat= al); =20 - vcram_size =3D object_property_get_int(OBJECT(&s->soc), "vcram-size", - &error_abort); + vcram_size =3D object_property_get_uint(OBJECT(&s->soc), "vcram-size", + &error_abort); setup_boot(machine, 2, machine->ram_size - vcram_size); } =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963474443404.10708751294226; Tue, 20 Jun 2017 05:57:54 -0700 (PDT) Received: from localhost ([::1]:48689 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIj7-00034u-Ul for importer@patchew.org; Tue, 20 Jun 2017 08:57:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45228) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITE-0004Jj-Cz for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002De-BX for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60034) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002CW-2g for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 E6B81C04D2B7 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4D32F7D90E; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B63141171DBE; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E6B81C04D2B7 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E6B81C04D2B7 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:53 +0200 Message-Id: <1497962468-22936-27-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:18 +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 v2 26/41] platform-bus: use get_uint() for "addr" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau This is TYPE_MEMORY_REGION's property. Its getter memory_region_get_addr() uses visit_type_uint64(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-27-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/core/platform-bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/platform-bus.c b/hw/core/platform-bus.c index 329ac67..33d32fb 100644 --- a/hw/core/platform-bus.c +++ b/hw/core/platform-bus.c @@ -71,7 +71,7 @@ hwaddr platform_bus_get_mmio_addr(PlatformBusDevice *pbus= , SysBusDevice *sbdev, return -1; } =20 - return object_property_get_int(OBJECT(sbdev_mr), "addr", NULL); + return object_property_get_uint(OBJECT(sbdev_mr), "addr", NULL); } =20 static void platform_bus_count_irqs(SysBusDevice *sbdev, void *opaque) --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963593046777.784505467097; Tue, 20 Jun 2017 05:59:53 -0700 (PDT) Received: from localhost ([::1]:48700 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIl5-00051o-M6 for importer@patchew.org; Tue, 20 Jun 2017 08:59:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45263) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITG-0004Mb-VI for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITB-0002Gc-C3 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45460) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITB-0002FM-4k for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 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 1CF45C05B1E6 for ; Tue, 20 Jun 2017 12:41:20 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F4C75C1A3; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id BC7E61171DBF; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1CF45C05B1E6 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1CF45C05B1E6 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:54 +0200 Message-Id: <1497962468-22936-28-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.32]); Tue, 20 Jun 2017 12:41:20 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL v2 27/41] acpi: use get_uint() for "acpi-pcihp-io*" 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Those are defined with object_property_add_uint16_ptr() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-28-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/acpi-build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index b2dc3d8..d1ffce7 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -136,9 +136,9 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) obj =3D piix; pm->cpu_hp_io_base =3D PIIX4_CPU_HOTPLUG_IO_BASE; pm->pcihp_io_base =3D - object_property_get_int(obj, ACPI_PCIHP_IO_BASE_PROP, NULL); + object_property_get_uint(obj, ACPI_PCIHP_IO_BASE_PROP, NULL); pm->pcihp_io_len =3D - object_property_get_int(obj, ACPI_PCIHP_IO_LEN_PROP, NULL); + object_property_get_uint(obj, ACPI_PCIHP_IO_LEN_PROP, NULL); } if (lpc) { obj =3D lpc; --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963036650467.0379373123434; Tue, 20 Jun 2017 05:50:36 -0700 (PDT) Received: from localhost ([::1]:48650 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIc6-0004OK-5c for importer@patchew.org; Tue, 20 Jun 2017 08:50:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004Gr-NT for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002Dm-D3 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60030) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002CJ-VL for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 D135AC04D2B4 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 75B5B6DC74; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id C2DC11171DC1; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D135AC04D2B4 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D135AC04D2B4 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:55 +0200 Message-Id: <1497962468-22936-29-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 28/41] acpi: use get_uint() for various acpi 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau PIIX4: piix4_pm_add_propeties() defines these with object_property_add_uint*_ptr(). Q35: ich9_lpc_add_properties() and ich9_pm_add_properties() define them similarly, except for ACPI_PM_PROP_GPE0_BLK(). That one's getter ich9_pm_get_gpe0_blk() uses visit_type_uint32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-29-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/acpi-build.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index d1ffce7..7c4c612 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -170,20 +170,21 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) qobject_decref(o); =20 /* Fill in mandatory properties */ - pm->sci_int =3D object_property_get_int(obj, ACPI_PM_PROP_SCI_INT, NUL= L); + pm->sci_int =3D object_property_get_uint(obj, ACPI_PM_PROP_SCI_INT, NU= LL); =20 - pm->acpi_enable_cmd =3D object_property_get_int(obj, - ACPI_PM_PROP_ACPI_ENABLE= _CMD, - NULL); - pm->acpi_disable_cmd =3D object_property_get_int(obj, - ACPI_PM_PROP_ACPI_DISABL= E_CMD, - NULL); - pm->io_base =3D object_property_get_int(obj, ACPI_PM_PROP_PM_IO_BASE, - NULL); - pm->gpe0_blk =3D object_property_get_int(obj, ACPI_PM_PROP_GPE0_BLK, + pm->acpi_enable_cmd =3D object_property_get_uint(obj, + ACPI_PM_PROP_ACPI_ENABL= E_CMD, + NULL); + pm->acpi_disable_cmd =3D + object_property_get_uint(obj, + ACPI_PM_PROP_ACPI_DISABLE_CMD, + NULL); + pm->io_base =3D object_property_get_uint(obj, ACPI_PM_PROP_PM_IO_BASE, NULL); - pm->gpe0_blk_len =3D object_property_get_int(obj, ACPI_PM_PROP_GPE0_BL= K_LEN, - NULL); + pm->gpe0_blk =3D object_property_get_uint(obj, ACPI_PM_PROP_GPE0_BLK, + NULL); + pm->gpe0_blk_len =3D object_property_get_uint(obj, ACPI_PM_PROP_GPE0_B= LK_LEN, + NULL); pm->pcihp_bridge_en =3D object_property_get_bool(obj, "acpi-pci-hotplug-with-bridge-suppor= t", NULL); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962956534380.1543648329972; Tue, 20 Jun 2017 05:49:16 -0700 (PDT) Received: from localhost ([::1]:48640 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIao-0003DE-Im for importer@patchew.org; Tue, 20 Jun 2017 08:49:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45130) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004Gq-Mw for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002E4-Fa for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38056) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002CK-23 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 D1D426A09 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 84B7C6DC9E; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id C943F1171DC2; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D1D426A09 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D1D426A09 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:56 +0200 Message-Id: <1497962468-22936-30-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.39]); Tue, 20 Jun 2017 12:41:18 +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 v2 29/41] acpi: use get_uint() for "pci-hole*" 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Those properties use visit_type_uint*() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-30-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/acpi-build.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 7c4c612..0b8bc62 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -237,19 +237,19 @@ static void acpi_get_pci_holes(Range *hole, Range *ho= le64) g_assert(pci_host); =20 range_set_bounds1(hole, - object_property_get_int(pci_host, - PCI_HOST_PROP_PCI_HOLE_START, - NULL), - object_property_get_int(pci_host, - PCI_HOST_PROP_PCI_HOLE_END, - NULL)); + object_property_get_uint(pci_host, + PCI_HOST_PROP_PCI_HOLE_STAR= T, + NULL), + object_property_get_uint(pci_host, + PCI_HOST_PROP_PCI_HOLE_END, + NULL)); range_set_bounds1(hole64, - object_property_get_int(pci_host, - PCI_HOST_PROP_PCI_HOLE64_STA= RT, - NULL), - object_property_get_int(pci_host, - PCI_HOST_PROP_PCI_HOLE64_END, - NULL)); + object_property_get_uint(pci_host, + PCI_HOST_PROP_PCI_HOLE64_ST= ART, + NULL), + object_property_get_uint(pci_host, + PCI_HOST_PROP_PCI_HOLE64_EN= D, + NULL)); } =20 #define ACPI_PORT_SMI_CMD 0x00b2 /* TODO: this is APM_CNT_IOPORT= */ --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962801737671.1072587493617; Tue, 20 Jun 2017 05:46:41 -0700 (PDT) Received: from localhost ([::1]:48631 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIYI-0000q4-NW for importer@patchew.org; Tue, 20 Jun 2017 08:46:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45089) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITA-0004Fu-TQ for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002DI-5G for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53482) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT8-0002CD-S1 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:18 -0400 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 C76638F231 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8B96A70BDC; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id CF98F1171DC4; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C76638F231 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C76638F231 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:57 +0200 Message-Id: <1497962468-22936-31-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41: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 v2 30/41] pc: use get_uint() for "iobase" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_ISA_FDC's property "iobase" is defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-31-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 5b8c6fb..f670ecb 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -347,7 +347,7 @@ static int check_fdc(Object *obj, void *opaque) return 0; } =20 - iobase =3D object_property_get_int(obj, "iobase", &local_err); + iobase =3D object_property_get_uint(obj, "iobase", &local_err); if (local_err || iobase !=3D 0x3f0) { error_free(local_err); return 0; --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149796373702266.85006329618977; Tue, 20 Jun 2017 06:02:17 -0700 (PDT) Received: from localhost ([::1]:48724 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNInG-00072M-8E for importer@patchew.org; Tue, 20 Jun 2017 09:02:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45150) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITC-0004HM-0l for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002EB-Gf for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56198) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002CN-7H for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 DA3637DCC9 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9F3286A51D; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D5DFD1171DC5; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DA3637DCC9 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DA3637DCC9 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:58 +0200 Message-Id: <1497962468-22936-32-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.27]); Tue, 20 Jun 2017 12:41:18 +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 v2 31/41] pc: use get_uint() for "apic-id" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_X86_CPU's property "apic-id" is defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-32-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f670ecb..f6d5717 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1098,7 +1098,7 @@ static void pc_new_cpu(const char *typename, int64_t = apic_id, Error **errp) =20 cpu =3D object_new(typename); =20 - object_property_set_int(cpu, apic_id, "apic-id", &local_err); + object_property_set_uint(cpu, apic_id, "apic-id", &local_err); object_property_set_bool(cpu, true, "realized", &local_err); =20 object_unref(cpu); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497962884540527.8729657801924; Tue, 20 Jun 2017 05:48:04 -0700 (PDT) Received: from localhost ([::1]:48637 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIZe-0002Hp-Sm for importer@patchew.org; Tue, 20 Jun 2017 08:48:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004G3-2N for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNIT9-0002Dh-Ce for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34880) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002CT-2L for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:19 -0400 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 DB61E635C1 for ; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A2B136A519; Tue, 20 Jun 2017 12:41:17 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id DC3B01171DC7; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DB61E635C1 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DB61E635C1 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:40:59 +0200 Message-Id: <1497962468-22936-33-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:18 +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 v2 32/41] pc: use get_uint() for "hpet-intcap" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_HPET's property HPET_INTCAP is defined with DEFINE_PROP_UINT32(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-33-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f6d5717..02f9a8f 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1558,7 +1558,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *= gsi, * and earlier, use IRQ2 for compat. Otherwise, use IRQ16~23, * IRQ8 and IRQ2. */ - uint8_t compat =3D object_property_get_int(OBJECT(hpet), + uint8_t compat =3D object_property_get_uint(OBJECT(hpet), HPET_INTCAP, NULL); if (!compat) { qdev_prop_set_uint32(hpet, HPET_INTCAP, hpet_irqs); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963326018118.32504907474083; Tue, 20 Jun 2017 05:55:26 -0700 (PDT) Received: from localhost ([::1]:48669 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIgl-0000uF-Ju for importer@patchew.org; Tue, 20 Jun 2017 08:55:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45244) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITF-0004Kh-Dg for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002FD-Fe for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59122) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002Dx-5L for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 0685B4E4CB for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 07928704CC; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E28F71171DC8; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 0685B4E4CB Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 0685B4E4CB From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:00 +0200 Message-Id: <1497962468-22936-34-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:19 +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 v2 33/41] xen: use get_uint() for "max-ram-below-4g" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_PC_MACHINE's property PC_MACHINE_MAX_RAM_BELOW_4G's getter and setter pc_machine_get_max_ram_below_4g() and pc_machine_set_max_ram_below_4g() use visit_type_size() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-34-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/i386/xen/xen-hvm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index 1acd4de..cffa7e2 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -182,9 +182,9 @@ static void xen_ram_init(PCMachineState *pcms, { MemoryRegion *sysmem =3D get_system_memory(); ram_addr_t block_len; - uint64_t user_lowmem =3D object_property_get_int(qdev_get_machine(), - PC_MACHINE_MAX_RAM_BELO= W_4G, - &error_abort); + uint64_t user_lowmem =3D object_property_get_uint(qdev_get_machine(), + PC_MACHINE_MAX_RAM_BEL= OW_4G, + &error_abort); =20 /* Handle the machine opt max-ram-below-4g. It is basically doing * min(xen limit, user limit). --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964466422716.6317695789656; Tue, 20 Jun 2017 06:14:26 -0700 (PDT) Received: from localhost ([::1]:48815 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIz9-0000XU-3P for importer@patchew.org; Tue, 20 Jun 2017 09:14:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45273) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITH-0004NZ-AX for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002FH-Gm for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56224) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002E0-7D for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 095F181127 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0C15770BDC; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id E8D561171DC9; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 095F181127 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 095F181127 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:01 +0200 Message-Id: <1497962468-22936-35-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.27]); Tue, 20 Jun 2017 12:41:19 +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 v2 34/41] arm: use get_uint() for "mp-affinity" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_ARM_CPU's property "mp-affinity" is defined with DEFINE_PROP_UINT64(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-35-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/intc/arm_gicv3_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index 4228b7c..410915a 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -268,7 +268,7 @@ static void arm_gicv3_common_realize(DeviceState *dev, = Error **errp) * VLPIS =3D=3D 0 (virtual LPIs not supported) * PLPIS =3D=3D 0 (physical LPIs not supported) */ - cpu_affid =3D object_property_get_int(OBJECT(cpu), "mp-affinity", = NULL); + cpu_affid =3D object_property_get_uint(OBJECT(cpu), "mp-affinity",= NULL); last =3D (i =3D=3D s->num_cpu - 1); =20 /* The CPU mp-affinity property is in MPIDR register format; squash --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964167743751.4984680555419; Tue, 20 Jun 2017 06:09:27 -0700 (PDT) Received: from localhost ([::1]:48780 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIuL-0004fA-By for importer@patchew.org; Tue, 20 Jun 2017 09:09:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45146) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITB-0004H2-SS for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002Ei-5m for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34916) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNIT9-0002Ds-Vw for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 05F9761BA1 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3BB7D70BDF; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id EE8111171DCA; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 05F9761BA1 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 05F9761BA1 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:02 +0200 Message-Id: <1497962468-22936-36-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:19 +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 v2 35/41] auxbus: use get_uint() for "addr" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau This is TYPE_MEMORY_REGION's property. Its getter memory_region_get_addr() uses visit_type_uint64(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-36-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/misc/auxbus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/auxbus.c b/hw/misc/auxbus.c index e4a7ba4..8a90ddd 100644 --- a/hw/misc/auxbus.c +++ b/hw/misc/auxbus.c @@ -244,7 +244,7 @@ static void aux_slave_dev_print(Monitor *mon, DeviceSta= te *dev, int indent) =20 monitor_printf(mon, "%*smemory " TARGET_FMT_plx "/" TARGET_FMT_plx "\n= ", indent, "", - object_property_get_int(OBJECT(s->mmio), "addr", NULL), + object_property_get_uint(OBJECT(s->mmio), "addr", NULL), memory_region_size(s->mmio)); } =20 --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964260901732.861077437028; Tue, 20 Jun 2017 06:11:00 -0700 (PDT) Received: from localhost ([::1]:48790 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIvq-0005nX-GI for importer@patchew.org; Tue, 20 Jun 2017 09:10:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45280) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITH-0004Nf-HM for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002FT-KS for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56226) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002E8-6i for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 096A980F7D for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9EDE370C02; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id F36821171DCB; Tue, 20 Jun 2017 14:41:08 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 096A980F7D Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 096A980F7D From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:03 +0200 Message-Id: <1497962468-22936-37-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.27]); Tue, 20 Jun 2017 12:41:19 +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 v2 36/41] pvpanic: use get_uint() for "ioport" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_ISA_PVPANIC_DEVICE's property PVPANIC_IOPORT_PROP is defined with DEFINE_PROP_UINT16(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-37-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/misc/pvpanic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c index 57da7f2..2b1e9a6 100644 --- a/hw/misc/pvpanic.c +++ b/hw/misc/pvpanic.c @@ -111,7 +111,7 @@ uint16_t pvpanic_port(void) if (!o) { return 0; } - return object_property_get_int(o, PVPANIC_IOPORT_PROP, NULL); + return object_property_get_uint(o, PVPANIC_IOPORT_PROP, NULL); } =20 static Property pvpanic_isa_properties[] =3D { --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963103229306.9866699674209; Tue, 20 Jun 2017 05:51:43 -0700 (PDT) Received: from localhost ([::1]:48653 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIdA-0005JT-Qm for importer@patchew.org; Tue, 20 Jun 2017 08:51:40 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITC-0004Ha-6o for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002Ez-BT for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34914) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002Dy-3e for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 059A961B91 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BFAC3600C4; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 043791171DCC; Tue, 20 Jun 2017 14:41:09 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 059A961B91 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 059A961B91 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:04 +0200 Message-Id: <1497962468-22936-38-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 20 Jun 2017 12:41:19 +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 v2 37/41] pnv-core: use get_uint() for "core-pir" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau This is an alias of TYPE_PNV_CORE's property "pir", which is defined with DEFINE_PROP_UINT32() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-38-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- hw/ppc/pnv_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index c7b00b6..6726483 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -51,7 +51,7 @@ static void powernv_cpu_init(PowerPCCPU *cpu, Error **err= p) int thread_index =3D 0; /* TODO: TCG supports only one thread */ ppc_spr_t *pir =3D &env->spr_cb[SPR_PIR]; =20 - core_pir =3D object_property_get_int(OBJECT(cpu), "core-pir", &error_a= bort); + core_pir =3D object_property_get_uint(OBJECT(cpu), "core-pir", &error_= abort); =20 /* * The PIR of a thread is the core PIR + the thread index. We will --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964360315983.8526893935704; Tue, 20 Jun 2017 06:12:40 -0700 (PDT) Received: from localhost ([::1]:48807 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIxP-00072k-M9 for importer@patchew.org; Tue, 20 Jun 2017 09:12:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45338) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITI-0004P8-Ir for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITC-0002Hf-E8 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45486) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITC-0002Go-5b for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:22 -0400 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 1FE39C0587C0 for ; Tue, 20 Jun 2017 12:41:21 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C60056DAD2; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 092181171DCD; Tue, 20 Jun 2017 14:41:09 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1FE39C0587C0 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1FE39C0587C0 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:05 +0200 Message-Id: <1497962468-22936-39-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.32]); Tue, 20 Jun 2017 12:41: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 v2 38/41] numa: use get_uint() for "size" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau "size" is a property of TYPE_MEMORY_BACKEND. host_memory_backend_get_size() and host_memory_backend_set_size() use visit_type_size(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-39-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- numa.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/numa.c b/numa.c index 65701cb..b0e75f6 100644 --- a/numa.c +++ b/numa.c @@ -216,7 +216,7 @@ static void parse_numa_node(MachineState *ms, NumaNodeO= ptions *node, } =20 object_ref(o); - numa_info[nodenr].node_mem =3D object_property_get_int(o, "size", = NULL); + numa_info[nodenr].node_mem =3D object_property_get_uint(o, "size",= NULL); numa_info[nodenr].node_memdev =3D MEMORY_BACKEND(o); } numa_info[nodenr].present =3D true; @@ -641,8 +641,8 @@ static int query_memdev(Object *obj, void *opaque) m->value->id =3D object_property_get_str(obj, "id", NULL); m->value->has_id =3D !!m->value->id; =20 - m->value->size =3D object_property_get_int(obj, "size", - &error_abort); + m->value->size =3D object_property_get_uint(obj, "size", + &error_abort); m->value->merge =3D object_property_get_bool(obj, "merge", &error_abort); m->value->dump =3D object_property_get_bool(obj, "dump", --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497964063911701.3891665562145; Tue, 20 Jun 2017 06:07:43 -0700 (PDT) Received: from localhost ([::1]:48770 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIsd-00039l-GS for importer@patchew.org; Tue, 20 Jun 2017 09:07:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45262) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITG-0004MY-VG for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITB-0002GM-6y for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56246) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002Eb-WC for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 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 A9CD47EBD2 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E8D526DC9E; Tue, 20 Jun 2017 12:41:18 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0E2AF1171DCE; Tue, 20 Jun 2017 14:41:09 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A9CD47EBD2 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A9CD47EBD2 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:06 +0200 Message-Id: <1497962468-22936-40-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:19 +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 v2 39/41] i386/cpu: use get_uint() for "min-level"/"min-xlevel" 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau These are properties of TYPE_X86_CPU, defined with DEFINE_PROP_UINT32() Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-40-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- target/i386/cpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index f118a54..642519a 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2324,8 +2324,8 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefin= ition *def, Error **errp) */ =20 /* CPU models only set _minimum_ values for level/xlevel: */ - object_property_set_int(OBJECT(cpu), def->level, "min-level", errp); - object_property_set_int(OBJECT(cpu), def->xlevel, "min-xlevel", errp); + object_property_set_uint(OBJECT(cpu), def->level, "min-level", errp); + object_property_set_uint(OBJECT(cpu), def->xlevel, "min-xlevel", errp); =20 object_property_set_int(OBJECT(cpu), def->family, "family", errp); object_property_set_int(OBJECT(cpu), def->model, "model", errp); --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963857559587.8324424998739; Tue, 20 Jun 2017 06:04:17 -0700 (PDT) Received: from localhost ([::1]:48745 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIpL-0000Hh-Aq for importer@patchew.org; Tue, 20 Jun 2017 09:04:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITG-0004Mc-W6 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITA-0002Fy-Te for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47096) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITA-0002ET-K3 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:20 -0400 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 7DB3E7F6A5 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1CD5D6A51D; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 156971171DCF; Tue, 20 Jun 2017 14:41:09 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7DB3E7F6A5 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7DB3E7F6A5 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:07 +0200 Message-Id: <1497962468-22936-41-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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.25]); Tue, 20 Jun 2017 12:41:19 +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 v2 40/41] console: use get_uint() for "head" property 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau TYPE_QEMU_CONSOLE property "head" is defined with object_property_add_uint*_ptr(). Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20170607163635.17635-41-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- ui/console.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/console.c b/ui/console.c index d914cce..40572c9 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1872,8 +1872,8 @@ QemuConsole *qemu_console_lookup_by_device(DeviceStat= e *dev, uint32_t head) if (DEVICE(obj) !=3D dev) { continue; } - h =3D object_property_get_int(OBJECT(consoles[i]), - "head", &error_abort); + h =3D object_property_get_uint(OBJECT(consoles[i]), + "head", &error_abort); if (h !=3D head) { continue; } --=20 2.7.5 From nobody Sat May 4 20:12:14 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.zoho.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; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497963250780417.71311048232985; Tue, 20 Jun 2017 05:54:10 -0700 (PDT) Received: from localhost ([::1]:48661 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNIfW-0008BB-D7 for importer@patchew.org; Tue, 20 Jun 2017 08:54:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dNITH-0004Me-0M for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dNITB-0002GW-A6 for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49032) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dNITB-0002Eq-1b for qemu-devel@nongnu.org; Tue, 20 Jun 2017 08:41:21 -0400 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 D44FB7CE04 for ; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-81.ams2.redhat.com [10.36.116.81]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 273627D907; Tue, 20 Jun 2017 12:41:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 182BC1171DD1; Tue, 20 Jun 2017 14:41:09 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D44FB7CE04 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=armbru@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D44FB7CE04 From: Markus Armbruster To: qemu-devel@nongnu.org Date: Tue, 20 Jun 2017 14:41:08 +0200 Message-Id: <1497962468-22936-42-git-send-email-armbru@redhat.com> In-Reply-To: <1497962468-22936-1-git-send-email-armbru@redhat.com> References: <1497962468-22936-1-git-send-email-armbru@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]); Tue, 20 Jun 2017 12:41:20 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL v2 41/41] tests/qdict: check more get_try_int() cases 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Suggested-by: Markus Armbruster Reviewed-by: Markus Armbruster Message-Id: <20170607163635.17635-42-marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster --- tests/check-qdict.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/check-qdict.c b/tests/check-qdict.c index 5eca1b5..3540577 100644 --- a/tests/check-qdict.c +++ b/tests/check-qdict.c @@ -108,10 +108,17 @@ static void qdict_get_try_int_test(void) QDict *tests_dict =3D qdict_new(); =20 qdict_put_int(tests_dict, key, value); + qdict_put_str(tests_dict, "string", "test"); =20 ret =3D qdict_get_try_int(tests_dict, key, 0); g_assert(ret =3D=3D value); =20 + ret =3D qdict_get_try_int(tests_dict, "missing", -42); + g_assert_cmpuint(ret, =3D=3D, -42); + + ret =3D qdict_get_try_int(tests_dict, "string", -42); + g_assert_cmpuint(ret, =3D=3D, -42); + QDECREF(tests_dict); } =20 --=20 2.7.5