151b24e34SJan Kiszka #ifndef __LINUX_KVM_S390_H 251b24e34SJan Kiszka #define __LINUX_KVM_S390_H 351b24e34SJan Kiszka /* 451b24e34SJan Kiszka * asm-s390/kvm.h - KVM s390 specific structures and definitions 551b24e34SJan Kiszka * 651b24e34SJan Kiszka * Copyright IBM Corp. 2008 751b24e34SJan Kiszka * 851b24e34SJan Kiszka * This program is free software; you can redistribute it and/or modify 951b24e34SJan Kiszka * it under the terms of the GNU General Public License (version 2 only) 1051b24e34SJan Kiszka * as published by the Free Software Foundation. 1151b24e34SJan Kiszka * 1251b24e34SJan Kiszka * Author(s): Carsten Otte <cotte@de.ibm.com> 1351b24e34SJan Kiszka * Christian Borntraeger <borntraeger@de.ibm.com> 1451b24e34SJan Kiszka */ 1551b24e34SJan Kiszka #include <linux/types.h> 1651b24e34SJan Kiszka 1751b24e34SJan Kiszka #define __KVM_S390 1851b24e34SJan Kiszka 1951b24e34SJan Kiszka /* for KVM_GET_REGS and KVM_SET_REGS */ 2051b24e34SJan Kiszka struct kvm_regs { 2151b24e34SJan Kiszka /* general purpose regs for s390 */ 2251b24e34SJan Kiszka __u64 gprs[16]; 2351b24e34SJan Kiszka }; 2451b24e34SJan Kiszka 2551b24e34SJan Kiszka /* for KVM_GET_SREGS and KVM_SET_SREGS */ 2651b24e34SJan Kiszka struct kvm_sregs { 2751b24e34SJan Kiszka __u32 acrs[16]; 2851b24e34SJan Kiszka __u64 crs[16]; 2951b24e34SJan Kiszka }; 3051b24e34SJan Kiszka 3151b24e34SJan Kiszka /* for KVM_GET_FPU and KVM_SET_FPU */ 3251b24e34SJan Kiszka struct kvm_fpu { 3351b24e34SJan Kiszka __u32 fpc; 3451b24e34SJan Kiszka __u64 fprs[16]; 3551b24e34SJan Kiszka }; 3651b24e34SJan Kiszka 3751b24e34SJan Kiszka struct kvm_debug_exit_arch { 3851b24e34SJan Kiszka }; 3951b24e34SJan Kiszka 4051b24e34SJan Kiszka /* for KVM_SET_GUEST_DEBUG */ 4151b24e34SJan Kiszka struct kvm_guest_debug_arch { 4251b24e34SJan Kiszka }; 4351b24e34SJan Kiszka 44*1529ae1bSAlexander Graf #define KVM_SYNC_PREFIX (1UL << 0) 45*1529ae1bSAlexander Graf #define KVM_SYNC_GPRS (1UL << 1) 46*1529ae1bSAlexander Graf #define KVM_SYNC_ACRS (1UL << 2) 47*1529ae1bSAlexander Graf /* definition of registers in kvm_run */ 48*1529ae1bSAlexander Graf struct kvm_sync_regs { 49*1529ae1bSAlexander Graf __u64 prefix; /* prefix register */ 50*1529ae1bSAlexander Graf __u64 gprs[16]; /* general purpose registers */ 51*1529ae1bSAlexander Graf __u32 acrs[16]; /* access registers */ 52*1529ae1bSAlexander Graf }; 5351b24e34SJan Kiszka #endif 54