system: Move 'exec/confidential-guest-support.h' to system/
authorPhilippe Mathieu-Daudé <philmd@linaro.org>
Fri, 22 Nov 2024 17:00:31 +0000 (18:00 +0100)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Fri, 20 Dec 2024 16:44:56 +0000 (17:44 +0100)
"exec/confidential-guest-support.h" is specific to system
emulation, so move it under the system/ namespace.
Mechanical change doing:

  $ sed -i \
    -e 's,exec/confidential-guest-support.h,sysemu/confidential-guest-support.h,' \
        $(git grep -l exec/confidential-guest-support.h)

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Message-Id: <20241218155913.72288-2-philmd@linaro.org>

backends/confidential-guest-support.c
hw/core/machine.c
hw/ppc/pef.c
hw/ppc/spapr.c
hw/s390x/s390-virtio-ccw.c
include/exec/confidential-guest-support.h [deleted file]
include/system/confidential-guest-support.h [new file with mode: 0644]
system/vl.c
target/i386/confidential-guest.h
target/s390x/kvm/pv.c

index 052fde8db0492daee9ad09b2ac3e5d9dee56f486..1cd9bed505d30898f821be732538f124613a38af 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "qemu/osdep.h"
 
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 
 OBJECT_DEFINE_ABSTRACT_TYPE(ConfidentialGuestSupport,
                             confidential_guest_support,
index 008d3379e15cec7aa349cd0459b788b95890daa0..c949af97668dcf1ad2ba24b48ed7afc299dbc4db 100644 (file)
@@ -30,7 +30,7 @@
 #include "hw/pci/pci_bridge.h"
 #include "hw/mem/nvdimm.h"
 #include "migration/global_state.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 #include "hw/virtio/virtio-pci.h"
 #include "hw/virtio/virtio-net.h"
 #include "hw/virtio/virtio-iommu.h"
index cffda44602ed127d23dcff5058b136626f0e3469..8b2d726e00883b2ff2f702d27c049ed9bac30c8c 100644 (file)
@@ -14,7 +14,7 @@
 #include "qom/object_interfaces.h"
 #include "system/kvm.h"
 #include "migration/blocker.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 
 #define TYPE_PEF_GUEST "pef-guest"
 OBJECT_DECLARE_SIMPLE_TYPE(PefGuest, PEF_GUEST)
index ad21018b5aa066751f842853c888b3cfa3eee8f8..623842f80641b3fb0c7075746ee9552440ae37ff 100644 (file)
@@ -75,7 +75,7 @@
 #include "hw/virtio/vhost-scsi-common.h"
 
 #include "exec/ram_addr.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 #include "hw/usb.h"
 #include "qemu/config-file.h"
 #include "qemu/error-report.h"
index f4d64d64f949978e39ccc22f967801616a34f3d4..b45d8963b36c02d01fb7446a854a16ac8e6aa241 100644 (file)
@@ -14,7 +14,7 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "exec/ram_addr.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 #include "hw/boards.h"
 #include "hw/s390x/s390-virtio-hcall.h"
 #include "hw/s390x/sclp.h"
diff --git a/include/exec/confidential-guest-support.h b/include/exec/confidential-guest-support.h
deleted file mode 100644 (file)
index 02dc4e5..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * QEMU Confidential Guest support
- *   This interface describes the common pieces between various
- *   schemes for protecting guest memory or other state against a
- *   compromised hypervisor.  This includes memory encryption (AMD's
- *   SEV and Intel's MKTME) or special protection modes (PEF on POWER,
- *   or PV on s390x).
- *
- * Copyright Red Hat.
- *
- * Authors:
- *  David Gibson <david@gibson.dropbear.id.au>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or
- * later.  See the COPYING file in the top-level directory.
- *
- */
-#ifndef QEMU_CONFIDENTIAL_GUEST_SUPPORT_H
-#define QEMU_CONFIDENTIAL_GUEST_SUPPORT_H
-
-#ifndef CONFIG_USER_ONLY
-
-#include "qom/object.h"
-
-#define TYPE_CONFIDENTIAL_GUEST_SUPPORT "confidential-guest-support"
-OBJECT_DECLARE_TYPE(ConfidentialGuestSupport,
-                    ConfidentialGuestSupportClass,
-                    CONFIDENTIAL_GUEST_SUPPORT)
-
-
-struct ConfidentialGuestSupport {
-    Object parent;
-
-    /*
-     * True if the machine should use guest_memfd for RAM.
-     */
-    bool require_guest_memfd;
-
-    /*
-     * ready: flag set by CGS initialization code once it's ready to
-     *        start executing instructions in a potentially-secure
-     *        guest
-     *
-     * The definition here is a bit fuzzy, because this is essentially
-     * part of a self-sanity-check, rather than a strict mechanism.
-     *
-     * It's not feasible to have a single point in the common machine
-     * init path to configure confidential guest support, because
-     * different mechanisms have different interdependencies requiring
-     * initialization in different places, often in arch or machine
-     * type specific code.  It's also usually not possible to check
-     * for invalid configurations until that initialization code.
-     * That means it would be very easy to have a bug allowing CGS
-     * init to be bypassed entirely in certain configurations.
-     *
-     * Silently ignoring a requested security feature would be bad, so
-     * to avoid that we check late in init that this 'ready' flag is
-     * set if CGS was requested.  If the CGS init hasn't happened, and
-     * so 'ready' is not set, we'll abort.
-     */
-    bool ready;
-};
-
-typedef struct ConfidentialGuestSupportClass {
-    ObjectClass parent;
-
-    int (*kvm_init)(ConfidentialGuestSupport *cgs, Error **errp);
-    int (*kvm_reset)(ConfidentialGuestSupport *cgs, Error **errp);
-} ConfidentialGuestSupportClass;
-
-static inline int confidential_guest_kvm_init(ConfidentialGuestSupport *cgs,
-                                              Error **errp)
-{
-    ConfidentialGuestSupportClass *klass;
-
-    klass = CONFIDENTIAL_GUEST_SUPPORT_GET_CLASS(cgs);
-    if (klass->kvm_init) {
-        return klass->kvm_init(cgs, errp);
-    }
-
-    return 0;
-}
-
-static inline int confidential_guest_kvm_reset(ConfidentialGuestSupport *cgs,
-                                               Error **errp)
-{
-    ConfidentialGuestSupportClass *klass;
-
-    klass = CONFIDENTIAL_GUEST_SUPPORT_GET_CLASS(cgs);
-    if (klass->kvm_reset) {
-        return klass->kvm_reset(cgs, errp);
-    }
-
-    return 0;
-}
-
-#endif /* !CONFIG_USER_ONLY */
-
-#endif /* QEMU_CONFIDENTIAL_GUEST_SUPPORT_H */
diff --git a/include/system/confidential-guest-support.h b/include/system/confidential-guest-support.h
new file mode 100644 (file)
index 0000000..b68c4be
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * QEMU Confidential Guest support
+ *   This interface describes the common pieces between various
+ *   schemes for protecting guest memory or other state against a
+ *   compromised hypervisor.  This includes memory encryption (AMD's
+ *   SEV and Intel's MKTME) or special protection modes (PEF on POWER,
+ *   or PV on s390x).
+ *
+ * Copyright Red Hat.
+ *
+ * Authors:
+ *  David Gibson <david@gibson.dropbear.id.au>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * later.  See the COPYING file in the top-level directory.
+ *
+ */
+#ifndef QEMU_CONFIDENTIAL_GUEST_SUPPORT_H
+#define QEMU_CONFIDENTIAL_GUEST_SUPPORT_H
+
+#ifdef CONFIG_USER_ONLY
+#error Cannot include system/confidential-guest-support.h from user emulation
+#endif
+
+#include "qom/object.h"
+
+#define TYPE_CONFIDENTIAL_GUEST_SUPPORT "confidential-guest-support"
+OBJECT_DECLARE_TYPE(ConfidentialGuestSupport,
+                    ConfidentialGuestSupportClass,
+                    CONFIDENTIAL_GUEST_SUPPORT)
+
+
+struct ConfidentialGuestSupport {
+    Object parent;
+
+    /*
+     * True if the machine should use guest_memfd for RAM.
+     */
+    bool require_guest_memfd;
+
+    /*
+     * ready: flag set by CGS initialization code once it's ready to
+     *        start executing instructions in a potentially-secure
+     *        guest
+     *
+     * The definition here is a bit fuzzy, because this is essentially
+     * part of a self-sanity-check, rather than a strict mechanism.
+     *
+     * It's not feasible to have a single point in the common machine
+     * init path to configure confidential guest support, because
+     * different mechanisms have different interdependencies requiring
+     * initialization in different places, often in arch or machine
+     * type specific code.  It's also usually not possible to check
+     * for invalid configurations until that initialization code.
+     * That means it would be very easy to have a bug allowing CGS
+     * init to be bypassed entirely in certain configurations.
+     *
+     * Silently ignoring a requested security feature would be bad, so
+     * to avoid that we check late in init that this 'ready' flag is
+     * set if CGS was requested.  If the CGS init hasn't happened, and
+     * so 'ready' is not set, we'll abort.
+     */
+    bool ready;
+};
+
+typedef struct ConfidentialGuestSupportClass {
+    ObjectClass parent;
+
+    int (*kvm_init)(ConfidentialGuestSupport *cgs, Error **errp);
+    int (*kvm_reset)(ConfidentialGuestSupport *cgs, Error **errp);
+} ConfidentialGuestSupportClass;
+
+static inline int confidential_guest_kvm_init(ConfidentialGuestSupport *cgs,
+                                              Error **errp)
+{
+    ConfidentialGuestSupportClass *klass;
+
+    klass = CONFIDENTIAL_GUEST_SUPPORT_GET_CLASS(cgs);
+    if (klass->kvm_init) {
+        return klass->kvm_init(cgs, errp);
+    }
+
+    return 0;
+}
+
+static inline int confidential_guest_kvm_reset(ConfidentialGuestSupport *cgs,
+                                               Error **errp)
+{
+    ConfidentialGuestSupportClass *klass;
+
+    klass = CONFIDENTIAL_GUEST_SUPPORT_GET_CLASS(cgs);
+    if (klass->kvm_reset) {
+        return klass->kvm_reset(cgs, errp);
+    }
+
+    return 0;
+}
+
+#endif /* QEMU_CONFIDENTIAL_GUEST_SUPPORT_H */
index 91d6d4f7f7e6e4a2154e4b19f862ab9cd3bd5f8e..0843b7ab49baa01f57e41d9609bbdc8f3b820832 100644 (file)
 #include "qemu/plugin.h"
 #include "qemu/queue.h"
 #include "system/arch_init.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 
 #include "ui/qemu-spice.h"
 #include "qapi/string-input-visitor.h"
index 7342d2843aa51c1255b4726a3f3ccd3be4bedf49..0afb8317b585ebf3eba0ba5b85f59fbc89c334a8 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "qom/object.h"
 
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 
 #define TYPE_X86_CONFIDENTIAL_GUEST "x86-confidential-guest"
 
index e4b0d17a48a2b4279d1580ba6538cfb4bc79ed96..69c1811e156321e503b044843743719387779f9a 100644 (file)
@@ -19,7 +19,7 @@
 #include "system/kvm.h"
 #include "system/cpus.h"
 #include "qom/object_interfaces.h"
-#include "exec/confidential-guest-support.h"
+#include "system/confidential-guest-support.h"
 #include "hw/s390x/ipl.h"
 #include "hw/s390x/sclp.h"
 #include "target/s390x/kvm/kvm_s390x.h"