18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 28c2ecf20Sopenharmony_ci#ifndef __LINUX_KVM_S390_H 38c2ecf20Sopenharmony_ci#define __LINUX_KVM_S390_H 48c2ecf20Sopenharmony_ci/* 58c2ecf20Sopenharmony_ci * KVM s390 specific structures and definitions 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2008, 2018 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * Author(s): Carsten Otte <cotte@de.ibm.com> 108c2ecf20Sopenharmony_ci * Christian Borntraeger <borntraeger@de.ibm.com> 118c2ecf20Sopenharmony_ci */ 128c2ecf20Sopenharmony_ci#include <linux/types.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define __KVM_S390 158c2ecf20Sopenharmony_ci#define __KVM_HAVE_GUEST_DEBUG 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci/* Device control API: s390-specific devices */ 188c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_GET_ALL_IRQS 1 198c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_ENQUEUE 2 208c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_CLEAR_IRQS 3 218c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_APF_ENABLE 4 228c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_APF_DISABLE_WAIT 5 238c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_ADAPTER_REGISTER 6 248c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_ADAPTER_MODIFY 7 258c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_CLEAR_IO_IRQ 8 268c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_AISM 9 278c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_AIRQ_INJECT 10 288c2ecf20Sopenharmony_ci#define KVM_DEV_FLIC_AISM_ALL 11 298c2ecf20Sopenharmony_ci/* 308c2ecf20Sopenharmony_ci * We can have up to 4*64k pending subchannels + 8 adapter interrupts, 318c2ecf20Sopenharmony_ci * as well as up to ASYNC_PF_PER_VCPU*KVM_MAX_VCPUS pfault done interrupts. 328c2ecf20Sopenharmony_ci * There are also sclp and machine checks. This gives us 338c2ecf20Sopenharmony_ci * sizeof(kvm_s390_irq)*(4*65536+8+64*64+1+1) = 72 * 266250 = 19170000 348c2ecf20Sopenharmony_ci * Lets round up to 8192 pages. 358c2ecf20Sopenharmony_ci */ 368c2ecf20Sopenharmony_ci#define KVM_S390_MAX_FLOAT_IRQS 266250 378c2ecf20Sopenharmony_ci#define KVM_S390_FLIC_MAX_BUFFER 0x2000000 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_cistruct kvm_s390_io_adapter { 408c2ecf20Sopenharmony_ci __u32 id; 418c2ecf20Sopenharmony_ci __u8 isc; 428c2ecf20Sopenharmony_ci __u8 maskable; 438c2ecf20Sopenharmony_ci __u8 swap; 448c2ecf20Sopenharmony_ci __u8 flags; 458c2ecf20Sopenharmony_ci}; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci#define KVM_S390_ADAPTER_SUPPRESSIBLE 0x01 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cistruct kvm_s390_ais_req { 508c2ecf20Sopenharmony_ci __u8 isc; 518c2ecf20Sopenharmony_ci __u16 mode; 528c2ecf20Sopenharmony_ci}; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_cistruct kvm_s390_ais_all { 558c2ecf20Sopenharmony_ci __u8 simm; 568c2ecf20Sopenharmony_ci __u8 nimm; 578c2ecf20Sopenharmony_ci}; 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci#define KVM_S390_IO_ADAPTER_MASK 1 608c2ecf20Sopenharmony_ci#define KVM_S390_IO_ADAPTER_MAP 2 618c2ecf20Sopenharmony_ci#define KVM_S390_IO_ADAPTER_UNMAP 3 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_cistruct kvm_s390_io_adapter_req { 648c2ecf20Sopenharmony_ci __u32 id; 658c2ecf20Sopenharmony_ci __u8 type; 668c2ecf20Sopenharmony_ci __u8 mask; 678c2ecf20Sopenharmony_ci __u16 pad0; 688c2ecf20Sopenharmony_ci __u64 addr; 698c2ecf20Sopenharmony_ci}; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci/* kvm attr_group on vm fd */ 728c2ecf20Sopenharmony_ci#define KVM_S390_VM_MEM_CTRL 0 738c2ecf20Sopenharmony_ci#define KVM_S390_VM_TOD 1 748c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO 2 758c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_MODEL 3 768c2ecf20Sopenharmony_ci#define KVM_S390_VM_MIGRATION 4 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci/* kvm attributes for mem_ctrl */ 798c2ecf20Sopenharmony_ci#define KVM_S390_VM_MEM_ENABLE_CMMA 0 808c2ecf20Sopenharmony_ci#define KVM_S390_VM_MEM_CLR_CMMA 1 818c2ecf20Sopenharmony_ci#define KVM_S390_VM_MEM_LIMIT_SIZE 2 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci#define KVM_S390_NO_MEM_LIMIT U64_MAX 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci/* kvm attributes for KVM_S390_VM_TOD */ 868c2ecf20Sopenharmony_ci#define KVM_S390_VM_TOD_LOW 0 878c2ecf20Sopenharmony_ci#define KVM_S390_VM_TOD_HIGH 1 888c2ecf20Sopenharmony_ci#define KVM_S390_VM_TOD_EXT 2 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_cistruct kvm_s390_vm_tod_clock { 918c2ecf20Sopenharmony_ci __u8 epoch_idx; 928c2ecf20Sopenharmony_ci __u64 tod; 938c2ecf20Sopenharmony_ci}; 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci/* kvm attributes for KVM_S390_VM_CPU_MODEL */ 968c2ecf20Sopenharmony_ci/* processor related attributes are r/w */ 978c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_PROCESSOR 0 988c2ecf20Sopenharmony_cistruct kvm_s390_vm_cpu_processor { 998c2ecf20Sopenharmony_ci __u64 cpuid; 1008c2ecf20Sopenharmony_ci __u16 ibc; 1018c2ecf20Sopenharmony_ci __u8 pad[6]; 1028c2ecf20Sopenharmony_ci __u64 fac_list[256]; 1038c2ecf20Sopenharmony_ci}; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci/* machine related attributes are r/o */ 1068c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_MACHINE 1 1078c2ecf20Sopenharmony_cistruct kvm_s390_vm_cpu_machine { 1088c2ecf20Sopenharmony_ci __u64 cpuid; 1098c2ecf20Sopenharmony_ci __u32 ibc; 1108c2ecf20Sopenharmony_ci __u8 pad[4]; 1118c2ecf20Sopenharmony_ci __u64 fac_mask[256]; 1128c2ecf20Sopenharmony_ci __u64 fac_list[256]; 1138c2ecf20Sopenharmony_ci}; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_PROCESSOR_FEAT 2 1168c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_MACHINE_FEAT 3 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_NR_BITS 1024 1198c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_ESOP 0 1208c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_SIEF2 1 1218c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_64BSCAO 2 1228c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_SIIF 3 1238c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_GPERE 4 1248c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_GSLS 5 1258c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_IB 6 1268c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_CEI 7 1278c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_IBS 8 1288c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_SKEY 9 1298c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_CMMA 10 1308c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_PFMFI 11 1318c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_SIGPIF 12 1328c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_FEAT_KSS 13 1338c2ecf20Sopenharmony_cistruct kvm_s390_vm_cpu_feat { 1348c2ecf20Sopenharmony_ci __u64 feat[16]; 1358c2ecf20Sopenharmony_ci}; 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_PROCESSOR_SUBFUNC 4 1388c2ecf20Sopenharmony_ci#define KVM_S390_VM_CPU_MACHINE_SUBFUNC 5 1398c2ecf20Sopenharmony_ci/* for "test bit" instructions MSB 0 bit ordering, for "query" raw blocks */ 1408c2ecf20Sopenharmony_cistruct kvm_s390_vm_cpu_subfunc { 1418c2ecf20Sopenharmony_ci __u8 plo[32]; /* always */ 1428c2ecf20Sopenharmony_ci __u8 ptff[16]; /* with TOD-clock steering */ 1438c2ecf20Sopenharmony_ci __u8 kmac[16]; /* with MSA */ 1448c2ecf20Sopenharmony_ci __u8 kmc[16]; /* with MSA */ 1458c2ecf20Sopenharmony_ci __u8 km[16]; /* with MSA */ 1468c2ecf20Sopenharmony_ci __u8 kimd[16]; /* with MSA */ 1478c2ecf20Sopenharmony_ci __u8 klmd[16]; /* with MSA */ 1488c2ecf20Sopenharmony_ci __u8 pckmo[16]; /* with MSA3 */ 1498c2ecf20Sopenharmony_ci __u8 kmctr[16]; /* with MSA4 */ 1508c2ecf20Sopenharmony_ci __u8 kmf[16]; /* with MSA4 */ 1518c2ecf20Sopenharmony_ci __u8 kmo[16]; /* with MSA4 */ 1528c2ecf20Sopenharmony_ci __u8 pcc[16]; /* with MSA4 */ 1538c2ecf20Sopenharmony_ci __u8 ppno[16]; /* with MSA5 */ 1548c2ecf20Sopenharmony_ci __u8 kma[16]; /* with MSA8 */ 1558c2ecf20Sopenharmony_ci __u8 kdsa[16]; /* with MSA9 */ 1568c2ecf20Sopenharmony_ci __u8 sortl[32]; /* with STFLE.150 */ 1578c2ecf20Sopenharmony_ci __u8 dfltcc[32]; /* with STFLE.151 */ 1588c2ecf20Sopenharmony_ci __u8 reserved[1728]; 1598c2ecf20Sopenharmony_ci}; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci/* kvm attributes for crypto */ 1628c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_ENABLE_AES_KW 0 1638c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_ENABLE_DEA_KW 1 1648c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_DISABLE_AES_KW 2 1658c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_DISABLE_DEA_KW 3 1668c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_ENABLE_APIE 4 1678c2ecf20Sopenharmony_ci#define KVM_S390_VM_CRYPTO_DISABLE_APIE 5 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci/* kvm attributes for migration mode */ 1708c2ecf20Sopenharmony_ci#define KVM_S390_VM_MIGRATION_STOP 0 1718c2ecf20Sopenharmony_ci#define KVM_S390_VM_MIGRATION_START 1 1728c2ecf20Sopenharmony_ci#define KVM_S390_VM_MIGRATION_STATUS 2 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci/* for KVM_GET_REGS and KVM_SET_REGS */ 1758c2ecf20Sopenharmony_cistruct kvm_regs { 1768c2ecf20Sopenharmony_ci /* general purpose regs for s390 */ 1778c2ecf20Sopenharmony_ci __u64 gprs[16]; 1788c2ecf20Sopenharmony_ci}; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci/* for KVM_GET_SREGS and KVM_SET_SREGS */ 1818c2ecf20Sopenharmony_cistruct kvm_sregs { 1828c2ecf20Sopenharmony_ci __u32 acrs[16]; 1838c2ecf20Sopenharmony_ci __u64 crs[16]; 1848c2ecf20Sopenharmony_ci}; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci/* for KVM_GET_FPU and KVM_SET_FPU */ 1878c2ecf20Sopenharmony_cistruct kvm_fpu { 1888c2ecf20Sopenharmony_ci __u32 fpc; 1898c2ecf20Sopenharmony_ci __u64 fprs[16]; 1908c2ecf20Sopenharmony_ci}; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci#define KVM_GUESTDBG_USE_HW_BP 0x00010000 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci#define KVM_HW_BP 1 1958c2ecf20Sopenharmony_ci#define KVM_HW_WP_WRITE 2 1968c2ecf20Sopenharmony_ci#define KVM_SINGLESTEP 4 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_cistruct kvm_debug_exit_arch { 1998c2ecf20Sopenharmony_ci __u64 addr; 2008c2ecf20Sopenharmony_ci __u8 type; 2018c2ecf20Sopenharmony_ci __u8 pad[7]; /* Should be set to 0 */ 2028c2ecf20Sopenharmony_ci}; 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_cistruct kvm_hw_breakpoint { 2058c2ecf20Sopenharmony_ci __u64 addr; 2068c2ecf20Sopenharmony_ci __u64 phys_addr; 2078c2ecf20Sopenharmony_ci __u64 len; 2088c2ecf20Sopenharmony_ci __u8 type; 2098c2ecf20Sopenharmony_ci __u8 pad[7]; /* Should be set to 0 */ 2108c2ecf20Sopenharmony_ci}; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci/* for KVM_SET_GUEST_DEBUG */ 2138c2ecf20Sopenharmony_cistruct kvm_guest_debug_arch { 2148c2ecf20Sopenharmony_ci __u32 nr_hw_bp; 2158c2ecf20Sopenharmony_ci __u32 pad; /* Should be set to 0 */ 2168c2ecf20Sopenharmony_ci struct kvm_hw_breakpoint __user *hw_bp; 2178c2ecf20Sopenharmony_ci}; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci/* for KVM_SYNC_PFAULT and KVM_REG_S390_PFTOKEN */ 2208c2ecf20Sopenharmony_ci#define KVM_S390_PFAULT_TOKEN_INVALID 0xffffffffffffffffULL 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci#define KVM_SYNC_PREFIX (1UL << 0) 2238c2ecf20Sopenharmony_ci#define KVM_SYNC_GPRS (1UL << 1) 2248c2ecf20Sopenharmony_ci#define KVM_SYNC_ACRS (1UL << 2) 2258c2ecf20Sopenharmony_ci#define KVM_SYNC_CRS (1UL << 3) 2268c2ecf20Sopenharmony_ci#define KVM_SYNC_ARCH0 (1UL << 4) 2278c2ecf20Sopenharmony_ci#define KVM_SYNC_PFAULT (1UL << 5) 2288c2ecf20Sopenharmony_ci#define KVM_SYNC_VRS (1UL << 6) 2298c2ecf20Sopenharmony_ci#define KVM_SYNC_RICCB (1UL << 7) 2308c2ecf20Sopenharmony_ci#define KVM_SYNC_FPRS (1UL << 8) 2318c2ecf20Sopenharmony_ci#define KVM_SYNC_GSCB (1UL << 9) 2328c2ecf20Sopenharmony_ci#define KVM_SYNC_BPBC (1UL << 10) 2338c2ecf20Sopenharmony_ci#define KVM_SYNC_ETOKEN (1UL << 11) 2348c2ecf20Sopenharmony_ci#define KVM_SYNC_DIAG318 (1UL << 12) 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci#define KVM_SYNC_S390_VALID_FIELDS \ 2378c2ecf20Sopenharmony_ci (KVM_SYNC_PREFIX | KVM_SYNC_GPRS | KVM_SYNC_ACRS | KVM_SYNC_CRS | \ 2388c2ecf20Sopenharmony_ci KVM_SYNC_ARCH0 | KVM_SYNC_PFAULT | KVM_SYNC_VRS | KVM_SYNC_RICCB | \ 2398c2ecf20Sopenharmony_ci KVM_SYNC_FPRS | KVM_SYNC_GSCB | KVM_SYNC_BPBC | KVM_SYNC_ETOKEN | \ 2408c2ecf20Sopenharmony_ci KVM_SYNC_DIAG318) 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci/* length and alignment of the sdnx as a power of two */ 2438c2ecf20Sopenharmony_ci#define SDNXC 8 2448c2ecf20Sopenharmony_ci#define SDNXL (1UL << SDNXC) 2458c2ecf20Sopenharmony_ci/* definition of registers in kvm_run */ 2468c2ecf20Sopenharmony_cistruct kvm_sync_regs { 2478c2ecf20Sopenharmony_ci __u64 prefix; /* prefix register */ 2488c2ecf20Sopenharmony_ci __u64 gprs[16]; /* general purpose registers */ 2498c2ecf20Sopenharmony_ci __u32 acrs[16]; /* access registers */ 2508c2ecf20Sopenharmony_ci __u64 crs[16]; /* control registers */ 2518c2ecf20Sopenharmony_ci __u64 todpr; /* tod programmable register [ARCH0] */ 2528c2ecf20Sopenharmony_ci __u64 cputm; /* cpu timer [ARCH0] */ 2538c2ecf20Sopenharmony_ci __u64 ckc; /* clock comparator [ARCH0] */ 2548c2ecf20Sopenharmony_ci __u64 pp; /* program parameter [ARCH0] */ 2558c2ecf20Sopenharmony_ci __u64 gbea; /* guest breaking-event address [ARCH0] */ 2568c2ecf20Sopenharmony_ci __u64 pft; /* pfault token [PFAULT] */ 2578c2ecf20Sopenharmony_ci __u64 pfs; /* pfault select [PFAULT] */ 2588c2ecf20Sopenharmony_ci __u64 pfc; /* pfault compare [PFAULT] */ 2598c2ecf20Sopenharmony_ci union { 2608c2ecf20Sopenharmony_ci __u64 vrs[32][2]; /* vector registers (KVM_SYNC_VRS) */ 2618c2ecf20Sopenharmony_ci __u64 fprs[16]; /* fp registers (KVM_SYNC_FPRS) */ 2628c2ecf20Sopenharmony_ci }; 2638c2ecf20Sopenharmony_ci __u8 reserved[512]; /* for future vector expansion */ 2648c2ecf20Sopenharmony_ci __u32 fpc; /* valid on KVM_SYNC_VRS or KVM_SYNC_FPRS */ 2658c2ecf20Sopenharmony_ci __u8 bpbc : 1; /* bp mode */ 2668c2ecf20Sopenharmony_ci __u8 reserved2 : 7; 2678c2ecf20Sopenharmony_ci __u8 padding1[51]; /* riccb needs to be 64byte aligned */ 2688c2ecf20Sopenharmony_ci __u8 riccb[64]; /* runtime instrumentation controls block */ 2698c2ecf20Sopenharmony_ci __u64 diag318; /* diagnose 0x318 info */ 2708c2ecf20Sopenharmony_ci __u8 padding2[184]; /* sdnx needs to be 256byte aligned */ 2718c2ecf20Sopenharmony_ci union { 2728c2ecf20Sopenharmony_ci __u8 sdnx[SDNXL]; /* state description annex */ 2738c2ecf20Sopenharmony_ci struct { 2748c2ecf20Sopenharmony_ci __u64 reserved1[2]; 2758c2ecf20Sopenharmony_ci __u64 gscb[4]; 2768c2ecf20Sopenharmony_ci __u64 etoken; 2778c2ecf20Sopenharmony_ci __u64 etoken_extension; 2788c2ecf20Sopenharmony_ci }; 2798c2ecf20Sopenharmony_ci }; 2808c2ecf20Sopenharmony_ci}; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci#define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1) 2838c2ecf20Sopenharmony_ci#define KVM_REG_S390_EPOCHDIFF (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x2) 2848c2ecf20Sopenharmony_ci#define KVM_REG_S390_CPU_TIMER (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x3) 2858c2ecf20Sopenharmony_ci#define KVM_REG_S390_CLOCK_COMP (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x4) 2868c2ecf20Sopenharmony_ci#define KVM_REG_S390_PFTOKEN (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x5) 2878c2ecf20Sopenharmony_ci#define KVM_REG_S390_PFCOMPARE (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x6) 2888c2ecf20Sopenharmony_ci#define KVM_REG_S390_PFSELECT (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x7) 2898c2ecf20Sopenharmony_ci#define KVM_REG_S390_PP (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x8) 2908c2ecf20Sopenharmony_ci#define KVM_REG_S390_GBEA (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x9) 2918c2ecf20Sopenharmony_ci#endif 292