diff options
Diffstat (limited to 'arch/s390/kvm/kvm-s390.h')
-rw-r--r-- | arch/s390/kvm/kvm-s390.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 99b0b7597115..ff28f9d1c9eb 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h | |||
@@ -26,6 +26,7 @@ typedef int (*intercept_handler_t)(struct kvm_vcpu *vcpu); | |||
26 | 26 | ||
27 | /* negativ values are error codes, positive values for internal conditions */ | 27 | /* negativ values are error codes, positive values for internal conditions */ |
28 | #define SIE_INTERCEPT_RERUNVCPU (1<<0) | 28 | #define SIE_INTERCEPT_RERUNVCPU (1<<0) |
29 | #define SIE_INTERCEPT_UCONTROL (1<<1) | ||
29 | int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu); | 30 | int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu); |
30 | 31 | ||
31 | #define VM_EVENT(d_kvm, d_loglevel, d_string, d_args...)\ | 32 | #define VM_EVENT(d_kvm, d_loglevel, d_string, d_args...)\ |
@@ -47,6 +48,23 @@ static inline int __cpu_is_stopped(struct kvm_vcpu *vcpu) | |||
47 | return atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_STOP_INT; | 48 | return atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_STOP_INT; |
48 | } | 49 | } |
49 | 50 | ||
51 | static inline int kvm_is_ucontrol(struct kvm *kvm) | ||
52 | { | ||
53 | #ifdef CONFIG_KVM_S390_UCONTROL | ||
54 | if (kvm->arch.gmap) | ||
55 | return 0; | ||
56 | return 1; | ||
57 | #else | ||
58 | return 0; | ||
59 | #endif | ||
60 | } | ||
61 | |||
62 | static inline void kvm_s390_set_prefix(struct kvm_vcpu *vcpu, u32 prefix) | ||
63 | { | ||
64 | vcpu->arch.sie_block->prefix = prefix & 0x7fffe000u; | ||
65 | vcpu->arch.sie_block->ihcpu = 0xffff; | ||
66 | } | ||
67 | |||
50 | int kvm_s390_handle_wait(struct kvm_vcpu *vcpu); | 68 | int kvm_s390_handle_wait(struct kvm_vcpu *vcpu); |
51 | enum hrtimer_restart kvm_s390_idle_wakeup(struct hrtimer *timer); | 69 | enum hrtimer_restart kvm_s390_idle_wakeup(struct hrtimer *timer); |
52 | void kvm_s390_tasklet(unsigned long parm); | 70 | void kvm_s390_tasklet(unsigned long parm); |