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
51 static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu) in is_vcpu_stopped() argument
53 return atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_STOPPED; in is_vcpu_stopped()
68 static inline u32 kvm_s390_get_prefix(struct kvm_vcpu *vcpu) in kvm_s390_get_prefix() argument
70 return vcpu->arch.sie_block->prefix << GUEST_PREFIX_SHIFT; in kvm_s390_get_prefix()
73 static inline void kvm_s390_set_prefix(struct kvm_vcpu *vcpu, u32 prefix) in kvm_s390_set_prefix() argument
75 VCPU_EVENT(vcpu, 3, "set prefix of cpu %03u to 0x%x", vcpu->vcpu_id, in kvm_s390_set_prefix()
77 vcpu->arch.sie_block->prefix = prefix >> GUEST_PREFIX_SHIFT; in kvm_s390_set_prefix()
78 kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); in kvm_s390_set_prefix()
79 kvm_make_request(KVM_REQ_MMU_RELOAD, vcpu); in kvm_s390_set_prefix()
84 static inline u64 kvm_s390_get_base_disp_s(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_s() argument
86 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_s()
87 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); in kvm_s390_get_base_disp_s()
92 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_s()
95 static inline void kvm_s390_get_base_disp_sse(struct kvm_vcpu *vcpu, in kvm_s390_get_base_disp_sse() argument
99 u32 base1 = (vcpu->arch.sie_block->ipb & 0xf0000000) >> 28; in kvm_s390_get_base_disp_sse()
100 u32 disp1 = (vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16; in kvm_s390_get_base_disp_sse()
101 u32 base2 = (vcpu->arch.sie_block->ipb & 0xf000) >> 12; in kvm_s390_get_base_disp_sse()
102 u32 disp2 = vcpu->arch.sie_block->ipb & 0x0fff; in kvm_s390_get_base_disp_sse()
104 *address1 = (base1 ? vcpu->run->s.regs.gprs[base1] : 0) + disp1; in kvm_s390_get_base_disp_sse()
105 *address2 = (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_sse()
113 static inline void kvm_s390_get_regs_rre(struct kvm_vcpu *vcpu, int *r1, int *r2) in kvm_s390_get_regs_rre() argument
116 *r1 = (vcpu->arch.sie_block->ipb & 0x00f00000) >> 20; in kvm_s390_get_regs_rre()
118 *r2 = (vcpu->arch.sie_block->ipb & 0x000f0000) >> 16; in kvm_s390_get_regs_rre()
121 static inline u64 kvm_s390_get_base_disp_rsy(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_rsy() argument
123 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_rsy()
124 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16) + in kvm_s390_get_base_disp_rsy()
125 ((vcpu->arch.sie_block->ipb & 0xff00) << 4); in kvm_s390_get_base_disp_rsy()
133 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + (long)(int)disp2; in kvm_s390_get_base_disp_rsy()
136 static inline u64 kvm_s390_get_base_disp_rs(struct kvm_vcpu *vcpu, ar_t *ar) in kvm_s390_get_base_disp_rs() argument
138 u32 base2 = vcpu->arch.sie_block->ipb >> 28; in kvm_s390_get_base_disp_rs()
139 u32 disp2 = ((vcpu->arch.sie_block->ipb & 0x0fff0000) >> 16); in kvm_s390_get_base_disp_rs()
144 return (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; in kvm_s390_get_base_disp_rs()
148 static inline void kvm_s390_set_psw_cc(struct kvm_vcpu *vcpu, unsigned long cc) in kvm_s390_set_psw_cc() argument
150 vcpu->arch.sie_block->gpsw.mask &= ~(3UL << 44); in kvm_s390_set_psw_cc()
151 vcpu->arch.sie_block->gpsw.mask |= cc << 44; in kvm_s390_set_psw_cc()
179 int kvm_s390_handle_wait(struct kvm_vcpu *vcpu);
180 void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu);
182 int __must_check kvm_s390_deliver_pending_interrupts(struct kvm_vcpu *vcpu);
183 void kvm_s390_clear_local_irqs(struct kvm_vcpu *vcpu);
187 int __must_check kvm_s390_inject_vcpu(struct kvm_vcpu *vcpu,
189 static inline int kvm_s390_inject_prog_irq(struct kvm_vcpu *vcpu, in kvm_s390_inject_prog_irq() argument
197 return kvm_s390_inject_vcpu(vcpu, &irq); in kvm_s390_inject_prog_irq()
199 static inline int kvm_s390_inject_program_int(struct kvm_vcpu *vcpu, u16 code) in kvm_s390_inject_program_int() argument
206 return kvm_s390_inject_vcpu(vcpu, &irq); in kvm_s390_inject_program_int()
215 void kvm_s390_rewind_psw(struct kvm_vcpu *vcpu, int ilc);
216 int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu);
220 int kvm_s390_handle_b2(struct kvm_vcpu *vcpu);
221 int kvm_s390_handle_e5(struct kvm_vcpu *vcpu);
222 int kvm_s390_handle_01(struct kvm_vcpu *vcpu);
223 int kvm_s390_handle_b9(struct kvm_vcpu *vcpu);
224 int kvm_s390_handle_lpsw(struct kvm_vcpu *vcpu);
225 int kvm_s390_handle_stctl(struct kvm_vcpu *vcpu);
226 int kvm_s390_handle_lctl(struct kvm_vcpu *vcpu);
227 int kvm_s390_handle_eb(struct kvm_vcpu *vcpu);
230 int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu);
231 int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
235 long kvm_arch_fault_in_page(struct kvm_vcpu *vcpu, gpa_t gpa, int writable);
236 int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
237 int kvm_s390_store_adtl_status_unloaded(struct kvm_vcpu *vcpu,
239 int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
240 int kvm_s390_vcpu_store_adtl_status(struct kvm_vcpu *vcpu, unsigned long addr);
241 void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
242 void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
243 void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu);
244 void kvm_s390_vcpu_unblock(struct kvm_vcpu *vcpu);
245 void exit_sie(struct kvm_vcpu *vcpu);
246 void kvm_s390_sync_request(int req, struct kvm_vcpu *vcpu);
247 int kvm_s390_vcpu_setup_cmma(struct kvm_vcpu *vcpu);
248 void kvm_s390_vcpu_unsetup_cmma(struct kvm_vcpu *vcpu);
253 int kvm_s390_handle_diag(struct kvm_vcpu *vcpu);
258 struct kvm_vcpu *vcpu; in kvm_s390_vcpu_block_all() local
261 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_s390_vcpu_block_all()
262 kvm_s390_vcpu_block(vcpu); in kvm_s390_vcpu_block_all()
268 struct kvm_vcpu *vcpu; in kvm_s390_vcpu_unblock_all() local
270 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_s390_vcpu_unblock_all()
271 kvm_s390_vcpu_unblock(vcpu); in kvm_s390_vcpu_unblock_all()
310 static inline int kvm_s390_inject_prog_cond(struct kvm_vcpu *vcpu, int rc) in kvm_s390_inject_prog_cond() argument
314 return kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm); in kvm_s390_inject_prog_cond()
321 int kvm_s390_vcpu_has_irq(struct kvm_vcpu *vcpu, int exclude_stop);
322 int psw_extint_disabled(struct kvm_vcpu *vcpu);
324 int kvm_s390_ext_call_pending(struct kvm_vcpu *vcpu);
326 int kvm_s390_is_stop_irq_pending(struct kvm_vcpu *vcpu);
327 void kvm_s390_clear_stop_irq(struct kvm_vcpu *vcpu);
328 int kvm_s390_set_irq_state(struct kvm_vcpu *vcpu,
330 int kvm_s390_get_irq_state(struct kvm_vcpu *vcpu,
334 void kvm_s390_backup_guest_per_regs(struct kvm_vcpu *vcpu);
335 void kvm_s390_restore_guest_per_regs(struct kvm_vcpu *vcpu);
336 void kvm_s390_patch_guest_per_regs(struct kvm_vcpu *vcpu);
337 int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu,
339 void kvm_s390_clear_bp_data(struct kvm_vcpu *vcpu);
340 void kvm_s390_prepare_debug_exit(struct kvm_vcpu *vcpu);
341 void kvm_s390_handle_per_event(struct kvm_vcpu *vcpu);