diff options
author | Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> | 2009-05-20 09:34:55 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-09-10 01:32:42 -0400 |
commit | 9ace903d171db7dc2fed96e44ac62b6f4c3ccb3d (patch) | |
tree | 50668cde71950831339d601a3bfeabe49657770e /arch/s390/kvm/kvm-s390.h | |
parent | 3032b925f00ba2653f7695d356d6f8284c82038d (diff) |
KVM: s390: infrastructure to kick vcpus out of guest state
To ensure vcpu's come out of guest context in certain cases this patch adds a
s390 specific way to kick them out of guest context. Currently it kicks them
out to rerun the vcpu_run path in the s390 code, but the mechanism itself is
expandable and with a new flag we could also add e.g. kicks to userspace etc.
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.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 748fee872323..2072cd4a013e 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h | |||
@@ -20,6 +20,8 @@ | |||
20 | 20 | ||
21 | typedef int (*intercept_handler_t)(struct kvm_vcpu *vcpu); | 21 | typedef int (*intercept_handler_t)(struct kvm_vcpu *vcpu); |
22 | 22 | ||
23 | /* negativ values are error codes, positive values for internal conditions */ | ||
24 | #define SIE_INTERCEPT_RERUNVCPU (1<<0) | ||
23 | int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu); | 25 | int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu); |
24 | 26 | ||
25 | #define VM_EVENT(d_kvm, d_loglevel, d_string, d_args...)\ | 27 | #define VM_EVENT(d_kvm, d_loglevel, d_string, d_args...)\ |
@@ -50,6 +52,7 @@ int kvm_s390_inject_vm(struct kvm *kvm, | |||
50 | int kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu, | 52 | int kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu, |
51 | struct kvm_s390_interrupt *s390int); | 53 | struct kvm_s390_interrupt *s390int); |
52 | int kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code); | 54 | int kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code); |
55 | int kvm_s390_inject_sigp_stop(struct kvm_vcpu *vcpu, int action); | ||
53 | 56 | ||
54 | /* implemented in priv.c */ | 57 | /* implemented in priv.c */ |
55 | int kvm_s390_handle_b2(struct kvm_vcpu *vcpu); | 58 | int kvm_s390_handle_b2(struct kvm_vcpu *vcpu); |