diff options
author | Christian Borntraeger <borntraeger@de.ibm.com> | 2008-03-25 18:47:29 +0100 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-04-27 12:00:45 +0300 |
commit | 453423dce2785b8e22077e3b3eeecb4f60fe3470 (patch) | |
tree | afe9d502d7fa07d5b59175dfb990f818e0642720 /arch/s390/kvm/kvm-s390.h | |
parent | ba5c1e9b6ceebdc39343cc03eb39f077abd3c571 (diff) | |
download | op-kernel-dev-453423dce2785b8e22077e3b3eeecb4f60fe3470.zip op-kernel-dev-453423dce2785b8e22077e3b3eeecb4f60fe3470.tar.gz |
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 'arch/s390/kvm/kvm-s390.h')
-rw-r--r-- | arch/s390/kvm/kvm-s390.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 8df745b..50f96b3 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h @@ -48,4 +48,7 @@ int kvm_s390_inject_vm(struct kvm *kvm, int kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu, struct kvm_s390_interrupt *s390int); int kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code); + +/* implemented in priv.c */ +int kvm_s390_handle_priv(struct kvm_vcpu *vcpu); #endif |