diff options
author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2023-06-24 22:06:44 +0200 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2023-07-10 15:34:23 +0200 |
commit | f5f9c6ea11bc807664fdeb9354915c2c9cdcbd89 (patch) | |
tree | 3efa00a507db50969144f2002629d1aaca0c6a82 /include | |
parent | fcb237e64f9d026c03d635579c7b288d0008a6e5 (diff) | |
download | qemu-f5f9c6ea11bc807664fdeb9354915c2c9cdcbd89.zip qemu-f5f9c6ea11bc807664fdeb9354915c2c9cdcbd89.tar.gz qemu-f5f9c6ea11bc807664fdeb9354915c2c9cdcbd89.tar.bz2 |
hw/s390x: Move KVM specific PV from hw/ to target/s390x/kvm/
Protected Virtualization (PV) is not a real hardware device:
it is a feature of the firmware on s390x that is exposed to
userspace via the KVM interface.
Move the pv.c/pv.h files to target/s390x/kvm/ to make this clearer.
Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230624200644.23931-1-philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/hw/s390x/pv.h | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/include/hw/s390x/pv.h b/include/hw/s390x/pv.h deleted file mode 100644 index 7b935e2..0000000 --- a/include/hw/s390x/pv.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Protected Virtualization header - * - * Copyright IBM Corp. 2020 - * Author(s): - * Janosch Frank <frankja@linux.ibm.com> - * - * This work is licensed under the terms of the GNU GPL, version 2 or (at - * your option) any later version. See the COPYING file in the top-level - * directory. - */ -#ifndef HW_S390_PV_H -#define HW_S390_PV_H - -#include "qapi/error.h" -#include "sysemu/kvm.h" -#include "hw/s390x/s390-virtio-ccw.h" - -#ifdef CONFIG_KVM -#include "cpu.h" - -static inline bool s390_is_pv(void) -{ - static S390CcwMachineState *ccw; - Object *obj; - - if (ccw) { - return ccw->pv; - } - - /* we have to bail out for the "none" machine */ - obj = object_dynamic_cast(qdev_get_machine(), - TYPE_S390_CCW_MACHINE); - if (!obj) { - return false; - } - ccw = S390_CCW_MACHINE(obj); - return ccw->pv; -} - -int s390_pv_query_info(void); -int s390_pv_vm_enable(void); -void s390_pv_vm_disable(void); -bool s390_pv_vm_try_disable_async(S390CcwMachineState *ms); -int s390_pv_set_sec_parms(uint64_t origin, uint64_t length); -int s390_pv_unpack(uint64_t addr, uint64_t size, uint64_t tweak); -void s390_pv_prep_reset(void); -int s390_pv_verify(void); -void s390_pv_unshare(void); -void s390_pv_inject_reset_error(CPUState *cs); -uint64_t kvm_s390_pv_dmp_get_size_cpu(void); -uint64_t kvm_s390_pv_dmp_get_size_mem_state(void); -uint64_t kvm_s390_pv_dmp_get_size_completion_data(void); -bool kvm_s390_pv_info_basic_valid(void); -int kvm_s390_dump_init(void); -int kvm_s390_dump_cpu(S390CPU *cpu, void *buff); -int kvm_s390_dump_mem_state(uint64_t addr, size_t len, void *dest); -int kvm_s390_dump_completion_data(void *buff); -#else /* CONFIG_KVM */ -static inline bool s390_is_pv(void) { return false; } -static inline int s390_pv_query_info(void) { return 0; } -static inline int s390_pv_vm_enable(void) { return 0; } -static inline void s390_pv_vm_disable(void) {} -static inline bool s390_pv_vm_try_disable_async(S390CcwMachineState *ms) { return false; } -static inline int s390_pv_set_sec_parms(uint64_t origin, uint64_t length) { return 0; } -static inline int s390_pv_unpack(uint64_t addr, uint64_t size, uint64_t tweak) { return 0; } -static inline void s390_pv_prep_reset(void) {} -static inline int s390_pv_verify(void) { return 0; } -static inline void s390_pv_unshare(void) {} -static inline void s390_pv_inject_reset_error(CPUState *cs) {}; -static inline uint64_t kvm_s390_pv_dmp_get_size_cpu(void) { return 0; } -static inline uint64_t kvm_s390_pv_dmp_get_size_mem_state(void) { return 0; } -static inline uint64_t kvm_s390_pv_dmp_get_size_completion_data(void) { return 0; } -static inline bool kvm_s390_pv_info_basic_valid(void) { return false; } -static inline int kvm_s390_dump_init(void) { return 0; } -static inline int kvm_s390_dump_cpu(S390CPU *cpu, void *buff) { return 0; } -static inline int kvm_s390_dump_mem_state(uint64_t addr, size_t len, - void *dest) { return 0; } -static inline int kvm_s390_dump_completion_data(void *buff) { return 0; } -#endif /* CONFIG_KVM */ - -int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp); -static inline int s390_pv_init(ConfidentialGuestSupport *cgs, Error **errp) -{ - if (!cgs) { - return 0; - } - if (kvm_enabled()) { - return s390_pv_kvm_init(cgs, errp); - } - - error_setg(errp, "Protected Virtualization requires KVM"); - return -1; -} - -#endif /* HW_S390_PV_H */ |