From nobody Fri Apr 19 20:36:19 2024 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 1528468993942586.9836865178092; Fri, 8 Jun 2018 07:43:13 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CBA173082133; Fri, 8 Jun 2018 14:43:12 +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 9636B2016361; Fri, 8 Jun 2018 14:43:12 +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 482251800FD8; Fri, 8 Jun 2018 14:43:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w58EfeXx026257 for ; Fri, 8 Jun 2018 10:41:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 12B1E10694C5; Fri, 8 Jun 2018 14:41:40 +0000 (UTC) Received: from mx1.redhat.com (ext-mx12.extmail.prod.ext.phx2.redhat.com [10.5.110.41]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0730C1001646 for ; Fri, 8 Jun 2018 14:41:37 +0000 (UTC) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0052.outbound.protection.outlook.com [104.47.40.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 92DC3308A95E for ; Fri, 8 Jun 2018 14:41:36 +0000 (UTC) Received: from localhost-010236106000.amd.com (165.204.78.1) by SN1PR12MB2461.namprd12.prod.outlook.com (2603:10b6:802:27::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.13; Fri, 8 Jun 2018 14:41:29 +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:X-MS-Exchange-SenderADCheck; bh=+T+fZDxQwgfJmUajO2HMGFou8mmE1G3Fz2Rj6CHqvow=; b=lYJ6FG84u5tdKc7JLBQ0J2dvgA5szXuni5UTYRwe4qdwryJArqKlHaFzeBcVKQU9mEvmPh8Fz33Dw6J9OaAERJYZM3XqbU77EpwRGj7wXte0aFNH5suALa9gW5OHe2Fg3DA69T0EXnnncAE0f5o3hNM7cWJP7DnLRnyP/QvLzao= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: libvir-list@redhat.com Date: Fri, 8 Jun 2018 09:40:53 -0500 Message-Id: <20180608144101.34228-4-brijesh.singh@amd.com> In-Reply-To: <20180608144101.34228-1-brijesh.singh@amd.com> References: <20180608144101.34228-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0501CA0133.namprd05.prod.outlook.com (2603:10b6:803:2c::11) To SN1PR12MB2461.namprd12.prod.outlook.com (2603:10b6:802:27::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2461; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2461; 3:LA+68oHiPLXd7csw2dIuK/LwMUxEli1zVYBCDFVuvx2ZSuP+SM5z3Rla2CfP08BAvOqtRLLuHocb/jolsuQPXmFUuHNnX2dcfOurcWjQCI8LwY6WH090vDjA/d+pJOyD75yE2WgN/HZ7OJZg/kCct/PAdke6HyfwliZXShLaU/GTg8cAQV3Hp1XhlI21nAEYfFlBXOGwDchkbeNL5BJXS8iMkMQkj4c29tV1mtLmaYNn4lCjBLor6RYEhXHdlCOq; 25:oBTR6JrDFpWTKRe2gvS/1QqW/W6vfjkLGCT+YgOPTPbMEi1gjEF7S74Q+bEdlelEIClEi16zO6oyUhFwLDJAn7+WRI9saKNHpgL2mhxqMVha1xK3TpscSHk8SRSiuxlllPru6O/EDV+D0p+wcCJETJTz3+rglqokUb9RfOxB8qd2jt2qExjc+cMAv6JD3eMJlrpehxHFnDfzaA3HmU7IKLzZx0ofGsJRtilyYRoZgIucS8RGCHmTBdotTceJf6pgYOG6WQkMnbknMEJDhLNWD3++fUi8JFsug+vYcBfzlX/x3ZPzfzMLFflfGOubfsGwIg34mSNFfhR/kVG1Tbc38g==; 31:awOPvPPxEaTZF+W+46zppmEG2Li+PRX8CkJu1jN/WDiB8xzSbSYyv2Zdt1TR8Nt1sZnN/a+YYELW5v99I4tMOuoz68brpfCHaJXJXq74vKqzsWlWYIMJsk/9EuaMzwMT+HPMT9VN8rLGpL7xCjJzoeZKtxILgyJHrLYQ2vw5+WNBXBUOSQN2mbwHEgmcAwqKwbhGdk//6Q8iq/7vA4rvosSCZjhLIbwOaIC8dDH/HK4= X-MS-TrafficTypeDiagnostic: SN1PR12MB2461: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2461; 20:jRx6xFdtgoKCNWc5PeWRMqfSBqvIYV0bFZO1zx185v9SBbRgTpHEfkN7PjRWRSzmtedk5o27Fx4Ohdu5uUoAf/caqOLO48uRNy3EBgpFAOt5YSYwjMRi+igxVdoYFM7sV0jhIrizSZJ8dpVBTNQO4s2Fr0p0/zvFWDEU62PyBvYh6VPtl/n3CGAPJMl4qvwJAMHGMUZBHz7Exgrrf0MW+M5iXl09zWp/h9kxykaBmdaj+4L/9vQmBJWryPAcn6sl60G6c+M9eRBo9hdKuVrg3C8AxTp0Jy0bOHrpQwt8Ku/IF3+v/4gWyZjXj/84yP3+ZAPzbj8+jSau5MDf4q0jOD2JougA5Jy4R+UmLXQITDRtJeA5TmTCan+msmLpO6I2rc0o5usTqRwdYXpYMeucvzs7XtV91jMY3Dja8Kv8Eo6nFo5SNzM2zwSN5oD/J1UiRHHp0B+HLqPasaooOaF2l6G9OnWfcYXee882pkpQFmLoIfgOyXUiwZabuE+rbnY5; 4:Qy8/8ygNCwxPUqXpaWK3rh+zTaoY3rFlV7Y2HKiEPdnGK0nOxFLwG/EegnAslGKN1dboMJ3cv2FEgkjiE9W29Qfwwim40Z891ZpZd9M1bzpqy2QcljfuJMIanL/kBS9ey8CsDJRD9srD09jEMH3AR48L5hMYlmJgYRK8a5sTo0Cq2Z6ZNws29ML7wOMOxwV3JMJ+5dYUo2nbR6SUwAU09A2M7Vc7Hnc4r4eXExhjHRSCr+A08HWveaBO89DM6Fwyrcy1WVFsC2OinvKedsoXsrf8Bl7r7n429wKU27lr9S39KzBKJ2L+VuqXSc7IcAnd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:SN1PR12MB2461; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2461; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(376002)(39860400002)(39380400002)(346002)(396003)(366004)(189003)(199004)(106356001)(68736007)(2361001)(105586002)(305945005)(7736002)(4326008)(2351001)(53416004)(86362001)(76506005)(5660300001)(50466002)(47776003)(6666003)(48376002)(81166006)(81156014)(66066001)(478600001)(6486002)(25786009)(8676002)(6916009)(6116002)(3846002)(8936002)(1076002)(97736004)(50226002)(386003)(59450400001)(54906003)(51416003)(76176011)(36756003)(52116002)(7696005)(53936002)(316002)(16586007)(476003)(956004)(2616005)(11346002)(446003)(44832011)(486006)(2906002)(16526019)(186003)(26005)(145543001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2461; H:localhost-010236106000.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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; SN1PR12MB2461; 23:E1ucxtm2Q1zSXdhcfzhHLjXq5PW1zaFtu+kLhpwCN?= =?us-ascii?Q?JZpPrI6KVQBb/YUFGyFglCEYzZOmtxnN69PDrzqhuSvRvneQ87lwavQvDEIB?= =?us-ascii?Q?8pL40aTrj2nQxX3Icj6ZhYnWH+Y8B9PcI2VSOn6MD7OSPu5+H65GKHTmqqQB?= =?us-ascii?Q?/ErymmVhywREKL6oftyYtZ43CXWPbxd31drsm8uNehEbOhfs7atI7WgAOB0a?= =?us-ascii?Q?jt5yxbkPYyirVou7nkkTWPmCwSu18vfK1lkSr0VIVoX2atTwZI3+n9iklUQM?= =?us-ascii?Q?ESJtfVx68vUFML7wwmeNA8rsrpVJRlGc4Q+bI0geiXZ1vkn5weBrmEx2pQ87?= =?us-ascii?Q?q8lfXhvHXwuhyiNLE3TlO/yNwAokUHmiKELg3xyqhASx+N7pbU3Sxp63ofMK?= =?us-ascii?Q?WuG5WLc4o61VlFYe9fL1i/wM761RJjl5ixA97WA5a8PqiszgxATc3rVJLdqT?= =?us-ascii?Q?SQ0ZZCHipM7XPbYzW8I9LeDySyGHFT8b2n+eeYEw9++RvlmBpsb1sHJk9D+V?= =?us-ascii?Q?tmaGm14ivjkoYezVY8LljFJ3eEypu3UzktZJrqap7LtKLJSwvQPWDzihVeYL?= =?us-ascii?Q?kULCfGkS7WAINFSPCkViQzfzOzWb4LgQOgbDXErg9eDJBl0D5ENLruR8ST/2?= =?us-ascii?Q?WIht9NBZ+e0LozXS+ZpZJ414BEArcUzte4pur7bxs0oVNZ6qidxuafeFjnDJ?= =?us-ascii?Q?3jteMQxtrmUbk+b+72rFrAa2p3eh2ZTPJL3Gp6q5eIRys1J3i+YmtBJDu59Q?= =?us-ascii?Q?Q6BzX5VPH4DDxGC9eB5elZYsTSyqrshRLRMO2kXv36CkhKlY2JY4UD5Stm+d?= =?us-ascii?Q?YXiH8cwLIvnGddsmuHXccgJaDMqAi0Pud7w6PE3YlmizrvEVml93QzwHd83f?= =?us-ascii?Q?RCEZbecR5aQFWSqTpmh2khU7nfpjt1/BgiRmFaJVlmvXpB+iA3AgJ0PB2ok2?= =?us-ascii?Q?71e6CuhR5D8YZpfKvaZafU/CKUvrdzrRCSOO2s5z4MFZSBqfChHeevZjiI7H?= =?us-ascii?Q?77ro6cyxlwZvRGwpwzInkg6U4gd6XMw2ClYL1Qe/M7GrD+wEZf6eJnTg4BnJ?= =?us-ascii?Q?g1yLqQ8zEQxa9CX76a5PbLcxHYfTjyjiZ/l6LYaytbZsVEYkid9A/1O42W4+?= =?us-ascii?Q?Dynq9KWLiLVLLAN/DS6NWZLRAZXU4LRoTABAXcmE4pP+nmK+ui4U0iH/Nfzy?= =?us-ascii?Q?AxVSHnwEylvHL06O0sqz2OX/U/R8JZhIAn9UmLWvLHSGAB3DNj8XsYx+fYhz?= =?us-ascii?Q?/n2TUUVVY0zdqisikDphJzyGfnc1qgmEki0q0KpoWXq0GveuYMoEB6stEycX?= =?us-ascii?Q?FRGKaf5QDSxRcaW20KlOXE8fD6z/88g4DbUQ4QLT8h1yhrBwQZchaber9ogj?= =?us-ascii?Q?qGKIeAr4C984eFQpK0FHRji5Dw=3D?= X-Microsoft-Antispam-Message-Info: sPJ6EEXVy0ow50AfSyegf+xTTSHCJ3avH7vxDEX1+maFVfU4Sd1ulphy6JnStNf2ENSBHeQxFRuNNK0/sKEDowhf10leAn+SU0Xql9RvdyZXKeuiVAwNPqVO8l8yQ8EO+0NW3kT2Mf/lPyJj6ILJvL1dq0G9eRWRfuoWZQugjC04So7Lj5j5XquDAtAxpvHp X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2461; 6:ZWkrwFBc7qae+1l0weVaWhoTHdRVV1sqalR71FLz+pyGPWTGitC09UHxkdbmviIOPvneqIRtd8NzZKVXAxDbZBdwrRNHlNO6Ds/z4cxDm2CkjIKgK9yrtncKu1iAzeTMup8a9dbm9O92s/qlY0735b6cxyAMoosHPGsuraP4rZor0B9JZmhu6KIjJ0LpUVqEVSXAOC5xDOGRSn5QA5Sm+EkE3jx2WiboQqiKowFGTNNCsDJdJ+aS35NNtjBum5ksx0MynQ6vWVc08PcNse/io3g1kb0UxsRtjy5KzdnrW5XA56Q+Pe50RcGJUZ9lQezylf2QW53HY47pSgq9WvzZvT7cFgzANkseoxk5pBEQWa3kbGJtJfssSr2uiFAV1r9mf1TNzPvwOtumRD+B73CSk5R4Py1h+rVFv81mNR5GscO/FnywQAscNGyM88Nop0pG8VY0TrfPpYszWCI2WUAdYg==; 5:OLWkAKJD2p/9OMtEWcpI29GNABxY/a7KyChfaoWVUPjtEBm59GW6wZBY6Fda9Cdj7tMq4nKRqu3NYWt1jaMnZauxtVOPBpOPUSHMdSF76ETTjhEIlTtde4ZWdIY3XFso3m54y5k5rQS4NF065I5L6HAZidFBtYeu+5Cu6MCqHyQ=; 24:YBcNq5Y4JdYCRAr24O4CnK+O84Lk6GL50jwNTVevO0DWbcG7FhItDsmVgRkbg6E0+82sF/lkmipkmuly2rmopYyZEYTvXlrOGPXWKDnduks= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2461; 7:cS2ORDZIGOlEFK3gYXE5vruoZWp0ZUpUZp+Gk1ZJP0DXMMfpuINoknUxR4q3n120Ejeha6xEcqvV6YTWk6IBT1H8rjXAB1UqoZ8ZlNrtGhvYHQi2qfbHH1zKLRnNf8Nhl8R8Ymc8/sRFD6OWjB1ht0msKJbTKgdB4LTyWZykUVi2Ied9EFXCAW3S1m0LuqXd4eLZ4Cs+IElpASXyci52a6iX4XOogW8t6iIzFF2hSNXU6yoWvHRNWU4nZIyhyB7G; 20:tEzQgJJ7ynwslWz8f8Z0d+fJRJEKI08/n5q/EAIsPctpTuasQ7vqSIGhSleq4AUrzldCO5sFLu3splQMN4zVyC0Wl2hHw2Oz99AG4L33K3eI1aDHKvaU8jG9WDnobCiMdPDhLCqV+QLwXT+JyivOAebpjTHEH01YV3Nl6EvqB9l3hagYPH0FX8lU+9sfBDQ0LA/TgNeatWrCiuy3G9yEbQBQ0J/bmHuytFOuXOA1fTAfH9OC1X5/gVz+HPfUMjNr X-MS-Office365-Filtering-Correlation-Id: a7e19426-d8ab-4cf3-3297-08d5cd4debdd X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 14:41:29.4269 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7e19426-d8ab-4cf3-3297-08d5cd4debdd X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2461 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.41]); Fri, 08 Jun 2018 14:41:36 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Fri, 08 Jun 2018 14:41:36 +0000 (UTC) for IP:'104.47.40.52' DOMAIN:'mail-co1nam03on0052.outbound.protection.outlook.com' HELO:'NAM03-CO1-obe.outbound.protection.outlook.com' FROM:'brijesh.singh@amd.com' RCPT:'' X-RedHat-Spam-Score: -0.021 (DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, T_DKIMWL_WL_MED) 104.47.40.52 mail-co1nam03on0052.outbound.protection.outlook.com 104.47.40.52 mail-co1nam03on0052.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.41 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tom Lendacky , Jon Grimm , Brijesh Singh , Borislav Petkov Subject: [libvirt] [PATCH v9 03/11] libvirt: Introduce virNodeGetSEVInfo public API 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.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Fri, 08 Jun 2018 14:43:13 +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" The API can be used by application to retrieve the Platform Diffie-Hellman Key and Platform Certificate chain. Signed-off-by: Brijesh Singh Reviewed-by: Erik Skultety --- include/libvirt/libvirt-host.h | 42 ++++++++++++++++++++++++++++++++++++ src/driver-hypervisor.h | 6 ++++++ src/libvirt-host.c | 49 ++++++++++++++++++++++++++++++++++++++= ++++ src/libvirt_public.syms | 1 + 4 files changed, 98 insertions(+) diff --git a/include/libvirt/libvirt-host.h b/include/libvirt/libvirt-host.h index 84f4858..a04d669 100644 --- a/include/libvirt/libvirt-host.h +++ b/include/libvirt/libvirt-host.h @@ -432,6 +432,48 @@ typedef virNodeCPUStats *virNodeCPUStatsPtr; =20 typedef virNodeMemoryStats *virNodeMemoryStatsPtr; =20 + +/** + * + * SEV Parameters + */ + +/** + * VIR_NODE_SEV_PDH: + * + * Macro represents the Platform Diffie-Hellman key, as VIR_TYPED_PARAMS_S= TRING. + */ +# define VIR_NODE_SEV_PDH "pdh" + +/** + * VIR_NODE_SEV_CERT_CHAIN: + * + * Macro represents the platform certificate chain that includes the platf= orm + * endorsement key (PEK), owner certificate authority (OCD) and chip + * endorsement key (CEK), as VIR_TYPED_PARAMS_STRING. + */ +# define VIR_NODE_SEV_CERT_CHAIN "cert-chain" + +/** + * VIR_NODE_SEV_CBITPOS: + * + * Macro represents the CBit Position used by hypervisor when SEV is enabl= ed. + */ +# define VIR_NODE_SEV_CBITPOS "cbitpos" + +/** + * VIR_NODE_SEV_REDUCED_PHYS_BITS: + * + * Macro represents the number of bits we lose in physical address space + * when SEV is enabled in the guest. + */ +# define VIR_NODE_SEV_REDUCED_PHYS_BITS "reduced-phys-bits" + +int virNodeGetSEVInfo (virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); + /** * virConnectFlags * diff --git a/src/driver-hypervisor.h b/src/driver-hypervisor.h index aa99cbb..c50d2a0 100644 --- a/src/driver-hypervisor.h +++ b/src/driver-hypervisor.h @@ -1309,6 +1309,11 @@ typedef int unsigned int action, unsigned int flags); =20 +typedef int +(*virDrvNodeGetSEVInfo)(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); =20 typedef struct _virHypervisorDriver virHypervisorDriver; typedef virHypervisorDriver *virHypervisorDriverPtr; @@ -1558,6 +1563,7 @@ struct _virHypervisorDriver { virDrvDomainSetLifecycleAction domainSetLifecycleAction; virDrvConnectCompareHypervisorCPU connectCompareHypervisorCPU; virDrvConnectBaselineHypervisorCPU connectBaselineHypervisorCPU; + virDrvNodeGetSEVInfo nodeGetSEVInfo; }; =20 =20 diff --git a/src/libvirt-host.c b/src/libvirt-host.c index 3aaf558..e20d6ee 100644 --- a/src/libvirt-host.c +++ b/src/libvirt-host.c @@ -1639,3 +1639,52 @@ virNodeAllocPages(virConnectPtr conn, virDispatchError(conn); return -1; } + + +/* + * virNodeGetSEVInfo: + * @conn: pointer to the hypervisor connection + * @params: where to store SEV information + * @nparams: pointer to number of SEV parameters returned in @params + * @flags: extra flags; not used yet, so callers should always pass 0 + * + * If hypervisor supports AMD's SEV feature, then @params will contain var= ious + * platform specific information like PDH and certificate chain. Caller is + * responsible for freeing @params. + * + * Returns 0 in case of success, and -1 in case of failure. + */ +int +virNodeGetSEVInfo(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags) +{ + VIR_DEBUG("conn=3D%p, params=3D%p, nparams=3D%p, flags=3D0x%x", + conn, params, nparams, flags); + + virResetLastError(); + + virCheckConnectReturn(conn, -1); + virCheckNonNullArgGoto(nparams, error); + virCheckNonNegativeArgGoto(*nparams, error); + virCheckReadOnlyGoto(conn->flags, error); + + if (VIR_DRV_SUPPORTS_FEATURE(conn->driver, conn, + VIR_DRV_FEATURE_TYPED_PARAM_STRING)) + flags |=3D VIR_TYPED_PARAM_STRING_OKAY; + + if (conn->driver->nodeGetSEVInfo) { + int ret; + ret =3D conn->driver->nodeGetSEVInfo(conn, params, nparams, flags); + if (ret < 0) + goto error; + return ret; + } + + virReportUnsupportedError(); + + error: + virDispatchError(conn); + return -1; +} diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index 4f54b84..524d5fd 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -796,6 +796,7 @@ LIBVIRT_4.5.0 { global: virGetLastErrorCode; virGetLastErrorDomain; + virNodeGetSEVInfo; } LIBVIRT_4.4.0; =20 # .... define new API here using predicted next version number .... --=20 2.7.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list