162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci#ifndef SELFTEST_KVM_UCALL_H 362306a36Sopenharmony_ci#define SELFTEST_KVM_UCALL_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include "kvm_util_base.h" 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#define UCALL_EXIT_REASON KVM_EXIT_S390_SIEIC 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistatic inline void ucall_arch_init(struct kvm_vm *vm, vm_paddr_t mmio_gpa) 1062306a36Sopenharmony_ci{ 1162306a36Sopenharmony_ci} 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistatic inline void ucall_arch_do_ucall(vm_vaddr_t uc) 1462306a36Sopenharmony_ci{ 1562306a36Sopenharmony_ci /* Exit via DIAGNOSE 0x501 (normally used for breakpoints) */ 1662306a36Sopenharmony_ci asm volatile ("diag 0,%0,0x501" : : "a"(uc) : "memory"); 1762306a36Sopenharmony_ci} 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#endif 20