From ae854a2255006d807366a2b2529311b1dcaaed17 Mon Sep 17 00:00:00 2001 From: Brijesh Singh Date: Thu, 15 Feb 2018 09:03:22 -0600 Subject: [PATCH] hmp: add 'info sev' command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The command can be used to show the SEV information when memory encryption is enabled on AMD platform. Cc: Eric Blake Cc: "Daniel P. Berrangé" Cc: "Dr. David Alan Gilbert" Cc: Markus Armbruster Signed-off-by: Brijesh Singh [BR: FATE#322124] Signed-off-by: Bruce Rogers --- hmp-commands-info.hx | 14 ++++++++++++++ hmp.c | 19 +++++++++++++++++++ hmp.h | 1 + 3 files changed, 34 insertions(+) diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index 54c3e5eac6..83491f84f6 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -865,6 +865,20 @@ STEXI @findex info memory_size_summary Display the amount of initially allocated and present hotpluggable (if enabled) memory in bytes. +ETEXI + + { + .name = "sev", + .args_type = "", + .params = "", + .help = "show SEV information", + .cmd = hmp_info_sev, + }, + +STEXI +@item info sev +@findex info sev +Show SEV information. ETEXI STEXI diff --git a/hmp.c b/hmp.c index 35a7041824..f3898347b8 100644 --- a/hmp.c +++ b/hmp.c @@ -2918,3 +2918,22 @@ void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict) } hmp_handle_error(mon, &err); } + +void hmp_info_sev(Monitor *mon, const QDict *qdict) +{ + SevInfo *info; + + info = qmp_query_sev(NULL); + monitor_printf(mon, "sev support: "); + monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled"); + + if (info->enabled) { + monitor_printf(mon, "state: %s\n", SevState_str(info->state)); + monitor_printf(mon, "policy: 0x%x\n", info->policy); + monitor_printf(mon, "build id: %u\n", info->build_id); + monitor_printf(mon, "api version: %u.%u\n", + info->api_major, info->api_minor); + } + + qapi_free_SevInfo(info); +} diff --git a/hmp.h b/hmp.h index a6f56b1f29..153f106be8 100644 --- a/hmp.h +++ b/hmp.h @@ -147,5 +147,6 @@ void hmp_info_ramblock(Monitor *mon, const QDict *qdict); void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict); void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict); void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict); +void hmp_info_sev(Monitor *mon, const QDict *qdict); #endif