diff options
Diffstat (limited to 'arch/s390/include')
-rw-r--r-- | arch/s390/include/asm/kvm_host.h | 10 | ||||
-rw-r--r-- | arch/s390/include/uapi/asm/kvm.h | 4 |
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 | ||
186 | struct kvm_s390_vregs { | ||
187 | __vector128 vrs[32]; | ||
188 | __u8 reserved200[512]; /* for future vector expansion */ | ||
189 | } __packed; | ||
190 | |||
186 | struct sie_page { | 191 | struct 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 | ||
193 | struct kvm_vcpu_stat { | 199 | struct 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 */ |
154 | struct kvm_sync_regs { | 155 | struct 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) |