aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/include')
-rw-r--r--arch/s390/include/asm/kvm_host.h10
-rw-r--r--arch/s390/include/uapi/asm/kvm.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index f407bbf5ee94..3449a388b169 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -183,11 +183,17 @@ struct kvm_s390_itdb {
183 __u8 data[256]; 183 __u8 data[256];
184} __packed; 184} __packed;
185 185
186struct kvm_s390_vregs {
187 __vector128 vrs[32];
188 __u8 reserved200[512]; /* for future vector expansion */
189} __packed;
190
186struct sie_page { 191struct sie_page {
187 struct kvm_s390_sie_block sie_block; 192 struct kvm_s390_sie_block sie_block;
188 __u8 reserved200[1024]; /* 0x0200 */ 193 __u8 reserved200[1024]; /* 0x0200 */
189 struct kvm_s390_itdb itdb; /* 0x0600 */ 194 struct kvm_s390_itdb itdb; /* 0x0600 */
190 __u8 reserved700[2304]; /* 0x0700 */ 195 __u8 reserved700[1280]; /* 0x0700 */
196 struct kvm_s390_vregs vregs; /* 0x0c00 */
191} __packed; 197} __packed;
192 198
193struct kvm_vcpu_stat { 199struct kvm_vcpu_stat {
@@ -465,6 +471,7 @@ struct kvm_vcpu_arch {
465 s390_fp_regs host_fpregs; 471 s390_fp_regs host_fpregs;
466 unsigned int host_acrs[NUM_ACRS]; 472 unsigned int host_acrs[NUM_ACRS];
467 s390_fp_regs guest_fpregs; 473 s390_fp_regs guest_fpregs;
474 struct kvm_s390_vregs *host_vregs;
468 struct kvm_s390_local_interrupt local_int; 475 struct kvm_s390_local_interrupt local_int;
469 struct hrtimer ckc_timer; 476 struct hrtimer ckc_timer;
470 struct kvm_s390_pgm_info pgm; 477 struct kvm_s390_pgm_info pgm;
@@ -551,6 +558,7 @@ struct kvm_arch{
551 int css_support; 558 int css_support;
552 int use_irqchip; 559 int use_irqchip;
553 int use_cmma; 560 int use_cmma;
561 int use_vectors;
554 int user_cpu_state_ctrl; 562 int user_cpu_state_ctrl;
555 int user_sigp; 563 int user_sigp;
556 struct s390_io_adapter *adapters[MAX_S390_IO_ADAPTERS]; 564 struct s390_io_adapter *adapters[MAX_S390_IO_ADAPTERS];
diff --git a/arch/s390/include/uapi/asm/kvm.h b/arch/s390/include/uapi/asm/kvm.h
index 9c77e60b9a26..ef1a5fcc6c66 100644
--- a/arch/s390/include/uapi/asm/kvm.h
+++ b/arch/s390/include/uapi/asm/kvm.h
@@ -150,6 +150,7 @@ struct kvm_guest_debug_arch {
150#define KVM_SYNC_CRS (1UL << 3) 150#define KVM_SYNC_CRS (1UL << 3)
151#define KVM_SYNC_ARCH0 (1UL << 4) 151#define KVM_SYNC_ARCH0 (1UL << 4)
152#define KVM_SYNC_PFAULT (1UL << 5) 152#define KVM_SYNC_PFAULT (1UL << 5)
153#define KVM_SYNC_VRS (1UL << 6)
153/* definition of registers in kvm_run */ 154/* definition of registers in kvm_run */
154struct kvm_sync_regs { 155struct kvm_sync_regs {
155 __u64 prefix; /* prefix register */ 156 __u64 prefix; /* prefix register */
@@ -164,6 +165,9 @@ struct kvm_sync_regs {
164 __u64 pft; /* pfault token [PFAULT] */ 165 __u64 pft; /* pfault token [PFAULT] */
165 __u64 pfs; /* pfault select [PFAULT] */ 166 __u64 pfs; /* pfault select [PFAULT] */
166 __u64 pfc; /* pfault compare [PFAULT] */ 167 __u64 pfc; /* pfault compare [PFAULT] */
168 __u64 vrs[32][2]; /* vector registers */
169 __u8 reserved[512]; /* for future vector expansion */
170 __u32 fpc; /* only valid with vector registers */
167}; 171};
168 172
169#define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1) 173#define KVM_REG_S390_TODPR (KVM_REG_S390 | KVM_REG_SIZE_U32 | 0x1)