aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-s390
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2008-03-25 13:47:34 -0400
committerAvi Kivity <avi@qumranet.com>2008-04-27 05:00:46 -0400
commite28acfea5dd9dbc67c2594cbefc140129dbd0e3f (patch)
tree2f66c3afcf18fd938bae1460f1c5d35ccbf75550 /include/asm-s390
parent5288fbf0ef041ba0e8b4dcb2df4536b5e3a48b32 (diff)
KVM: s390: intercepts for diagnose instructions
This patch introduces interpretation of some diagnose instruction intercepts. Diagnose is our classic architected way of doing a hypercall. This patch features the following diagnose codes: - vm storage size, that tells the guest about its memory layout - time slice end, which is used by the guest to indicate that it waits for a lock and thus cannot use up its time slice in a useful way - ipl functions, which a guest can use to reset and reboot itself In order to implement ipl functions, we also introduce an exit reason that causes userspace to perform various resets on the virtual machine. All resets are described in the principles of operation book, except KVM_S390_RESET_IPL which causes a reboot of the machine. Acked-by: Martin Schwidefsky <martin.schwidefsky@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'include/asm-s390')
-rw-r--r--include/asm-s390/kvm_host.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-s390/kvm_host.h b/include/asm-s390/kvm_host.h
index 1c829bdf5889..f8204a4f2e02 100644
--- a/include/asm-s390/kvm_host.h
+++ b/include/asm-s390/kvm_host.h
@@ -94,7 +94,9 @@ struct sie_block {
94 psw_t gpsw; /* 0x0090 */ 94 psw_t gpsw; /* 0x0090 */
95 __u64 gg14; /* 0x00a0 */ 95 __u64 gg14; /* 0x00a0 */
96 __u64 gg15; /* 0x00a8 */ 96 __u64 gg15; /* 0x00a8 */
97 __u8 reservedb0[80]; /* 0x00b0 */ 97 __u8 reservedb0[30]; /* 0x00b0 */
98 __u16 iprcc; /* 0x00ce */
99 __u8 reservedd0[48]; /* 0x00d0 */
98 __u64 gcr[16]; /* 0x0100 */ 100 __u64 gcr[16]; /* 0x0100 */
99 __u64 gbea; /* 0x0180 */ 101 __u64 gbea; /* 0x0180 */
100 __u8 reserved188[120]; /* 0x0188 */ 102 __u8 reserved188[120]; /* 0x0188 */
@@ -134,6 +136,7 @@ struct kvm_vcpu_stat {
134 u32 instruction_sigp_arch; 136 u32 instruction_sigp_arch;
135 u32 instruction_sigp_prefix; 137 u32 instruction_sigp_prefix;
136 u32 instruction_sigp_restart; 138 u32 instruction_sigp_restart;
139 u32 diagnose_44;
137}; 140};
138 141
139struct io_info { 142struct io_info {