aboutsummaryrefslogtreecommitdiff
path: root/target/i386/monitor.c
diff options
context:
space:
mode:
authorYang Zhong <yang.zhong@intel.com>2021-09-10 18:22:56 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2021-09-30 15:30:24 +0200
commit57d874c4c7a0acbaa076a166e3da093b6edbdb0f (patch)
tree1da4da237c64d35d8dcccc32df4d73f5fd9af9f1 /target/i386/monitor.c
parentc5348c6a163f6956e7f640902b7401a1b4bad8c7 (diff)
downloadqemu-57d874c4c7a0acbaa076a166e3da093b6edbdb0f.zip
qemu-57d874c4c7a0acbaa076a166e3da093b6edbdb0f.tar.gz
qemu-57d874c4c7a0acbaa076a166e3da093b6edbdb0f.tar.bz2
target/i386: Add HMP and QMP interfaces for SGX
The QMP and HMP interfaces can be used by monitor or QMP tools to retrieve the SGX information from VM side when SGX is enabled on Intel platform. Signed-off-by: Yang Zhong <yang.zhong@intel.com> Message-Id: <20210910102258.46648-2-yang.zhong@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/i386/monitor.c')
-rw-r--r--target/i386/monitor.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 119211f..d7384ba 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -35,6 +35,7 @@
#include "qapi/qapi-commands-misc-target.h"
#include "qapi/qapi-commands-misc.h"
#include "hw/i386/pc.h"
+#include "hw/i386/sgx.h"
/* Perform linear address sign extension */
static hwaddr addr_canonical(CPUArchState *env, hwaddr addr)
@@ -763,3 +764,29 @@ qmp_query_sev_attestation_report(const char *mnonce, Error **errp)
{
return sev_get_attestation_report(mnonce, errp);
}
+
+SGXInfo *qmp_query_sgx(Error **errp)
+{
+ return sgx_get_info(errp);
+}
+
+void hmp_info_sgx(Monitor *mon, const QDict *qdict)
+{
+ Error *err = NULL;
+ g_autoptr(SGXInfo) info = qmp_query_sgx(&err);
+
+ if (err) {
+ error_report_err(err);
+ return;
+ }
+ monitor_printf(mon, "SGX support: %s\n",
+ info->sgx ? "enabled" : "disabled");
+ monitor_printf(mon, "SGX1 support: %s\n",
+ info->sgx1 ? "enabled" : "disabled");
+ monitor_printf(mon, "SGX2 support: %s\n",
+ info->sgx2 ? "enabled" : "disabled");
+ monitor_printf(mon, "FLC support: %s\n",
+ info->flc ? "enabled" : "disabled");
+ monitor_printf(mon, "size: %" PRIu64 "\n",
+ info->section_size);
+}