From nobody Mon Apr 29 02:02:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1511788026709998.9092672889929; Mon, 27 Nov 2017 05:07:06 -0800 (PST) Received: from localhost ([::1]:60850 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJJ7k-000588-9a for importer@patchew.org; Mon, 27 Nov 2017 08:07:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39793) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJJ6N-0004XX-Ag for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJJ6K-000194-Mt for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:35 -0500 Received: from mail-eopbgr20114.outbound.protection.outlook.com ([40.107.2.114]:24928 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eJJ6K-00017r-CR for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:32 -0500 Received: from rkaganb.sw.ru (195.214.232.6) by VI1PR08MB0845.eurprd08.prod.outlook.com (2a01:111:e400:5a05::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Mon, 27 Nov 2017 13:05:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hK7eZ5tXbwR7K8T66uQRAwAUY01/eY9zKqRAX6DH6E8=; b=PtG4ebtg1Q0cAdTDL9jDhDxfyO3GBIuZ2VSHYyJYVzWtk2KE0GrlyFbFKAc04OmfDRH77VSa6S3/eKurJrsNo+XDYiXHE5p0JeP/UV5gfL7/Kx+XHD/naXkpiYV0pH7c79cQAHvGNTctoQ9UOLpR1ARU2arpsMnRY6Z/c2ELQvw= From: Roman Kagan To: qemu-devel@nongnu.org, "Michael S. Tsirkin" , Igor Mammedov , Ben Warren Date: Mon, 27 Nov 2017 16:05:17 +0300 Message-Id: <20171127130518.26703-2-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171127130518.26703-1-rkagan@virtuozzo.com> References: <20171127130518.26703-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR0202CA0007.eurprd02.prod.outlook.com (2603:10a6:4:29::17) To VI1PR08MB0845.eurprd08.prod.outlook.com (2a01:111:e400:5a05::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f8f4098d-b2c0-488a-a0b6-08d535978932 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603258); SRVR:VI1PR08MB0845; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 3:kjkqtvqN9aCQarVgcYE+RlOo7Nifn1bXZPM0i777viiT4ArUyzBPdcTP6ZIFeAuhfgqIKDKMdRc4KaQY3b9BQdh9ThAX6CYgS7840fzkpLUYEkslvj78xdk64mTJKRWhVVqfHXKJiIi1kSVhXSU+CcViYmKTJkjkmMrZCYzTzqQVYFGOcK587dz1UP35w0xHOMOWkxJYrSNv0lCGCPFBLsB39OqViqdamxlCDo8m46govouirAh2hb1e731aC8Q3; 25:jExKtVv1MnfzI98hKjj37Ue1hRNDb7O8A6MKWpSiioWw8QSbKGe8EfewF21AgyIF1Rh4MduKiw76mU2QvuiyFlrLEQFaRbPGWVQ1LRERTWdflD5QgvY6Lvv/g1RVo9dqe13puBvZjWS9pj6F6QEInXofA9md8lemc0XU+cOJZKrMoQovXGrDjwHWuL2eHXEfw1beNkuHLu7Yy2k1CiQYSabCCrxtxn/VC8NUDm5lDfxj203zH1eOUNui+Ul62BPSbGMFho15xdOCsOZaBLORNqxL2yrvbhWub+INCPx9Z7ccxTd3Oaf2coiRfP9Im9IoynHBF+QQmmlD16inc0qe5w==; 31:D/GKDYLaEpEbvxL9XM2SAs+o461hqAjoEad6RzMv0YoML0yjTDRLiVlZkzNIMFG4e6QX+XA2xJLpMDCIYWLzGv8ZbTl/yGk42V2BIFCmU8YwRuwQakpUoZ6JmHAf9xkg5oMPCIU+tjmo6mCgm2+R18nwXsv2GvFAQyU8AQcOAY5iMKdYvbUYUIQJF2VAtOXSrVB9QtjwAwA+hw0yvamDRXWIb5afHcnfH2GwO0HOh24= X-MS-TrafficTypeDiagnostic: VI1PR08MB0845: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 20:GkUWRZo8fgo2irLngXQ6eXIYl0j9YrzG08XkPsQwpuj78GeOdQY7b9VKyrhyj+nnoK2NX5LBuuf3+45Pa5kTOVM35LUGCDHXBte3ZJFNT1JOLzdTgJrjsZACAaCtFfjE5qZWjb/CS8em3xqLIb5tD+dkvbHR1qv2aZ/ai5rvTDgDveNv3t7StGboRVjbqXHgkce73Et8qslltFW/jkYlaQWP0YZLDvEUz0mqe4cv3A21WuuinurbMwlnD+B4X5X8nsnGpWjvJVSL62Ll/DKGeEPPfBFdfPyfd0MmiplAY0Eoiiex1bMeYQFMd6lMZ0XlTtSfGFX3eGefSYbp99rWKqh4yY1GVWTnXcj1D4GgE1dT/pEgoUsIIzWLiKbMfDZLcAAwfDAPP/fkDMK6g6ErWetfZARUJJP6nqZiPWbh5P0=; 4:RUKppmW3nwmk2HRyVroNiIablwKrEkx3figmn/k5aZdqjbKEmhxXhWL90WaCkZBImjI6lM416Ku4D/bneVhiBL+lLEkHGZvgU8a6nb19W65mFuLCiFBl0XWcR01d6tCPgwIFVCLEkFUUXQW1JBNSQyNiyfjU86v3HtW5U3G80VLv9LzM4QXzue5fuf9snW15ueMkISql+/p5EMwWpLIXJmP1a75hLwc16RKiVWMC/M7Lqg6JRfB1Zd4dO87Xi+pmQ4pCoDnPsdz0TjnaIu8g3w== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231022)(6041248)(20161123555025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(6072148)(201708071742011); SRVR:VI1PR08MB0845; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR08MB0845; X-Forefront-PRVS: 0504F29D72 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(366004)(346002)(376002)(39830400002)(189002)(199003)(8936002)(7736002)(305945005)(478600001)(54906003)(110136005)(86362001)(6666003)(2950100002)(33646002)(8676002)(81166006)(316002)(81156014)(16526018)(69596002)(6506006)(50226002)(55236003)(6486002)(25786009)(52116002)(68736007)(50466002)(97736004)(36756003)(51416003)(105586002)(2906002)(101416001)(53416004)(76176999)(50986999)(3846002)(6116002)(1076002)(6512007)(47776003)(106356001)(16586007)(48376002)(189998001)(53936002)(4326008)(66066001)(5660300001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB0845; H:rkaganb.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 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; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB0845; 23:3BGkbGuZlWDfKogRXXVhj2M2wD1jwcM344FJU7X3A?= =?us-ascii?Q?6oCcoMO9pWPqLbjFsJiYBVDqTzEAnk2t0XYLy+YcKHory0O7sExplOitAodq?= =?us-ascii?Q?9EZbzHQex8IwYcc53m3aJiixxW7skhmGUMIj7fhhGVqfTTgG41f8gLBX/Gxs?= =?us-ascii?Q?vNlSttEVnsYkH7iM3T38rkeOy28N7E98BHnp+EcGni3/gasY3agrRMSXdmTH?= =?us-ascii?Q?aivuC2I4+lP7s24gDhZiv2iIxHbuUKRgTia7bXwwTx+TEmooBl5EwS9yF2gl?= =?us-ascii?Q?Gez9f4yojj5JwgKtrGrawKRq8GD+gQcrs7YW+LLx7ob4Zi8Eze0rNT2HQfQu?= =?us-ascii?Q?gXZAlrXn5poeN5F6zPVnhgZ5tuBUawhLJsnNynGZddAFS4bfqD2FvqoJSjKB?= =?us-ascii?Q?fGnGpfHmKnUuRfryMLXAd/NS01PFrtKiCdDbRcQ61dDCCvJa0Qu+9iGRWXL3?= =?us-ascii?Q?tt2tccah7AbRmD5LKUVsXyItlMQ+NWmO2Vs1FH205+sJehy2sQJ58NxoAs26?= =?us-ascii?Q?quOHlGftl5/RioHLqWG8uxqb4FbOdYrmabzyD29wvVaf+xpye2MECNOERUaT?= =?us-ascii?Q?bwR/sYfA9WDoi0Mt3a75MvVqrNqGZOJ0Eojs0DFKhW5m08ZdV1nxzzxvfg7y?= =?us-ascii?Q?vGoeB5wVkDopNA3Th9ommsldb2DsOZo4Wxr/3c7GKzb1KLmdRwomjWsUr0VY?= =?us-ascii?Q?PK7R9BgQ3yWf6DYjnkd5yHbpqiwocYgkC9znjBmjB4yw/flWUyOwld2zi4At?= =?us-ascii?Q?axdwdmz2BYsRavcq3pADQMjiQTDWU/wF/NXB9EFH6ZvXA4/0eaUZW6pQMFis?= =?us-ascii?Q?IzSUBxmXLEBtxaDalOT6cE5TuXESFbpRiwBu8S0mVvZY5O8ZpiQiX3LDVVZ0?= =?us-ascii?Q?dmrDRS7QEt14A02Qx5oINFPQC2KSZ5mVv88lvVNytn+Iw1J3gkSgUqKwfF8q?= =?us-ascii?Q?qzdyxQK3CVdP8l/Nf7MWOyht7cYiHaE6N/VMwqjPDcok4PvmgMuRypLMzyyE?= =?us-ascii?Q?6yy27eOQfQ86FM5lTkPPSNgiet7f7PVsuCfbBe4wjzIrH5wlYeC4ed1dxA9R?= =?us-ascii?Q?DTpn5+ElMX3VpoNjuBtuoNm8uPPY51bCinfoHYGOZgXwd9qn1YyMz0HtJ+54?= =?us-ascii?Q?307+7rkLzg/DR7L0HMUVbxlsSLWtIS8WtnHuqWqNZGNcznljuzJgLieDXd5x?= =?us-ascii?Q?FFWcNBsOPO8QmWSsfSEdhVw6nt7gzAGacATjHU13Q35qTjTdyViSRR+5g=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 6:qgtPu3Vot7S0u+OzX9hDzg/aIT+6v2DDC5AKcETL+5DtYREUgV4InFkZLVNCi0ljEYd0BDbYUXlDJkR+P+01LH3lTR4h1Xmf6aTxNDb/+pYF9FsrVfWYGkPsvva1bQldmuL7pfLNcoSH/OODV/85Kt7VR+zVCHgETqJfNFADoD9r8hw//wRhYm17UOZbDqWR6kov669hRt9u2OEnxGZK+5cydx5cr8ZWIWZ5NhUNGU6g5aOT2eHGrblZ9/lD72ZcUzma/DCVYhh6E+HcOa/VCB8pHcRaHYzkxX+sk/pvqspN1m7rbhoPqwuIriGxQ3Iw9xtrBIbzHSQ8X55YD57iUClq6+m4hYIYGhAORX6hAe0=; 5:p2LBgP+fr4GLDFeOfPL2fCqALwitNxmFPnXw4wFheaOt/zwQbK81CwamHUAf+cUfPz7AzOd3pFZBQd57+4cIozmwN6XY+vPI8DfeXAucViPnunWCkAYkJxBMtZ3n5k7euu3NLW/ga7vEuAP7FDtPSJ3CutCDrbejarTPWy50XvM=; 24:D1sqhpPftBGePdh254GNnbxzfqEzM2VPPPcow6MORxt6Ad53wHp/64n2WYWXzitsTmyEHKQY6WCY8KjoZZmfnU8iGE1/hjZFlL6xi1TCrBw=; 7:md9jRl5vlswFbG4qy7skKNHMFqD/+fn+zfy8SncAYhuKv8n9rytONvtd6MFPvxXp7GxoSN/3qXZJ0+sO+Tz/kiuJjAzqWUolCb1BTldNRLQWtlxb2dFTejUGfp8spla+HS8Orun44SND9uLh44cOj4HnSporZGM3ot4/YESM3mJdpM39fWkUyPV74RlYmfrlajNWXUFxX5UugUj8vjDR7EpyObVWDCFZUswCDJ+GTO7096cvF9swticB3rroQJ69 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 20:xu+JWgs0Rj6hYw6lzfMalaOLBjlarp81a1q5Go1chZxqfPIyf3XSIMHE0WdY9hUTQ1Dqv695+2HCQtX+kCCWEKQ05gEe1Jd2gi+TEJODdBGMK4UO2f4Nl+bRvRywEiliZsPp4iUXoksnyrUoQFYYRppw1oK9GiJ7GL5IVT8oTxE= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2017 13:05:28.8891 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f8f4098d-b2c0-488a-a0b6-08d535978932 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB0845 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.2.114 Subject: [Qemu-devel] [PATCH v2 1/2] qdev-properties: add UUID property 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?= , Markus Armbruster , minyard@acm.org, "Denis V. Lunev" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" UUIDs (GUIDs) are widely used in VMBus-related stuff, so a dedicated property type becomes helpful. The property accepts a string-formatted UUID or a special keyword "auto" meaning a randomly generated UUID; the latter is also the default when the property is not given a value explicitly. Signed-off-by: Roman Kagan Reviewed-by: Marc-Andr=C3=A9 Lureau --- v1 -> v2: - make the property default to autogeneration if not specified explicitly include/hw/qdev-properties.h | 9 +++++++ hw/core/qdev-properties.c | 61 ++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 70 insertions(+) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index e2321f1cc1..efb22ba80c 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -30,6 +30,7 @@ extern const PropertyInfo qdev_prop_vlan; extern const PropertyInfo qdev_prop_pci_devfn; extern const PropertyInfo qdev_prop_blocksize; extern const PropertyInfo qdev_prop_pci_host_devaddr; +extern const PropertyInfo qdev_prop_uuid; extern const PropertyInfo qdev_prop_arraylen; extern const PropertyInfo qdev_prop_link; =20 @@ -213,6 +214,14 @@ extern const PropertyInfo qdev_prop_link; #define DEFINE_PROP_MEMORY_REGION(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_ptr, MemoryRegion *) =20 +#define DEFINE_PROP_UUID(_name, _state, _field) { \ + .name =3D (_name), \ + .info =3D &qdev_prop_uuid, \ + .offset =3D offsetof(_state, _field) \ + + type_check(QemuUUID, typeof_field(_state, _field)), \ + .set_default =3D true, \ + } + #define DEFINE_PROP_END_OF_LIST() \ {} =20 diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 1dc80fcea2..24c17800e3 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -10,6 +10,7 @@ #include "net/hub.h" #include "qapi/visitor.h" #include "chardev/char.h" +#include "qemu/uuid.h" =20 void qdev_prop_set_after_realize(DeviceState *dev, const char *name, Error **errp) @@ -883,6 +884,66 @@ const PropertyInfo qdev_prop_pci_host_devaddr =3D { .set =3D set_pci_host_devaddr, }; =20 +/* --- UUID --- */ + +static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + QemuUUID *uuid =3D qdev_get_prop_ptr(dev, prop); + char buffer[UUID_FMT_LEN + 1]; + char *p =3D buffer; + + qemu_uuid_unparse(uuid, buffer); + + visit_type_str(v, name, &p, errp); +} + +#define UUID_VALUE_AUTO "auto" + +static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + QemuUUID *uuid =3D qdev_get_prop_ptr(dev, prop); + Error *local_err =3D NULL; + char *str; + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + + visit_type_str(v, name, &str, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + + if (!strcmp(str, UUID_VALUE_AUTO)) { + qemu_uuid_generate(uuid); + } else if (qemu_uuid_parse(str, uuid) < 0) { + error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + } + g_free(str); +} + +static void set_default_uuid_auto(Object *obj, const Property *prop) +{ + object_property_set_str(obj, UUID_VALUE_AUTO, prop->name, &error_abort= ); +} + +const PropertyInfo qdev_prop_uuid =3D { + .name =3D "str", + .description =3D "UUID (aka GUID) or \"" UUID_VALUE_AUTO + "\" for random value (default)", + .get =3D get_uuid, + .set =3D set_uuid, + .set_default_value =3D set_default_uuid_auto, +}; + /* --- support for array properties --- */ =20 /* Used as an opaque for the object properties we add for each --=20 2.14.3 From nobody Mon Apr 29 02:02:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1511788033648528.0859734577599; Mon, 27 Nov 2017 05:07:13 -0800 (PST) Received: from localhost ([::1]:60852 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJJ7r-0005DT-Kk for importer@patchew.org; Mon, 27 Nov 2017 08:07:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39795) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJJ6N-0004XY-Br for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJJ6L-00019c-42 for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:35 -0500 Received: from mail-eopbgr20114.outbound.protection.outlook.com ([40.107.2.114]:24928 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eJJ6K-00017r-S8 for qemu-devel@nongnu.org; Mon, 27 Nov 2017 08:05:33 -0500 Received: from rkaganb.sw.ru (195.214.232.6) by VI1PR08MB0845.eurprd08.prod.outlook.com (2a01:111:e400:5a05::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Mon, 27 Nov 2017 13:05:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=SMcSbmzVSqSoO+9WPbdT5TVIMT10k8oxn7Boh7Yva4Q=; b=WhL54n4VnIGS4UF8ZBVKJ00XtjrvimXePT+IVJ5tboNFe2HSlBTD7PpsOUKVDBM3xcHvlddxE5XgG+xRI5gNDTbr90nHcZcKNFpfWqqHkiwt5MRUShq5UZUsMN9g72ScoCveLw3VsUKwf7SeZcRBK9pncJzs7gNQ2J3JV+tez10= From: Roman Kagan To: qemu-devel@nongnu.org, "Michael S. Tsirkin" , Igor Mammedov , Ben Warren Date: Mon, 27 Nov 2017 16:05:18 +0300 Message-Id: <20171127130518.26703-3-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171127130518.26703-1-rkagan@virtuozzo.com> References: <20171127130518.26703-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR0202CA0007.eurprd02.prod.outlook.com (2603:10a6:4:29::17) To VI1PR08MB0845.eurprd08.prod.outlook.com (2a01:111:e400:5a05::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0e0a1b1a-7bd4-4a53-9825-08d535978a0b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603258); SRVR:VI1PR08MB0845; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 3:W80O/nZJU3ZxdOzmwdFMWDlKQ3PlVqJcpV9Il9gGUnlgGXwHgfp2/mz2C4MDu/bgflYi8NKGZ1V0NxqC8rzuJAS/X6VlnOvV9eHWM5ptUKE/mFtdKc88NBI1zl2MBmiLJjOYEJ2+SwSjfg6FCLvJhePvOkn12CKF9uysq6sz2hGBihXxHcAxYZPZvjjdX1YehJufRlURI9Mifqdw8X+JxDNRv/J12Fbo1g15vsyc71iyb0j2zZPhOPkNV5o23hIe; 25:eMyLrZxS88mwknW0PftkAniwrFG3MlzYsxwWsxTixdYR95AYrN40ZtaGxdIvtvdFVLIHNRiqDePLgmSeTtqK7kaIeikQFNiq49Zm6nXuSS+TUC4P9Ekf1ODUDx4Ir95svup0n/FB1nIvmuP8kblKlE+XyGLWL4nqIVbqEQMnM9jOmt68lZ5JPKdprh+p29HeGSL7nYvwGzZPIk6TvZ1W229T/6wrNQWZEFnBkkPRPA3MPx2hFJ3+MERAyV//s7ZclG4YNPerJ4B3rkrsgxha9eN55bn6rZ74PoSe8ZMS9AAUUM52iWOfkTymgd0MeDDre9WdmkzH+COIeKjcKPagoA==; 31:wLMDyFGPO9RrVXrndLt99ZzyhN8jaSs1CEVywLikX0iQR5poEIHOTeJmKRNd2NCU9AQzXIXAPTPik4KHONS2+sF3bhzIg+0/9ElQPuzu/fIFoz4GRDgC/ndAW+FEIxwOk1ZPx8fcHDXx5BaoGTe1Cbtx3uFp44oW7i3xi2zRRo9NEguzxiYVat/mGe6INZ4zgDfkUK1qlFn69VMPTLkPLAGo7SuvdMv0IztJIUJREUw= X-MS-TrafficTypeDiagnostic: VI1PR08MB0845: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rkagan@virtuozzo.com; X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 20:Ks1a3/oNQLA7kMSLN4lf8t45K8NquOykzG9ERxDwz2bkl5HA/GQh02oMeJZxisdfLfof0i3sVlAYrpuXlChPxKj9eI8SVjcQ6bFPN84mg0Z/S7Xx3fQx6+M3xLXfbLo0OVXr8eS3YPX871qALW+sYP1Q5vDzabZURPyG2U/tFvLX1hhMdfdcds4k6tu1nAcwqpD29+wyD1lbPxzvEwMCtbA7u3eBztWOz5KeFlXUgcLZzhjU9PJ27FSDZIZG7M4U9VitfwfDL9Bq2ZDms742uRNwhaLpLKwKHvaA/Bhr+j98Bju7St8QREHSo9GdPsWVNCeMXjbRmt9duI3GDYGoEYgYsoqLPjEgnqvyzrRNzG1+XrOL6KdZjSO0CfPdfuJK6/r33WtEtGXlgqrCqsU4LgI+V45wRfLq3QJkF0laZOU=; 4:YR3j1pUOVNEp0AsNjvsQL4YQLdq76mSSGaHmTGhHu+hrYczl0+EnSsZX+6ELrIozjJNYszNwrimN+hCgv47Hkj/WDzUzd9300+yV/7mgwxve6/aJhr5dkd8sSfZ85/eQ4yOl6SNrecublOKJgP4aMLEFO9qiyD7qC+th0RgrolqwlJHwNYLw9JeapuLHQtBmWxS+opjDjhb2O8/LZiOEJjcaGt2GLhKwBhCJssBf5ny1vn+3icSTaQ5naow35NWA4O1T60vz5Ivg3JwYaIajoA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231022)(6041248)(20161123555025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(6072148)(201708071742011); SRVR:VI1PR08MB0845; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR08MB0845; X-Forefront-PRVS: 0504F29D72 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(366004)(346002)(376002)(39830400002)(189002)(199003)(8936002)(7736002)(305945005)(478600001)(54906003)(110136005)(86362001)(6666003)(2950100002)(33646002)(8676002)(81166006)(316002)(81156014)(16526018)(69596002)(6506006)(50226002)(55236003)(6486002)(25786009)(52116002)(68736007)(50466002)(97736004)(36756003)(51416003)(105586002)(2906002)(101416001)(53416004)(76176999)(50986999)(3846002)(6116002)(1076002)(6512007)(47776003)(106356001)(16586007)(48376002)(189998001)(53936002)(4326008)(66066001)(5660300001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR08MB0845; H:rkaganb.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 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; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR08MB0845; 23:NhD1yf7eB9/RuiniDz9WKcFDX/6k93ttuTWnTnO2M?= =?us-ascii?Q?+K2TojIv9bL5/++9DdkIHNx7VckZuXxdSV8nqt91nKNUKzPYyl4nBl671f14?= =?us-ascii?Q?KhWp4zUpGta8TzHSWTZyOhBtbg/x+Nt89mVrz0ioctnW+LiUA5wEozC2fMYo?= =?us-ascii?Q?ak6Lg3XhmRNufRdj/EV5Etl1AfVWEuWeSqSODFaNSqroyudEVumRNJOzO7gm?= =?us-ascii?Q?wF40Ii7QWZs/jH1gIeDcaJYwJZSN6fxjrPafzkph6v2gczxp3PtLQgS581WM?= =?us-ascii?Q?7+xY1hGiWi47CzcSj/z+CqFLM32hTLOLPFDCunlw3DTPZoULWrOaeGlNUb4f?= =?us-ascii?Q?Y7SqcHuz5bEoAyzxLGftYjychlWkA9JrqrD2Q3q/I0oT2rkbZGgP9EXBjmfe?= =?us-ascii?Q?BoE9eaVdkysTZ/uD22lWDFwBH9kgyMh1vdAcOYlm/UvqNrc5FQzGyKye3T1Q?= =?us-ascii?Q?y7SWwEZIS3bwf93VLTqClkXQoofhVef+KrJGiw7x5glSbw2t03CyvE2jaP6h?= =?us-ascii?Q?JNFOwm1LyuysnNOuv29QQ83TkUVp6NTik9/165RebVJI2TG0e0ZFGNGLphqK?= =?us-ascii?Q?AhUrLALRLSEXMJv/oFcrmzy1Nas8VANEEx5Lw800l8IIZ6Q2UjsG4w3TQ0RE?= =?us-ascii?Q?DuBvezEEKSfoySg5e3QgwFXp4fhj9e5wDV54BwndiF4uWhOTx7PAPaWG1oQ8?= =?us-ascii?Q?6iqFOQsO3iRNpLyL7PaM/fJm0j+9s2UslHVLAmgDilDK2CeTnu7Hor8Tb0Pz?= =?us-ascii?Q?9ykKuePGiYxGsImFRfeFxvmQNJSbAzAPOGgZ+2vTg2dFTgs0Q9SpnoyY+4sf?= =?us-ascii?Q?UAYV85oJazbvGnINQ+eAp+qIe5Ag2ujzybhz49erAWzoI548gfYVwviiL6If?= =?us-ascii?Q?U6UAsGRB3lowh4W5QWTC2h3flBF9d9ldypOPtYCLcRmu5eTjUwuEV6cydkWB?= =?us-ascii?Q?wupVjDLki5Ymtk91+StaTHxVW50/I8gbJAJjTNJpR4AsYR/Sjowp3kleVtgr?= =?us-ascii?Q?PTtNOo2DHoqY9qOILqC3uAV7aJ9JcMeyOUjveZMK8p/CwRHT1yA5oApPXGbD?= =?us-ascii?Q?LjXD/z4nbqZoT+ftY/QLV08+/3vpZNbCJ5J5qilW3x3dqCZvz+153oD00FCd?= =?us-ascii?Q?JtjgYLffpoB//SENF8++CdLQmF8jO9/0RFM0CCTmpy6XuUa5r65cdpC6clMR?= =?us-ascii?Q?z5zI2NSxSZZmGdUDYXuI/MCUPM1oleWcS5MGqhE5LZ01/+G02HwLzQo4Q=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 6:Q616fyLdB2QGJBSLYuK9aXUwWbbJ67UvtLoUnQFwgBoy2l0rLs3on3cRnYgeJOrEK1GJs62JcpX8L0+AHh9iloLkss+yOdbIwZ9W+naDZNzIxIYGTS0WR8Bk/WzzMtEc1VSIQI3S7J62nvYnY7eViRosTKT0kUxJSWxpkJr/6QoJvI73d+hduUfWdy4gReDL27q3yoxSSqe5tEuUhfRDFBmlxKYfi85b2CKoN3FbZrSYniDQEFi6vQRh3zbu/0D3SB8z/7jYtgbuUd89gLpmCJoI1qWva9EMVXzgtq5nZMvPHCTq4NYDNwQAp7zYfa+FLdqtH1AIu8uzsdPWBOYeeXyKumMK4zpLB9giJRjD4QI=; 5:k3PfNsQR/OqN1V1fN1wMmx3u0UB6sZppx/ijKHRsJHwJb7/xrTpCjI81zPfTGMZXl0NVkXgtG0k+MpPON+r8XIu8VKFMFFD3zwnK8etXqi6ixoF+HMvxE5V7grKuh+jLFMqZeDVREK8cx8v3UwZM6jXZqYhvJZ3wYEgLaJC1rFU=; 24:GJAIYD7dtWvuqkXEcn8YGXrLdYxLcdLm/5vc31192K3wLVT4eLmF8BXKt0vAUmgef9S5LXXGcWvHE/GcNZxrZEPiJip5JvKXxprN2UQE1ME=; 7:48d0vZtaFHBa05awuBWkE2CcakRsnpCWVjuKNuaEwYlpHSiO3M0uUDDDQfcMNGxdxm1cBFuwayWN9RSlXrLYwDJimjnm+y6HChF8RcCXSJ1gLps+Zxqey7uEK3gs8GZOLuQykRUQgOSKu2ufG8khxagdFV7v4FfDR2bxp2wsP2r+J2Zfa0fvhi8s3aycxbF8eF2/G+uMB9zadGXYKN23CvBIaOve84SEejoo/EdamF2563NQX1BGvOXg2V5KPT5Z SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR08MB0845; 20:pa26wJjHPDJXMzCp0p8hYpvknQjlmPayfV/Vt/6WViDmt3ackeLVy7wCMV/VvUy4gH/+5l7Iid33F0HWQoZX5U2FD05qLEDJamXLPPQyIdrL1i8OtpvlcK2F2g9NSpNfN5Koyky1InbI6bFbJEvLd3M1tAlao4knjoUW6C4xcGA= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2017 13:05:30.4361 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e0a1b1a-7bd4-4a53-9825-08d535978a0b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB0845 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.2.114 Subject: [Qemu-devel] [PATCH v2 2/2] vmgenid: use UUID property 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?= , Markus Armbruster , minyard@acm.org, "Denis V. Lunev" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch vmgenid device to use the UUID property type introduced in the previous patch for its 'guid' property. One semantic change it introduces is that post-realize modification of 'guid' via HMP or QMP will now be rejected with an error; however, according to docs/specs/vmgenid.txt this is actually desirable. Signed-off-by: Roman Kagan Reviewed-by: Marc-Andr=C3=A9 Lureau --- v1 -> v2: - use the corresponding define for "guid" field name hw/acpi/vmgenid.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c index 105044f666..ba6f47b67b 100644 --- a/hw/acpi/vmgenid.c +++ b/hw/acpi/vmgenid.c @@ -162,21 +162,6 @@ static void vmgenid_update_guest(VmGenIdState *vms) } } =20 -static void vmgenid_set_guid(Object *obj, const char *value, Error **errp) -{ - VmGenIdState *vms =3D VMGENID(obj); - - if (!strcmp(value, "auto")) { - qemu_uuid_generate(&vms->guid); - } else if (qemu_uuid_parse(value, &vms->guid) < 0) { - error_setg(errp, "'%s. %s': Failed to parse GUID string: %s", - object_get_typename(OBJECT(vms)), VMGENID_GUID, value); - return; - } - - vmgenid_update_guest(vms); -} - /* After restoring an image, we need to update the guest memory and notify * it of a potential change to VM Generation ID */ @@ -224,23 +209,24 @@ static void vmgenid_realize(DeviceState *dev, Error *= *errp) } =20 qemu_register_reset(vmgenid_handle_reset, vms); + + vmgenid_update_guest(vms); } =20 +static Property vmgenid_device_properties[] =3D { + DEFINE_PROP_UUID(VMGENID_GUID, VmGenIdState, guid), + DEFINE_PROP_END_OF_LIST(), +}; + static void vmgenid_device_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->vmsd =3D &vmstate_vmgenid; dc->realize =3D vmgenid_realize; + dc->props =3D vmgenid_device_properties; dc->hotpluggable =3D false; set_bit(DEVICE_CATEGORY_MISC, dc->categories); - - object_class_property_add_str(klass, VMGENID_GUID, NULL, - vmgenid_set_guid, NULL); - object_class_property_set_description(klass, VMGENID_GUID, - "Set Global Unique Identifier " - "(big-endian) or auto for random value= ", - NULL); } =20 static const TypeInfo vmgenid_device_info =3D { --=20 2.14.3