Re: [PATCH v3 18/22] target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/10/21 14:53, Philippe Mathieu-Daudé wrote:
Move qmp_query_sev() & hmp_info_sev()() from monitor.c to sev.c
and make sev_get_info() static. We don't need the stub anymore,
remove it. Add a stub for hmp_info_sev().

Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>
---
  target/i386/sev_i386.h        |  3 ---
  target/i386/monitor.c         | 38 +---------------------------------
  target/i386/sev-sysemu-stub.c | 10 ++++++++-
  target/i386/sev.c             | 39 +++++++++++++++++++++++++++++++++--
  4 files changed, 47 insertions(+), 43 deletions(-)

diff --git a/target/i386/sev_i386.h b/target/i386/sev_i386.h
index 1699376ad87..15a959d6174 100644
--- a/target/i386/sev_i386.h
+++ b/target/i386/sev_i386.h
@@ -15,7 +15,6 @@
  #define QEMU_SEV_I386_H
#include "sysemu/sev.h"
-#include "qapi/qapi-types-misc-target.h"
#define SEV_POLICY_NODBG 0x1
  #define SEV_POLICY_NOKS         0x2
@@ -24,8 +23,6 @@
  #define SEV_POLICY_DOMAIN       0x10
  #define SEV_POLICY_SEV          0x20
-extern SevInfo *sev_get_info(void);
-
  int sev_encrypt_flash(uint8_t *ptr, uint64_t len, Error **errp);
  int sev_inject_launch_secret(const char *hdr, const char *secret,
                               uint64_t gpa, Error **errp);
diff --git a/target/i386/monitor.c b/target/i386/monitor.c
index 0b38e970c73..890870b252d 100644
--- a/target/i386/monitor.c
+++ b/target/i386/monitor.c
@@ -28,11 +28,9 @@
  #include "monitor/hmp-target.h"
  #include "monitor/hmp.h"
  #include "qapi/qmp/qdict.h"
-#include "qapi/qmp/qerror.h"
+//#include "qapi/qmp/qerror.h"
  #include "sysemu/kvm.h"
-#include "sysemu/sev.h"
  #include "qapi/error.h"
-#include "sev_i386.h"
  #include "qapi/qapi-commands-misc-target.h"
  #include "qapi/qapi-commands-misc.h"
  #include "hw/i386/pc.h"
@@ -677,40 +675,6 @@ void hmp_info_io_apic(Monitor *mon, const QDict *qdict)
                     "removed soon. Please use 'info pic' instead.\n");
  }
-SevInfo *qmp_query_sev(Error **errp)
-{
-    SevInfo *info;
-
-    info = sev_get_info();
-    if (!info) {
-        error_setg(errp, "SEV feature is not available");
-        return NULL;
-    }
-
-    return info;
-}
-
-void hmp_info_sev(Monitor *mon, const QDict *qdict)
-{
-    SevInfo *info = sev_get_info();
-
-    if (info && info->enabled) {
-        monitor_printf(mon, "handle: %d\n", info->handle);
-        monitor_printf(mon, "state: %s\n", SevState_str(info->state));
-        monitor_printf(mon, "build: %d\n", info->build_id);
-        monitor_printf(mon, "api version: %d.%d\n",
-                       info->api_major, info->api_minor);
-        monitor_printf(mon, "debug: %s\n",
-                       info->policy & SEV_POLICY_NODBG ? "off" : "on");
-        monitor_printf(mon, "key-sharing: %s\n",
-                       info->policy & SEV_POLICY_NOKS ? "off" : "on");
-    } else {
-        monitor_printf(mon, "SEV is not enabled\n");
-    }
-
-    qapi_free_SevInfo(info);
-}
-
  SGXInfo *qmp_query_sgx(Error **errp)
  {
      return sgx_get_info(errp);
diff --git a/target/i386/sev-sysemu-stub.c b/target/i386/sev-sysemu-stub.c
index 355391c16c4..1836b32e4fc 100644
--- a/target/i386/sev-sysemu-stub.c
+++ b/target/i386/sev-sysemu-stub.c
@@ -12,13 +12,16 @@
   */
#include "qemu/osdep.h"
+#include "monitor/monitor.h"
+#include "monitor/hmp.h"
  #include "qapi/qapi-commands-misc-target.h"
  #include "qapi/qmp/qerror.h"
  #include "qapi/error.h"
  #include "sev_i386.h"
-SevInfo *sev_get_info(void)
+SevInfo *qmp_query_sev(Error **errp)
  {
+    error_setg(errp, QERR_UNSUPPORTED);
      return NULL;
  }
@@ -60,3 +63,8 @@ SevAttestationReport *qmp_query_sev_attestation_report(const char *mnonce,
      error_setg(errp, QERR_UNSUPPORTED);
      return NULL;
  }
+
+void hmp_info_sev(Monitor *mon, const QDict *qdict)
+{
+    monitor_printf(mon, "SEV is not available in this QEMU\n");
+}
diff --git a/target/i386/sev.c b/target/i386/sev.c
index 8e9cce62196..7caaa117ff7 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -27,10 +27,12 @@
  #include "sev_i386.h"
  #include "sysemu/sysemu.h"
  #include "sysemu/runstate.h"
+#include "sysemu/sev.h"
  #include "trace.h"
  #include "migration/blocker.h"
  #include "qom/object.h"
  #include "monitor/monitor.h"
+#include "monitor/hmp.h"
  #include "qapi/qapi-commands-misc-target.h"
  #include "qapi/qmp/qerror.h"
  #include "exec/confidential-guest-support.h"
@@ -375,8 +377,7 @@ sev_get_reduced_phys_bits(void)
      return sev_guest ? sev_guest->reduced_phys_bits : 0;
  }
-SevInfo *
-sev_get_info(void)
+static SevInfo *sev_get_info(void)
  {
      SevInfo *info;
@@ -395,6 +396,40 @@ sev_get_info(void)
      return info;
  }
+SevInfo *qmp_query_sev(Error **errp)
+{
+    SevInfo *info;
+
+    info = sev_get_info();
+    if (!info) {
+        error_setg(errp, "SEV feature is not available");
+        return NULL;
+    }
+
+    return info;
+}
+
+void hmp_info_sev(Monitor *mon, const QDict *qdict)
+{
+    SevInfo *info = sev_get_info();
+
+    if (info && info->enabled) {
+        monitor_printf(mon, "handle: %d\n", info->handle);
+        monitor_printf(mon, "state: %s\n", SevState_str(info->state));
+        monitor_printf(mon, "build: %d\n", info->build_id);
+        monitor_printf(mon, "api version: %d.%d\n",
+                       info->api_major, info->api_minor);
+        monitor_printf(mon, "debug: %s\n",
+                       info->policy & SEV_POLICY_NODBG ? "off" : "on");
+        monitor_printf(mon, "key-sharing: %s\n",
+                       info->policy & SEV_POLICY_NOKS ? "off" : "on");
+    } else {
+        monitor_printf(mon, "SEV is not enabled\n");
+    }
+
+    qapi_free_SevInfo(info);
+}
+
  static int
  sev_get_pdh_info(int fd, guchar **pdh, size_t *pdh_len, guchar **cert_chain,
                   size_t *cert_chain_len, Error **errp)


Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux