From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51661) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ejSFo-0005y7-GF for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ejSFk-0006vj-Gz for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:24 -0500 Received: from mail-bl2nam02on0041.outbound.protection.outlook.com ([104.47.38.41]:22992 helo=NAM02-BL2-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 1ejSFk-0006vQ-AY for qemu-devel@nongnu.org; Wed, 07 Feb 2018 11:07:20 -0500 From: Brijesh Singh Date: Wed, 7 Feb 2018 10:06:25 -0600 Message-ID: <20180207160638.98872-13-brijesh.singh@amd.com> In-Reply-To: <20180207160638.98872-1-brijesh.singh@amd.com> References: <20180207160638.98872-1-brijesh.singh@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v7 13/26] qmp: add query-sev command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alistair Francis , Christian Borntraeger , Cornelia Huck , "Daniel P . Berrange" , "Dr. David Alan Gilbert" , "Michael S. Tsirkin" , "Edgar E. Iglesias" , Eduardo Habkost , Eric Blake , kvm@vger.kernel.org, Marcel Apfelbaum , Markus Armbruster , Paolo Bonzini , Peter Crosthwaite , Peter Maydell , Richard Henderson , Stefan Hajnoczi , Thomas Lendacky , Borislav Petkov , Brijesh Singh The QMP query command can used to retrieve the SEV information when memory encryption is enabled on AMD platform. Cc: "Daniel P. Berrang=C3=A9" Cc: "Dr. David Alan Gilbert" Cc: Markus Armbruster Signed-off-by: Brijesh Singh --- qapi-schema.json | 47 +++++++++++++++++++++++++++++++++++++++++++++++ qmp.c | 16 ++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/qapi-schema.json b/qapi-schema.json index 5c06745c7927..447ebb15266e 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3189,3 +3189,50 @@ # Since: 2.11 ## { 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} = } + +## +# @SevInfo: +# +# Information about SEV support +# +# @enabled: true if SEV is active +# +# @api_major: SEV API major version +# +# @api_minor: SEV API minor version +# +# @build_id: SEV FW build id +# +# @policy: SEV policy value +# +# @state: SEV guest state +# +# Since: 2.12 +## +{ 'struct': 'SevInfo', + 'data': { 'enabled': 'bool', + 'api_major': 'uint8', + 'api_minor' : 'uint8', + 'build_id' : 'uint8', + 'policy' : 'uint32', + 'state' : 'str' + } +} + +## +# @query-sev: +# +# Returns information about SEV +# +# Returns: @SevInfo +# +# Since: 2.12 +# +# Example: +# +# -> { "execute": "query-sev" } +# <- { "return": { "enabled": true, "api-major" : 0, "api-minor" : 0, +# "build-id" : 0, "policy" : 0, "state" : "running" } } +# +## +{ 'command': 'query-sev', 'returns': 'SevInfo' } diff --git a/qmp.c b/qmp.c index 52cfd2d81c0f..1a5cfad09dd0 100644 --- a/qmp.c +++ b/qmp.c @@ -37,6 +37,7 @@ #include "qom/object_interfaces.h" #include "hw/mem/pc-dimm.h" #include "hw/acpi/acpi_dev_interface.h" +#include "sysemu/sev.h" =20 NameInfo *qmp_query_name(Error **errp) { @@ -717,3 +718,18 @@ MemoryInfo *qmp_query_memory_size_summary(Error **errp= ) =20 return mem_info; } + +SevInfo *qmp_query_sev(Error **errp) +{ + SevInfo *info =3D g_malloc0(sizeof(*info)); + + info->enabled =3D sev_enabled(); + if (info->enabled) { + sev_get_fw_version(&info->api_major, + &info->api_minor, &info->build_id); + sev_get_policy(&info->policy); + sev_get_current_state(&info->state); + } + + return info; +} --=20 2.14.3