aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/kvm_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/include/asm/kvm_host.h')
-rw-r--r--arch/s390/include/asm/kvm_host.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index b7841546991f..16bd5d169cdb 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -20,9 +20,7 @@
20#include <asm/cpu.h> 20#include <asm/cpu.h>
21 21
22#define KVM_MAX_VCPUS 64 22#define KVM_MAX_VCPUS 64
23#define KVM_MEMORY_SLOTS 32 23#define KVM_USER_MEM_SLOTS 32
24/* memory slots that does not exposed to userspace */
25#define KVM_PRIVATE_MEM_SLOTS 4
26 24
27struct sca_entry { 25struct sca_entry {
28 atomic_t scn; 26 atomic_t scn;
@@ -76,8 +74,11 @@ struct kvm_s390_sie_block {
76 __u64 epoch; /* 0x0038 */ 74 __u64 epoch; /* 0x0038 */
77 __u8 reserved40[4]; /* 0x0040 */ 75 __u8 reserved40[4]; /* 0x0040 */
78#define LCTL_CR0 0x8000 76#define LCTL_CR0 0x8000
77#define LCTL_CR6 0x0200
78#define LCTL_CR14 0x0002
79 __u16 lctl; /* 0x0044 */ 79 __u16 lctl; /* 0x0044 */
80 __s16 icpua; /* 0x0046 */ 80 __s16 icpua; /* 0x0046 */
81#define ICTL_LPSW 0x00400000
81 __u32 ictl; /* 0x0048 */ 82 __u32 ictl; /* 0x0048 */
82 __u32 eca; /* 0x004c */ 83 __u32 eca; /* 0x004c */
83 __u8 icptcode; /* 0x0050 */ 84 __u8 icptcode; /* 0x0050 */
@@ -127,6 +128,7 @@ struct kvm_vcpu_stat {
127 u32 deliver_prefix_signal; 128 u32 deliver_prefix_signal;
128 u32 deliver_restart_signal; 129 u32 deliver_restart_signal;
129 u32 deliver_program_int; 130 u32 deliver_program_int;
131 u32 deliver_io_int;
130 u32 exit_wait_state; 132 u32 exit_wait_state;
131 u32 instruction_stidp; 133 u32 instruction_stidp;
132 u32 instruction_spx; 134 u32 instruction_spx;
@@ -187,6 +189,11 @@ struct kvm_s390_emerg_info {
187 __u16 code; 189 __u16 code;
188}; 190};
189 191
192struct kvm_s390_mchk_info {
193 __u64 cr14;
194 __u64 mcic;
195};
196
190struct kvm_s390_interrupt_info { 197struct kvm_s390_interrupt_info {
191 struct list_head list; 198 struct list_head list;
192 u64 type; 199 u64 type;
@@ -197,6 +204,7 @@ struct kvm_s390_interrupt_info {
197 struct kvm_s390_emerg_info emerg; 204 struct kvm_s390_emerg_info emerg;
198 struct kvm_s390_extcall_info extcall; 205 struct kvm_s390_extcall_info extcall;
199 struct kvm_s390_prefix_info prefix; 206 struct kvm_s390_prefix_info prefix;
207 struct kvm_s390_mchk_info mchk;
200 }; 208 };
201}; 209};
202 210
@@ -254,6 +262,7 @@ struct kvm_arch{
254 debug_info_t *dbf; 262 debug_info_t *dbf;
255 struct kvm_s390_float_interrupt float_int; 263 struct kvm_s390_float_interrupt float_int;
256 struct gmap *gmap; 264 struct gmap *gmap;
265 int css_support;
257}; 266};
258 267
259extern int sie64a(struct kvm_s390_sie_block *, u64 *); 268extern int sie64a(struct kvm_s390_sie_block *, u64 *);