aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-s390
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2008-03-25 13:47:29 -0400
committerAvi Kivity <avi@qumranet.com>2008-04-27 05:00:45 -0400
commit453423dce2785b8e22077e3b3eeecb4f60fe3470 (patch)
treeafe9d502d7fa07d5b59175dfb990f818e0642720 /include/asm-s390
parentba5c1e9b6ceebdc39343cc03eb39f077abd3c571 (diff)
KVM: s390: intercepts for privileged instructions
This patch introduces in-kernel handling of some intercepts for privileged instructions: handle_set_prefix() sets the prefix register of the local cpu handle_store_prefix() stores the content of the prefix register to memory handle_store_cpu_address() stores the cpu number of the current cpu to memory handle_skey() just decrements the instruction address and retries handle_stsch() delivers condition code 3 "operation not supported" handle_chsc() same here handle_stfl() stores the facility list which contains the capabilities of the cpu handle_stidp() stores cpu type/model/revision and such handle_stsi() stores information about the system topology Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@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.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-s390/kvm_host.h b/include/asm-s390/kvm_host.h
index 4fe19305888a..2eaf6fede025 100644
--- a/include/asm-s390/kvm_host.h
+++ b/include/asm-s390/kvm_host.h
@@ -119,6 +119,15 @@ struct kvm_vcpu_stat {
119 u32 deliver_restart_signal; 119 u32 deliver_restart_signal;
120 u32 deliver_program_int; 120 u32 deliver_program_int;
121 u32 exit_wait_state; 121 u32 exit_wait_state;
122 u32 instruction_stidp;
123 u32 instruction_spx;
124 u32 instruction_stpx;
125 u32 instruction_stap;
126 u32 instruction_storage_key;
127 u32 instruction_stsch;
128 u32 instruction_chsc;
129 u32 instruction_stsi;
130 u32 instruction_stfl;
122}; 131};
123 132
124struct io_info { 133struct io_info {
@@ -188,6 +197,10 @@ struct kvm_vcpu_arch {
188 unsigned int guest_acrs[NUM_ACRS]; 197 unsigned int guest_acrs[NUM_ACRS];
189 struct local_interrupt local_int; 198 struct local_interrupt local_int;
190 struct timer_list ckc_timer; 199 struct timer_list ckc_timer;
200 union {
201 cpuid_t cpu_id;
202 u64 stidp_data;
203 };
191}; 204};
192 205
193struct kvm_vm_stat { 206struct kvm_vm_stat {