summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/kvm/include/s390x
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2023-07-31 23:30:24 +0300
committerSean Christopherson <seanjc@google.com>2023-08-03 00:42:52 +0300
commitb35f4c73d389d3b04e5edf3d1fd041ed3070228b (patch)
tree7597da77d5581d04b68f8bf3f96013442bd0d5c1 /tools/testing/selftests/kvm/include/s390x
parent289c2b4db8f336b96d918eb0c548382aee71ed79 (diff)
downloadlinux-b35f4c73d389d3b04e5edf3d1fd041ed3070228b.tar.xz
KVM: selftests: Add arch ucall.h and inline simple arch hooks
Add an architecture specific ucall.h and inline the simple arch hooks, e.g. the init hook for everything except ARM, and the actual "do ucall" hook for everything except x86 (which should be simple, but temporarily isn't due to carrying a workaround). Having a per-arch ucall header will allow adding a #define for the expected KVM exit reason for a ucall that is colocated (for everything except x86) with the ucall itself. Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Link: https://lore.kernel.org/r/20230731203026.1192091-2-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/testing/selftests/kvm/include/s390x')
-rw-r--r--tools/testing/selftests/kvm/include/s390x/ucall.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/testing/selftests/kvm/include/s390x/ucall.h b/tools/testing/selftests/kvm/include/s390x/ucall.h
new file mode 100644
index 000000000000..47ad4b1fbccb
--- /dev/null
+++ b/tools/testing/selftests/kvm/include/s390x/ucall.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef SELFTEST_KVM_UCALL_H
+#define SELFTEST_KVM_UCALL_H
+
+#include "kvm_util_base.h"
+
+static inline void ucall_arch_init(struct kvm_vm *vm, vm_paddr_t mmio_gpa)
+{
+}
+
+static inline void ucall_arch_do_ucall(vm_vaddr_t uc)
+{
+ /* Exit via DIAGNOSE 0x501 (normally used for breakpoints) */
+ asm volatile ("diag 0,%0,0x501" : : "a"(uc) : "memory");
+}
+
+#endif