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