From nobody Wed May 14 15:56:08 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1522678825569923.1503564206062; Mon, 2 Apr 2018 07:20:25 -0700 (PDT) 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 44E56C0587C2; Mon, 2 Apr 2018 14:20:08 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0C4905D782; Mon, 2 Apr 2018 14:20:08 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BABD3180BAD6; Mon, 2 Apr 2018 14:20:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w32EK63J024298 for ; Mon, 2 Apr 2018 10:20:06 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2A7D0620AF; Mon, 2 Apr 2018 14:20:06 +0000 (UTC) Received: from mx1.redhat.com (ext-mx02.extmail.prod.ext.phx2.redhat.com [10.5.110.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E257A601B3; Mon, 2 Apr 2018 14:20:02 +0000 (UTC) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0087.outbound.protection.outlook.com [104.47.32.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C020F883AB; Mon, 2 Apr 2018 14:20:00 +0000 (UTC) Received: from wsp141597wss.amd.com (165.204.78.1) by BY2PR12MB0145.namprd12.prod.outlook.com (2a01:111:e400:585a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.631.10; Mon, 2 Apr 2018 14:19:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LaoctCDNqQlHCdZqTyXMsb/HpbRL5g8usjDgC+kpiCs=; b=3ao4zz20bfRRDm28vuzVIoADyusbIr3dmvGc8yIQd5zzlHh/mUQ0LC7FI+AOct/JgWrSPHj1KMF3p3M8rKliVEMA67fkROCl5g5j1+g0vsA2HVpaENzDCt7xSphKLoBTHv1zlupAQriUr6BCV0+huGJjupXx+mIWkHNEErZhK8E= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Mon, 2 Apr 2018 09:18:54 -0500 Message-Id: <20180402141856.4596-9-brijesh.singh@amd.com> In-Reply-To: <20180402141856.4596-1-brijesh.singh@amd.com> References: <20180402141856.4596-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0501CA0001.namprd05.prod.outlook.com (2603:10b6:803:40::14) To BY2PR12MB0145.namprd12.prod.outlook.com (2a01:111:e400:585a::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a4b3f7a3-69f6-4c90-bd68-08d598a4cdf1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BY2PR12MB0145; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 3:fKBeYYkg3GBdP1gbnLMXN7ciDlyl8RVIVoCHqef2vLbBZH91omwuqSoku5B6vVgv4xgW9bXrCpT9h+W9IU5M2IDoji+f+6QxiPNRFzrG4a8vg/TOMbEUuxIYnfgXj1kTIftJI6GZ5drtYtdS6EtMOuBZrRu3dgXQMCXj3dXf9nPbgVYM0e3Zx7Q/b3udB2WzyQLMeR0WAa/uxhPYCovmuNvfDnQFQ8EZVLLrVLc4So5ZGiEQEs7NZ/7AgPMd7NuQ; 25:V4eS8O8rl00mxq6XOfMBrKo+L9gsiDj+8wjlZJL65IYABvTdWsei9xOyilQlQ/Uh8ilGWC6TYuYsM06PTn+KIdXUGqNhmtXK2FWdrK4XR+0Ta1O3DUzSK4clOk8cZYt5jGVeSpWNTH2ljHnOYckRuWUFGBZHkD4Kn3CvYfwTk/Rw+VUcfx0NRCgMUY0/HUe31XJ600eRH0oTwV1P/sQVg1df/UWvifIqcivN6AMAfLDLjTL2XzRwwCTuG7Lvk2HCUR2w+MxUZJhdpqaqpOh+g7UQ2G2UkmB0ha9sRv8wQUQirJwhAzcbvDNLRltGQQ8OLLxygPVqMbq0R0QVUnuxYA==; 31:HXKxPI9nXdF6V0pJcRIhOLmGU47RRaHw4cXwXtcQ4cZeEPAeVcH8skXAaFo8kMAV1WpbgaSA9otbG9s2apGXPlbqZYqdOCfA56wWiMe4nx/eS+SVnhREBSv8Rpix9ShN/u74cBo8DgXBhHX9X5KHMuoakpZ8+7/FGAWjSZY2dH7HOaaGS6NaUrJifUeBZ36XyeSFBLZQ6pzhtFoNLmV2iJQlhW7bdRyi0BFbFg2+s48= X-MS-TrafficTypeDiagnostic: BY2PR12MB0145: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 20:tFwwX1a9myRZ9IJfjSEBnJ6A341y2I5sqCthVtofKOW79AsKOKCvAPXHmbzprGzBApVG4E31ncysd3I0XsEuC8Y8dMHtFIW1Lii9+BxXtkjTWKs3p3n3I4mjSIpNWsAOTj5l+pqn/FTYfcgFly2Yaq/VF1XdNw3OhGGDlYtJtL1M5vPoAj+SMJrKC/68/zFOEvLlyfcT4am6/gB4+hcKqswztxAbRuaO/v9I9DZ55GseegxoJH0u+K0v1KoA/kFhPT4W4tWZDEE+R59U8SjMkELarF2mBzNcflA8OBi10cFeqAwXcJFcgtHh/m0k0TCJftktyFdXx62AmtJMw5RvegfbgkPGQ5CX3XEPz1aZVKyNUGMRzWo8H2aA8PRnX6rlU52OTgcv1IMMS1tW3d4V9fygyGTYmSnit9lI1wJERoICnyqzqdaa7j1EtsZNqtN67vMrq3sQ8Gz52aPJR5ta9LE9JQ3im5Qp0tgl4rsyHPN1KRZLUp8LRliAY38sDfJI; 4:+YpmmVmS0O2DDpAOagbeH0ix2S43aPF1aQbE6uS5IgrCGs473jcp1dIgkoTys7d86oY3lTgp1nFmM9l5XawEjVadTqgF1D3EcjhNLxlsTuh7N3RRC+dtpnOEs9FGIMM1n9kIsv16nsIlOc0lw65LxAOKr1XpSj9AzrHXtiXlttUegOTfMl3zvagRKmCCEtH5dzdBXFTCfxO306QwTy1so3AZ2VofnD+nixrqCR4l945OwH3WDvk7dh0C/6MbW8yKm4QkDTeMherHo5WoNOx3HVy9uYwaUJaAIVcAPYK2Zs4LrAAOBVuGlRXteom0SzJXsnKQnivXD9mVeRVfH+Vipg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231221)(944501327)(52105095)(6055026)(6041310)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:BY2PR12MB0145; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0145; X-Forefront-PRVS: 0630013541 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(376002)(39860400002)(39380400002)(199004)(189003)(25786009)(956004)(486005)(6916009)(48376002)(36756003)(81166006)(50226002)(186003)(97736004)(54906003)(16586007)(316002)(478600001)(26005)(1076002)(8676002)(6486002)(2351001)(50466002)(8936002)(16526019)(106356001)(47776003)(66066001)(53936002)(4326008)(81156014)(2616005)(2361001)(486005)(476003)(7736002)(51416003)(446003)(53416004)(59450400001)(6116002)(11346002)(5660300001)(68736007)(86362001)(76176011)(105586002)(7696005)(2906002)(52116002)(305945005)(3846002)(386003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0145; H:wsp141597wss.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR12MB0145; 23:ajr73oWR2WZ81AueKpDpC/SP2eHZ57m1FZH3BDk5U?= =?us-ascii?Q?oFDNdwt+LmSm0HhbrlQetOvtB3xRqsziDlWd0fMwy7fX8jdcaJA8wh8i/rkI?= =?us-ascii?Q?c8JxTKKJQulYQ92zhsRsFCGsevLs9H5l9rIDmL1Q77i/DCOyL64GRjMOStxX?= =?us-ascii?Q?rT1iRYA+kfxwe61RnMw2O/o8tw3rA83JsGdqj3hos7MuW7E3gtUJKzfZduPA?= =?us-ascii?Q?uhHDf4o415zWnYqV4EhJbLqttO3s8PisIhLCXa8Fx1AL1ND2xcxWRhk6dLPq?= =?us-ascii?Q?do4O21gtittHMv9t76k6CxlWF9/StHBE2Y7IhCFpUT+AioI8k7XWlpMfu6JJ?= =?us-ascii?Q?zQiY6lPZDmiseg0RoD2UB84dbl8xhr0lBYahj6qKCc1DXQU9m18fKnwMos4z?= =?us-ascii?Q?1BpEuOj11ocoF1lICIh8ifBGpTUrOwqE9B47xighKNhr8xOVTpaGML4BP9TI?= =?us-ascii?Q?0DAtsFn91xM7r4/2C/BahadXpUo0bFhW6YcHatMOwjL8Uqwm5loY5rasEBX1?= =?us-ascii?Q?IG5WpcFMR23KR15vaVgzEORLUY60495eFd3q0ySHqiOl8WE7hdmfvaV4AeVK?= =?us-ascii?Q?DVq9A7R5Vlb3KlUgD7zQSvaeaTv/8R5ZpkZiqBWuBR9E4vo8Om67nfBRekG3?= =?us-ascii?Q?2/YY571dYI2ExW6cpkZwkfXnLMB3Zid8WafiP5j516UGOvD4/z15G8SzEnNz?= =?us-ascii?Q?d7sdrqkUepbXPur6UrhWWKJ7ROwHNs6iGfGgg9WTbND38CEBCx2ImLL+xGIn?= =?us-ascii?Q?pZaNxKcvYaFbbvEjx0SVXY8SpZ/AsXotD0eJIiz04rZ0AYrvby1koEAmwGQR?= =?us-ascii?Q?EU9LGgYZmMZse++sn3Xwqh0oCfi8m7Wh23ZQSUud4uxJYq5nvx4GWnvmWqpV?= =?us-ascii?Q?XY90ewWcSZd+RYVYETJZPGFxP3Dgo0ZrcsTDhfKWW4xR1uiooqQKvOndRk2J?= =?us-ascii?Q?NDzDxiBr3BOJW5vGBhXGgWYsA5JorQnAlYlr6C0rDh5k5sqnhS/UUPIbtXX7?= =?us-ascii?Q?sEivG1SGaRQWAvl+TqZ+PepHnscpUOgAGTVFZY/G8L9ZcGtqMSrGuPC6gVLm?= =?us-ascii?Q?Gn0wVrQ1cQqvN6MTvB2Mb4D8+xYCqJa3yJO0W7CnzD73elrOs9oZBnwzbfh0?= =?us-ascii?Q?VIICMp133lzQxSCG154vnDJzjaLdH4fPGuU86RyPFLSQKzyRgMpGoRhXfTQk?= =?us-ascii?Q?YYN3IX+68V42+VlBOu5FIiGCy4wRDMY/0euXaPtgpMocuRFjyWO9DHFvhsK1?= =?us-ascii?Q?9uW1D2pDbdiuFSIsOvKURWCu3e5XYteFyhG3xptNrFnsSwU5y7xcfk+LHCQD?= =?us-ascii?B?Zz09?= X-Microsoft-Antispam-Message-Info: lgqdlz5bTSsM9sI4r3+39o5/6mXl5AjVwW1rbwoRY3LDnAjfQVReIH0A5BNmqUv41j2+i67j+qG1Ce6EH/8xZt9VxTgVYc0bE2fIi6dE0qE7vkBIsGdx5zjGE0mr248a7Qg9rfKunz4p62cMTZ67M8muYK5oWE+mm8rrzLXsX1vflC9s75RMUFFw8kSKecaz X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 6:x9T82IN65n5Mfg8YtcugoC0pDRy+GhJ7Pmk0a2c48qeRBGPTcmLPNKU237rG1Sb7VKlyYnvjWdlujnOKR0usCBnM6/XNcWdyVlNzYtdibL0AcxDK6dQIJbyiC6Gf5XqS3R7eNzv6Vt0XYwjmpmlihkOObjsIOiZXXvO7XcjD7VGnBQ7Z6VI0c/iVUzGtlY1PmoHRPI3gh1KSX+2zehQS9U9KEUzwVxL6otmp9z2KklFflnLZM/otQd4nXCzF3ihXq34NPo/UVuq7mqkAu8uu97oZiZh9za+ntMrVouyu8xQJpQs6m6BE9PoSwRbvu9z7MzORKfxk35Oo1u6j2zl6CoUK0Bq1GrdlsMUaRc9bAOEPuQu5rQ5TuchBtVDX1ao030btV8OR/qqAtou2xaS0Y5FhaKVP0P62xYsNCRJ6gLmmsDeVlMBBHid7hySENPkOUsUDF1w5BthM3bB0KuLR6w==; 5:EegUujX723wamCJiy23q2LhT5hbZ8jtjPg1pCT+X1FXjSpJD53nblonrGK2lxO2U+bh7t7r7yz+KaGkVf1jsY2lsSsTSIzTPdKmIfyd5nrpJ64oycJ8De6Qf0riXXCmGr5KD2QzO7DSlN0mWRlaO1tqOO7Cx8zr2bFASqI2QCyo=; 24:6kc86JEolwmyXGHNeEb9EXGAXYLCzlDoiKl37cs6tSswStKb+n5uinrllvJenwviMd52M4U+IIX9hUHDUbeIxBHt4OIZXzn82JNbWvhwbKs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 7:2/zzEquu1v3lsTYnQYZaG+njovNGC1tMbg4gQzd++QbqP/IpxCtGvCwOaKHDg97sSGMVS/2XmFhqioXLSBbu/w/nZHaNownI2Cz7tP1z/TLi1aezT+HLbEEs92J6IfQzJXXS38r8lT1fSO4XavQIQ/B/bqOsPP2beOwODieIHHjIY8kGVCkxGKMy/7T/xwPGAPLTs7/tABJ1Mk+M4U71JNUh7gGUwiIRdOf7nczoeIP8lxScIsxIwrVF7frpPIgS; 20:HTCtRkOfYugEZ7Luv4m93XGaWHaqq51W4ME43SqkdYGJPj44VI/zhnJBvj4HxfZlTFXNMidnqwdoNG8eyyrlGj/d6/XHzVUjPfuOswGusiBcEn0NClZzWHHHlnl3llOl1940KKdqjHqoHFfjQpsuZSe8Kyrvnh1cqXbepXY+WmuxLHDVg+vu7EfH3A2LCHqwWLe9F0J44e5KqTjS36FxCVMCefFQyOh79usnmcm0hKyqod4fpsfyl2GmDJcoavAz X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2018 14:19:53.2992 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a4b3f7a3-69f6-4c90-bd68-08d598a4cdf1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0145 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 02 Apr 2018 14:20:01 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 02 Apr 2018 14:20:01 +0000 (UTC) for IP:'104.47.32.87' DOMAIN:'mail-sn1nam01on0087.outbound.protection.outlook.com' HELO:'NAM01-SN1-obe.outbound.protection.outlook.com' FROM:'brijesh.singh@amd.com' RCPT:'' X-RedHat-Spam-Score: -0.011 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS) 104.47.32.87 mail-sn1nam01on0087.outbound.protection.outlook.com 104.47.32.87 mail-sn1nam01on0087.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.26 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Peter Krempa , Jon Grimm , Andrea Bolognani , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v5 08/10] qemu_driver: add support to launch security info X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com 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]); Mon, 02 Apr 2018 14:20:08 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch implement the internal driver API for launch event into qemu driver. When SEV is enabled, execute 'query-sev-launch-measurement' to get the measurement of memory encrypted through launch sequence. Signed-off-by: Brijesh Singh --- src/qemu/qemu_driver.c | 66 ++++++++++++++++++++++++++++++++++++++++= ++++ src/qemu/qemu_monitor.c | 8 ++++++ src/qemu/qemu_monitor.h | 3 ++ src/qemu/qemu_monitor_json.c | 32 +++++++++++++++++++++ src/qemu/qemu_monitor_json.h | 2 ++ 5 files changed, 111 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 072eb54..898aaf0 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -21332,6 +21332,71 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, return ret; } =20 +static int qemuDomainGetSevMeasurement(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags) +{ + int ret =3D -1; + char *tmp; + int maxpar =3D 0; + + virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); + + if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) + return -1; + + if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_NONE) < = 0) + goto endjob; + + tmp =3D qemuMonitorGetSevMeasurement(QEMU_DOMAIN_PRIVATE(vm)->mon); + if (tmp =3D=3D NULL) + goto endjob; + + if (qemuDomainObjExitMonitor(driver, vm) < 0) + goto endjob; + + if (virTypedParamsAddString(params, nparams, &maxpar, + VIR_DOMAIN_LAUNCH_SECURITY_SEV_MEASUREMENT, + tmp) < 0) + goto endjob; + + ret =3D 0; + + endjob: + qemuDomainObjEndJob(driver, vm); + return ret; +} + + +static int +qemuDomainGetLaunchSecurityInfo(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags) +{ + virQEMUDriverPtr driver =3D domain->conn->privateData; + virDomainObjPtr vm; + int ret =3D -1; + + if (!(vm =3D qemuDomObjFromDomain(domain))) + goto cleanup; + + if (virDomainGetLaunchSecurityInfoEnsureACL(domain->conn, vm->def) < 0) + goto cleanup; + + if (vm->def->sev) { + if (qemuDomainGetSevMeasurement(driver, vm, params, nparams, flags= ) < 0) + goto cleanup; + } + + ret =3D 0; + + cleanup: + virDomainObjEndAPI(&vm); + return ret; +} =20 static virHypervisorDriver qemuHypervisorDriver =3D { .name =3D QEMU_DRIVER_NAME, @@ -21552,6 +21617,7 @@ static virHypervisorDriver qemuHypervisorDriver =3D= { .domainSetVcpu =3D qemuDomainSetVcpu, /* 3.1.0 */ .domainSetBlockThreshold =3D qemuDomainSetBlockThreshold, /* 3.2.0 */ .domainSetLifecycleAction =3D qemuDomainSetLifecycleAction, /* 3.9.0 */ + .domainGetLaunchSecurityInfo =3D qemuDomainGetLaunchSecurityInfo, /* 4= .2.0 */ }; =20 =20 diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 44c2dff..877aaa56 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -4417,3 +4417,11 @@ qemuMonitorSetWatchdogAction(qemuMonitorPtr mon, =20 return qemuMonitorJSONSetWatchdogAction(mon, action); } + +char * +qemuMonitorGetSevMeasurement(qemuMonitorPtr mon) +{ + QEMU_CHECK_MONITOR_NULL(mon); + + return qemuMonitorJSONGetSevMeasurement(mon); +} diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index efd3427..c475b73 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1188,4 +1188,7 @@ virJSONValuePtr qemuMonitorQueryNamedBlockNodes(qemuM= onitorPtr mon); =20 int qemuMonitorSetWatchdogAction(qemuMonitorPtr mon, const char *action); +char * +qemuMonitorGetSevMeasurement(qemuMonitorPtr mon); + #endif /* QEMU_MONITOR_H */ diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index e67f7b7..be5731b 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -7960,3 +7960,35 @@ qemuMonitorJSONSetWatchdogAction(qemuMonitorPtr mon, virJSONValueFree(reply); return ret; } + +char * +qemuMonitorJSONGetSevMeasurement(qemuMonitorPtr mon) +{ + const char *tmp; + char *measurement =3D NULL; + virJSONValuePtr cmd; + virJSONValuePtr reply =3D NULL; + virJSONValuePtr data; + + if (!(cmd =3D qemuMonitorJSONMakeCommand("query-sev-launch-measure", N= ULL))) + return NULL; + + if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) + goto cleanup; + + if (qemuMonitorJSONCheckError(cmd, reply) < 0) + goto cleanup; + + data =3D virJSONValueObjectGetObject(reply, "return"); + + if (!(tmp =3D virJSONValueObjectGetString(data, "data"))) + goto cleanup; + + if (VIR_STRDUP(measurement, tmp) < 0) + goto cleanup; + + cleanup: + virJSONValueFree(cmd); + virJSONValueFree(reply); + return measurement; +} diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index f30ff1f..7d5e1f0 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -342,6 +342,8 @@ int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mo= n, =20 int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon); =20 +char *qemuMonitorJSONGetSevMeasurement(qemuMonitorPtr mon); + int qemuMonitorJSONGetVersion(qemuMonitorPtr mon, int *major, int *minor, --=20 2.7.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list