xref: /linux/tools/testing/selftests/kvm/include/s390x/ucall.h (revision 594ce0b8a998aa4d05827cd7c0d0dcec9a1e3ae2)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef SELFTEST_KVM_UCALL_H
3 #define SELFTEST_KVM_UCALL_H
4 
5 #include "kvm_util.h"
6 
7 #define UCALL_EXIT_REASON       KVM_EXIT_S390_SIEIC
8 
9 static inline void ucall_arch_init(struct kvm_vm *vm, vm_paddr_t mmio_gpa)
10 {
11 }
12 
13 static inline void ucall_arch_do_ucall(vm_vaddr_t uc)
14 {
15 	/* Exit via DIAGNOSE 0x501 (normally used for breakpoints) */
16 	asm volatile ("diag 0,%0,0x501" : : "a"(uc) : "memory");
17 }
18 
19 #endif
20