Lines Matching refs:vcpu

23 typedef int (*intercept_handler_t)(struct kvm_vcpu *vcpu);
26 #define IS_TE_ENABLED(vcpu) ((vcpu->arch.sie_block->ecb & 0x10)) argument
28 #define IS_ITDB_VALID(vcpu) ((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1)) argument
44 static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu) in is_vcpu_stopped() argument
46 return atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_STOPPED; in is_vcpu_stopped()
61 static inline u32 kvm_s390_get_prefix(struct kvm_vcpu *vcpu) in kvm_s390_get_prefix() argument
63 return vcpu->arch.sie_block->prefix << GUEST_PREFIX_SHIFT; in kvm_s390_get_prefix()
66 static inline void kvm_s390_set_prefix(struct kvm_vcpu *vcpu, u32 prefix) in kvm_s390_set_prefix() argument
68 vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; in kvm_s390_set_prefix()
69 kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); in kvm_s390_set_prefix()
70 kvm_make_request(KVM_REQ_MMU_RELOAD, vcpu); in kvm_s390_set_prefix()
75 static inline u64 kvm_s390_get_base_disp_s(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_s() argument
77 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_s()
78 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); in kvm_s390_get_base_disp_s()
83 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_s()
86 static inline void kvm_s390_get_base_disp_sse(struct kvm_vcpu *vcpu, in kvm_s390_get_base_disp_sse() argument
90 u32 base1 = (vcpu->arch.sie_block->ipb & 0xf0000000) >> 28; in kvm_s390_get_base_disp_sse()
91 u32 disp1 = (vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16; in kvm_s390_get_base_disp_sse()
92 u32 base2 = (vcpu->arch.sie_block->ipb & 0xf000) >> 12; in kvm_s390_get_base_disp_sse()
93 u32 disp2 = vcpu->arch.sie_block->ipb & 0x0fff; in kvm_s390_get_base_disp_sse()
95 *address1 = (base1 ? vcpu->run->s.regs.gprs[base1] : 0) + disp1; in kvm_s390_get_base_disp_sse()
96 *address2 = (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_sse()
104 static inline void kvm_s390_get_regs_rre(struct kvm_vcpu *vcpu, int *r1, int *r2) in kvm_s390_get_regs_rre() argument
107 *r1 = (vcpu->arch.sie_block->ipb & 0x00f00000) >> 20; in kvm_s390_get_regs_rre()
109 *r2 = (vcpu->arch.sie_block->ipb & 0x000f0000) >> 16; in kvm_s390_get_regs_rre()
112 static inline u64 kvm_s390_get_base_disp_rsy(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_rsy() argument
114 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_rsy()
115 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16) + in kvm_s390_get_base_disp_rsy()
116 ((vcpu->arch.sie_block->ipb & 0xff00) << 4); in kvm_s390_get_base_disp_rsy()
124 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + (long)(int)disp2; in kvm_s390_get_base_disp_rsy()
127 static inline u64 kvm_s390_get_base_disp_rs(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_rs() argument
129 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_rs()
130 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); in kvm_s390_get_base_disp_rs()
135 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_rs()
139 static inline void kvm_s390_set_psw_cc(struct kvm_vcpu *vcpu, unsigned long cc) in kvm_s390_set_psw_cc() argument
141 vcpu->arch.sie_block->gpsw.mask &= ~(3UL << 44); in kvm_s390_set_psw_cc()
142 vcpu->arch.sie_block->gpsw.mask |= cc << 44; in kvm_s390_set_psw_cc()
169 int kvm_s390_handle_wait(struct kvm_vcpu *vcpu);
170 void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu);
172 int __must_check kvm_s390_deliver_pending_interrupts(struct kvm_vcpu *vcpu);
173 void kvm_s390_clear_local_irqs(struct kvm_vcpu *vcpu);
177 int __must_check kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu,
179 int __must_check kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code);
187 void kvm_s390_rewind_psw(struct kvm_vcpu *vcpu, int ilc);
188 int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu);
192 int kvm_s390_handle_b2(struct kvm_vcpu *vcpu);
193 int kvm_s390_handle_e5(struct kvm_vcpu *vcpu);
194 int kvm_s390_handle_01(struct kvm_vcpu *vcpu);
195 int kvm_s390_handle_b9(struct kvm_vcpu *vcpu);
196 int kvm_s390_handle_lpsw(struct kvm_vcpu *vcpu);
197 int kvm_s390_handle_stctl(struct kvm_vcpu *vcpu);
198 int kvm_s390_handle_lctl(struct kvm_vcpu *vcpu);
199 int kvm_s390_handle_eb(struct kvm_vcpu *vcpu);
202 int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu);
203 int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
206 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
207 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
208 int kvm_s390_store_adtl_status_unloaded(struct kvm_vcpu *vcpu,
210 int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
211 int kvm_s390_vcpu_store_adtl_status(struct kvm_vcpu *vcpu, unsigned long addr);
212 void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
213 void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
214 void s390_vcpu_block(struct kvm_vcpu *vcpu);
215 void s390_vcpu_unblock(struct kvm_vcpu *vcpu);
216 void exit_sie(struct kvm_vcpu *vcpu);
217 void exit_sie_sync(struct kvm_vcpu *vcpu);
218 int kvm_s390_vcpu_setup_cmma(struct kvm_vcpu *vcpu);
219 void kvm_s390_vcpu_unsetup_cmma(struct kvm_vcpu *vcpu);
226 int kvm_s390_handle_diag(struct kvm_vcpu *vcpu);
228 int kvm_s390_inject_prog_irq(struct kvm_vcpu *vcpu,
257 static inline int kvm_s390_inject_prog_cond(struct kvm_vcpu *vcpu, int rc) in kvm_s390_inject_prog_cond() argument
261 return kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm); in kvm_s390_inject_prog_cond()
268 int kvm_s390_vcpu_has_irq(struct kvm_vcpu *vcpu, int exclude_stop);
269 int psw_extint_disabled(struct kvm_vcpu *vcpu);
271 int kvm_s390_ext_call_pending(struct kvm_vcpu *vcpu);
273 int kvm_s390_is_stop_irq_pending(struct kvm_vcpu *vcpu);
274 void kvm_s390_clear_stop_irq(struct kvm_vcpu *vcpu);
275 int kvm_s390_set_irq_state(struct kvm_vcpu *vcpu,
277 int kvm_s390_get_irq_state(struct kvm_vcpu *vcpu,
281 void kvm_s390_backup_guest_per_regs(struct kvm_vcpu *vcpu);
282 void kvm_s390_restore_guest_per_regs(struct kvm_vcpu *vcpu);
283 void kvm_s390_patch_guest_per_regs(struct kvm_vcpu *vcpu);
284 int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu,
286 void kvm_s390_clear_bp_data(struct kvm_vcpu *vcpu);
287 void kvm_s390_prepare_debug_exit(struct kvm_vcpu *vcpu);
288 void kvm_s390_handle_per_event(struct kvm_vcpu *vcpu);