xref: /qemu/linux-headers/asm-s390/kvm.h (revision 1529ae1bc61a15e9a243dcbad70c95dfcdd1f0c5)
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