From nobody Wed May 14 19:44:07 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 1522166264989575.574655301083; Tue, 27 Mar 2018 08:57:44 -0700 (PDT) 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 B8BB820273; Tue, 27 Mar 2018 15:57:43 +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 6FA82611A6; Tue, 27 Mar 2018 15:57:43 +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 25C30181BA07; Tue, 27 Mar 2018 15:57:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w2RFu1RV008839 for ; Tue, 27 Mar 2018 11:56:01 -0400 Received: by smtp.corp.redhat.com (Postfix) id 656DF183B8; Tue, 27 Mar 2018 15:56:01 +0000 (UTC) Received: from mx1.redhat.com (ext-mx07.extmail.prod.ext.phx2.redhat.com [10.5.110.31]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4309E5D6A8; Tue, 27 Mar 2018 15:55:56 +0000 (UTC) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0081.outbound.protection.outlook.com [104.47.38.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A276AC047B64; Tue, 27 Mar 2018 15:55:54 +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.609.10; Tue, 27 Mar 2018 15:55:48 +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=6hQZ3jzlqiR2LHIGVRRbFICFR2f3Ag02SFBiaQBtTGU=; b=k3UJRf3oAnEmm2CBPywYjg49sY+AaW9lNwZADTiBaIsjq2MkHOHN6pvf/eDv1H/JHodJlCsFL8Q8DdpqzSWGG2PuEOQENZzl3qYwaTX58m9qd8qEc4MSw2kIsZldfYvIogRkD/Wmh/7Sp/mnRX6TqUpG70SGg54e28SAXMQqzlU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Tue, 27 Mar 2018 10:55:13 -0500 Message-Id: <20180327155515.87611-8-brijesh.singh@amd.com> In-Reply-To: <20180327155515.87611-1-brijesh.singh@amd.com> References: <20180327155515.87611-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR17CA0008.namprd17.prod.outlook.com (2603:10b6:404:65::18) 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: c5b4cf69-1bee-4cee-60c3-08d593fb366f 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:6VBKEvmJyj2KvKGDwKbAcWVrpQyy65bqrWFiQZQ6cK6Ej8ZJVaA+rMiKfiic/iL9g5MRon//ejGZW4OR+gF3EaJNTsYse91QD83q79oxzaBQ+FsVhDQ5HINyj975Jgqajiyp9a2V706RIKFA9pxPANzJa9v1kkx/lrxrGx01x3S7sANLZVH81Vs8x4tqejpFdXYA8WtRpn2fkIMxCRlhviLAvLWWUSMMBLn27jeRgIQiCqokuY9J33ltWQ07kH57; 25:FoRbqqCQAoVDKcE7sIWlvqyN4WLHDNtrms1YP239vTgLeLfhBj/J7soDvjsEsLfs3IOtUYNrR7+IsdHws72AkEZ3GK0h26eK0mBtqRrkXpQmuth2dFHK6WimMNqhGJv8wwX9RFuMhcU0q6W2aEveqb1UFv8andCiWohEauDXmALSZ1f9Si5EtRhiX325zu+w5M+aZIXlP6LGaD1saqxkm1aGkZldzpVDY/5PsR9K69PYD/34DVSjiS2em1WWusL2PRioKp9bPMxKaCjXE9unk63e7eMCFXHj/WlrV8oC4XStpUipsvOhzTV1obqfqHHX64gPHCZ04hCnSG28AxTF5Q==; 31:EvwRShNM1yi2LA6HHe2xGE+FNdNgKESsvoRxHrIjVw7DY5wUrfFmd1ZamNqrHhlZuooFFLoLGMYZRxlGwTllfb0a69/CApFzlt0Zy0pU7+/wfgLyONdTH7MCGxZkpeNGK6QcI+XQGWK3TpDQGBVKga6d4sj/VR6gicD/I4oa/g8h5sQCx/KfZciiiEZIPEuHfDHuOmZZr1VBceZtU1aL2vv3PITe2US2M3TKbUP0KUI= X-MS-TrafficTypeDiagnostic: BY2PR12MB0145: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 20:3hMSp6jVlnYovZiq5zmMmrcyrTnzO7ggRdlB/ej6U6fD93gyi53wbO8Bx6jDIl2i83sdDH2HTkn46eNp23oxLyklJjd8EzNI1XVdLZSlZZ7cAhOYL+HgYrzxTUwMSrXywT7bAPTfNkGoHu73G/31od9t5rfdaqhFuSTZ2WAB0TVxoHZ6wBwiWn5dHrT4WmaGpgvqLnEHKdlt0E1B2bwSuiOQf/Ln3+vR8ybCQqqCD8g7FW++513B+ByqIN/RtVxr41pvEEbqG8E1nQxpBdutitCVoVdcz3J2Hk19DEr65XhenuTkJoSUB11NZdL/lHxr6D/U2bTO9Lb9t9zglyWBDClvLOXwEEo75ZmelK8B4NSq7O0I0hfUEDvrZPE9DFj65wk2IWlk+QrbTpPE+6RlqrLiEpT50u1uRQBTRqxTl2aME/HFoTXRUwIJY3hCx04uM9qApljlZi9cfhIqtXGyeHuxjx1Y2FcmUBEj4crV7uyg0ePIlLJQR10tKBhFWEmi; 4:WJga5LLsH9hUHVnRbpnKX/QSgyQR1l7cmEhLyPtBL7WYfXQev+erQQLZgJjwjiMZrAAmpJqtm6A2Ek8dpDUxC1S63ZZ7HR9d9BprbfnSBH1NJxnyOMdrNhudzRqSTqTQuiHeazJxWgfa4dhOcHQS5LoZoEvWOO+q0rqGvU7LXSCMsFGVeV69BCbczMf7BPoHHQI/Scm+n8sHCu0uq/9OmTj/9hl55k/TuB/ez+8aXZChxN+2zrisODjm8fdaVaCj1R7hQPeyXALIh+21bRXu2EMAZDHBWzscdb/Is0bM7N/GNI3qivz2lvbyLWM0PzU2K/TIgC8dIwplo9MwOFinjw== 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)(3002001)(10201501046)(3231221)(944501327)(52105095)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:BY2PR12MB0145; BCL:0; PCL:0; RULEID:; SRVR:BY2PR12MB0145; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(39380400002)(39860400002)(346002)(396003)(366004)(189003)(199004)(97736004)(6666003)(48376002)(4326008)(51416003)(6916009)(8936002)(50466002)(316002)(81166006)(50226002)(52116002)(7696005)(16586007)(53936002)(5660300001)(3846002)(16526019)(76176011)(186003)(36756003)(68736007)(486005)(956004)(25786009)(476003)(59450400001)(8676002)(2616005)(6486002)(53416004)(106356001)(486005)(26005)(47776003)(66066001)(54906003)(7736002)(2361001)(305945005)(1076002)(81156014)(6116002)(2906002)(2351001)(446003)(86362001)(11346002)(386003)(478600001)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0145; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 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:d0vm3JLMYipDHxdpVOpzU31CwGj6SMl/ZTEfA2VfL?= =?us-ascii?Q?Y4X8f2tBBJ3sZS7ukGMTCl2+ZjUXuddTgFm1Qqi6RaVKKmD8Tactd7Bue/K0?= =?us-ascii?Q?lJwpfJsAnhACrg+JzCnPGWKtiiI/4PieIJ02ZrvkWJab6iuF2d+taX+ffitB?= =?us-ascii?Q?t8woHRYM+EoalV7I9lN1jwOm7lmjhWq7zmRyxsbdI6z91vlrrO80V+Lqm7hR?= =?us-ascii?Q?NJQpjK6G9DqcwwZjoj5y5odEGc+fhHlWPkbkKVrFGJsLgtOk6/mlgTH73Tm4?= =?us-ascii?Q?7h1mpIYLH8bfq5bmYxveoRCTsLnGw6ejcOdwdBF2iA4yAcbpvxGRUXZCYQ59?= =?us-ascii?Q?kCXlrsUbgcaudD4b6Nd6REHr+DJ4iqnfKCZt1Wy3UK+GF83246mCPErzPl3O?= =?us-ascii?Q?iKJxHDYDy1rej9q7SA+ShKLIvjGvJaos7cSAX7tmgYSrdHoiJRGhomelVZ0V?= =?us-ascii?Q?UtTN3JTXdnf+YaoU8T03DiXyDOTJ/QZkrOndMRxbuDfB3Oo8vQlvGHNp20OF?= =?us-ascii?Q?bQ30t3A46/uW9y2e5ZtM0PJ/RFZfBT/d+KT/2ynwvj+cDfemUT6sdrsULSyR?= =?us-ascii?Q?Q6254IRL5VtgLwgIsG/8NgKDdsZ3HdXBrcxzzU79TwRxu95nXRS5i9RbJpC2?= =?us-ascii?Q?ZcdsOQAwZisMAzTtCAVThmKcJVBACLELVuqRDX11FKXnyt0abBc4HkOUF5Dq?= =?us-ascii?Q?io6kwdarWlcG4wyzMLYVh9m+yi6xabWdzr4m1uYnFKJjZnHDRjeHahamsYUo?= =?us-ascii?Q?KARRiIrrMq0p1TbQLKVLn698GefBe3iRr18/RYy+fdo/ApOU54wKqlQNL2ru?= =?us-ascii?Q?fWEPWOBoc5HOPKSgD9M8TGLfNVskhSXK4xZmkhpOdkJfYP8OnPPa5LV74zcO?= =?us-ascii?Q?osdWT1bCrCa6Ukhc0zLe0iCU9avq5yFmsDPUSriU9gjdCcFcwnqqnxJqQHek?= =?us-ascii?Q?z1v4RhnK6BnDZBjIgWTKJ7q1a3f/cZUXlZdMn2PTWT3y0iES8mmsWX6qvF4j?= =?us-ascii?Q?Tp85/8dAg5QaEo3NBOs3QRaScLY6KAdsriFyMVtffyr0s8bPrmWZiqdkmQBh?= =?us-ascii?Q?FpGWDbJhJ4uQA0eQkGu5npkFz/kmyi+AluMrqNQBvJrpyqyXEbOCYANMuZrz?= =?us-ascii?Q?YMyQAE6j/1mNBxdwvzlMd0vzdVY1+FXsoTI3f6szfV/RdYr6hpyTz5tiynUq?= =?us-ascii?Q?J3ON6GbhM42ZOTSyt8KxdDaGsKzXPAHjW1Z/ij/8gOOIwAlSl9pfKi0+IYkL?= =?us-ascii?Q?68X0uEn4Q3dNa2KrJbUD34b+oYZujYayk89E8LLlI1uYH233MevYe9ZfpmWL?= =?us-ascii?B?QT09?= X-Microsoft-Antispam-Message-Info: wFYGNmLDzmiJWoVrsMMKRbpRZUG9D/ygWRIPPBTTXGoXG+XDYbFPS0KYom0tn3gCKrlnDtuXnc9SKEdRqf3FzYquyjZk1YzLIC+tfY6qEkvNXW7UFszZ10FFP5y6daGxBzkKNsGoNm3JZyIc0oibe3FHpR9AuOEmVB01VO2YhZnDW+SaZ084UYoho0M2o40s X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 6:RYxM4EyjknsMYQ205eW157YujU4JeJAiUaZsGrQCCMXQ3OXiiv1G4q4GVqu2KO6LUaPOa4mn+V5vu0kB7S41avJfJxRMXVNAad1EGhmP6uJNKpIWxSTjG/LkYO6bU0GDnSFfURXOM47ZF/qi7CCL0g3FM4888fZe0r/G7j6xsxlOgTSJUx5e/XpAxilzXEHRp4D9Rv9xdnJ4ZobJCOYGSW0JNVKvygQyJAf5Tyksr9LC1n0F/gcEfJlczu8qlDcY7ozMpKMuwoX6Dvt0FCGbTXSVS+fBoNeJNoQwr8SV4JOnrEukD0noUXyMmI7dIRdEci4ki4IhZZtDufUMdX0Z3PEZYs38qkuFPlHwDqxjatCQPB53oqCHgZ303jgjZJhJ0CYtg4gKdehTTubF+1ICxMR+y15Qxxrn29s7VkYDA5JapRTNzDvdfgiWByaxSH8wQ7eccSYxUUqKp0dAaleS6g==; 5:N2CYYVEHUpSwGL/2eI/lFRnoSRGg1IRplqms9d4vebfyWHQezxeB8m8VjcETLb4nl9cXojZ0tuEes3yiLMc8DFjPe8laokQIv9lox23m539jqglstOR+7XAzD62p9E2erliGgIppTCfN/CFcCv72Vmgzbwd7uLSxitrWH0QtjR8=; 24:zV5naayXjfkyGqKEG9ivudOpNrFpVVCWFXDqjNZX8I8XdCfFX7W3j7niEfRIsfZPPHBlXbJoj3PYs2d8SM5ZmvOLTLBgXYkn89AZcs/KKO0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 7:s5ceDg2x/k+QFVRA8uiN25RdCwkq8xUWpS/csChuuyvcvKHybdWNzhvt3IebugrPlthMN7wAi59Zku2gIG7F7SV6VunSWN17xWSKypy4Dw1F3+M3LdJW2kZwKV+fRua5LadU/qCRQ/EbZIHOFPUyVao9QjUKD0PMKerBprskH+TETcT8lttfEVkTLgC7Il+yuuzo0xv9pjY9BsWysN+CBf2nvJgxiBC6YJyrK6+lq8h/W6gvJaBq3QAypO5/M954; 20:0cZK1pZqmVMNwXIRf1JfGKcfkZJwGXZzM1jigjPp3n6DgR5vvoLmyFwuN8cKGY/6RxTvWaqUxe0sI4v5MU2ZltlszJlybY2Ut772dNo09U4Ksb7UPZqWY9FOrW0XW079rabhXae5qqhZu533my3ac4VUnzIUCwF8hAqLHyAIRvuxYICEJekpSNG5ARqnsEZA6O9GDeKFE5DwHFv4JAK9dj9iIaQNpxBFeBtkrnDZGT1RjPWY/WWIy2eU8xDLQcss X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 15:55:48.7604 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c5b4cf69-1bee-4cee-60c3-08d593fb366f 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.31]); Tue, 27 Mar 2018 15:55:55 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 27 Mar 2018 15:55:55 +0000 (UTC) for IP:'104.47.38.81' DOMAIN:'mail-bl2nam02on0081.outbound.protection.outlook.com' HELO:'NAM02-BL2-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.38.81 mail-bl2nam02on0081.outbound.protection.outlook.com 104.47.38.81 mail-bl2nam02on0081.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.31 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Peter Krempa , Xiaogang Chen , Jon Grimm , Andrea Bolognani , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v4 7/9] 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 27 Mar 2018 15:57:44 +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 7bcc493..282d3ce 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