123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #ifndef __LINUX_KVM_S390_H
- #define __LINUX_KVM_S390_H
- /*
- * KVM s390 specific structures and definitions
- *
- * Copyright IBM Corp. 2008
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2 only)
- * as published by the Free Software Foundation.
- *
- * Author(s): Carsten Otte <cotte@de.ibm.com>
- * Christian Borntraeger <borntraeger@de.ibm.com>
- */
- #include <linux/types.h>
- #define __KVM_S390
- /* for KVM_GET_REGS and KVM_SET_REGS */
- struct kvm_regs {
- /* general purpose regs for s390 */
- __u64 gprs[16];
- };
- /* for KVM_GET_SREGS and KVM_SET_SREGS */
- struct kvm_sregs {
- __u32 acrs[16];
- __u64 crs[16];
- };
- /* for KVM_GET_FPU and KVM_SET_FPU */
- struct kvm_fpu {
- __u32 fpc;
- __u64 fprs[16];
- };
- struct kvm_debug_exit_arch {
- };
- /* for KVM_SET_GUEST_DEBUG */
- struct kvm_guest_debug_arch {
- };
- #define KVM_SYNC_PREFIX (1UL << 0)
- #define KVM_SYNC_GPRS (1UL << 1)
- #define KVM_SYNC_ACRS (1UL << 2)
- #define KVM_SYNC_CRS (1UL << 3)
- /* definition of registers in kvm_run */
- struct kvm_sync_regs {
- __u64 prefix; /* prefix register */
- __u64 gprs[16]; /* general purpose registers */
- __u32 acrs[16]; /* access registers */
- __u64 crs[16]; /* control registers */
- };
- #define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1)
- #define KVM_REG_S390_EPOCHDIFF (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x2)
- #define KVM_REG_S390_CPU_TIMER (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x3)
- #define KVM_REG_S390_CLOCK_COMP (KVM_REG_S390 | KVM_REG_SIZE_U64 | 0x4)
- #endif
|