/Linux-v5.10/arch/powerpc/kvm/ |
D | booke.c | 64 void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu) in kvmppc_dump_vcpu() argument 68 printk("pc: %08lx msr: %08llx\n", vcpu->arch.regs.nip, in kvmppc_dump_vcpu() 69 vcpu->arch.shared->msr); in kvmppc_dump_vcpu() 70 printk("lr: %08lx ctr: %08lx\n", vcpu->arch.regs.link, in kvmppc_dump_vcpu() 71 vcpu->arch.regs.ctr); in kvmppc_dump_vcpu() 72 printk("srr0: %08llx srr1: %08llx\n", vcpu->arch.shared->srr0, in kvmppc_dump_vcpu() 73 vcpu->arch.shared->srr1); in kvmppc_dump_vcpu() 75 printk("exceptions: %08lx\n", vcpu->arch.pending_exceptions); in kvmppc_dump_vcpu() 79 kvmppc_get_gpr(vcpu, i), in kvmppc_dump_vcpu() 80 kvmppc_get_gpr(vcpu, i+1), in kvmppc_dump_vcpu() [all …]
|
D | book3s_emulate.c | 74 static bool spr_allowed(struct kvm_vcpu *vcpu, enum priv_level level) in spr_allowed() argument 77 if (vcpu->arch.papr_enabled && (level > PRIV_SUPER)) in spr_allowed() 81 if ((kvmppc_get_msr(vcpu) & MSR_PR) && level > PRIV_PROBLEM) in spr_allowed() 88 static inline void kvmppc_copyto_vcpu_tm(struct kvm_vcpu *vcpu) in kvmppc_copyto_vcpu_tm() argument 90 memcpy(&vcpu->arch.gpr_tm[0], &vcpu->arch.regs.gpr[0], in kvmppc_copyto_vcpu_tm() 91 sizeof(vcpu->arch.gpr_tm)); in kvmppc_copyto_vcpu_tm() 92 memcpy(&vcpu->arch.fp_tm, &vcpu->arch.fp, in kvmppc_copyto_vcpu_tm() 94 memcpy(&vcpu->arch.vr_tm, &vcpu->arch.vr, in kvmppc_copyto_vcpu_tm() 96 vcpu->arch.ppr_tm = vcpu->arch.ppr; in kvmppc_copyto_vcpu_tm() 97 vcpu->arch.dscr_tm = vcpu->arch.dscr; in kvmppc_copyto_vcpu_tm() [all …]
|
D | booke_emulate.c | 24 static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfi() argument 26 vcpu->arch.regs.nip = vcpu->arch.shared->srr0; in kvmppc_emul_rfi() 27 kvmppc_set_msr(vcpu, vcpu->arch.shared->srr1); in kvmppc_emul_rfi() 30 static void kvmppc_emul_rfdi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfdi() argument 32 vcpu->arch.regs.nip = vcpu->arch.dsrr0; in kvmppc_emul_rfdi() 33 kvmppc_set_msr(vcpu, vcpu->arch.dsrr1); in kvmppc_emul_rfdi() 36 static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu) in kvmppc_emul_rfci() argument 38 vcpu->arch.regs.nip = vcpu->arch.csrr0; in kvmppc_emul_rfci() 39 kvmppc_set_msr(vcpu, vcpu->arch.csrr1); in kvmppc_emul_rfci() 42 int kvmppc_booke_emulate_op(struct kvm_vcpu *vcpu, in kvmppc_booke_emulate_op() argument [all …]
|
D | book3s_pr.c | 52 static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr, 55 static int kvmppc_handle_fac(struct kvm_vcpu *vcpu, ulong fac); 66 static bool kvmppc_is_split_real(struct kvm_vcpu *vcpu) in kvmppc_is_split_real() argument 68 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_is_split_real() 72 static void kvmppc_fixup_split_real(struct kvm_vcpu *vcpu) in kvmppc_fixup_split_real() argument 74 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_fixup_split_real() 75 ulong pc = kvmppc_get_pc(vcpu); in kvmppc_fixup_split_real() 82 if (vcpu->arch.hflags & BOOK3S_HFLAG_SPLIT_HACK) in kvmppc_fixup_split_real() 89 vcpu->arch.hflags |= BOOK3S_HFLAG_SPLIT_HACK; in kvmppc_fixup_split_real() 90 kvmppc_set_pc(vcpu, pc | SPLIT_HACK_OFFS); in kvmppc_fixup_split_real() [all …]
|
D | book3s.c | 74 static inline void kvmppc_update_int_pending(struct kvm_vcpu *vcpu, in kvmppc_update_int_pending() argument 77 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_update_int_pending() 80 kvmppc_set_int_pending(vcpu, 1); in kvmppc_update_int_pending() 82 kvmppc_set_int_pending(vcpu, 0); in kvmppc_update_int_pending() 85 static inline bool kvmppc_critical_section(struct kvm_vcpu *vcpu) in kvmppc_critical_section() argument 91 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_critical_section() 94 crit_raw = kvmppc_get_critical(vcpu); in kvmppc_critical_section() 95 crit_r1 = kvmppc_get_gpr(vcpu, 1); in kvmppc_critical_section() 98 if (!(kvmppc_get_msr(vcpu) & MSR_SF)) { in kvmppc_critical_section() 106 crit = crit && !(kvmppc_get_msr(vcpu) & MSR_PR); in kvmppc_critical_section() [all …]
|
D | book3s_paired_singles.c | 150 static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt) in kvmppc_sync_qpr() argument 152 kvm_cvt_df(&VCPU_FPR(vcpu, rt), &vcpu->arch.qpr[rt]); in kvmppc_sync_qpr() 155 static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store) in kvmppc_inject_pf() argument 158 u64 msr = kvmppc_get_msr(vcpu); in kvmppc_inject_pf() 162 kvmppc_set_msr(vcpu, msr); in kvmppc_inject_pf() 163 kvmppc_set_dar(vcpu, eaddr); in kvmppc_inject_pf() 168 kvmppc_set_dsisr(vcpu, dsisr); in kvmppc_inject_pf() 169 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_DATA_STORAGE); in kvmppc_inject_pf() 172 static int kvmppc_emulate_fpr_load(struct kvm_vcpu *vcpu, in kvmppc_emulate_fpr_load() argument 184 r = kvmppc_ld(vcpu, &addr, len, tmp, true); in kvmppc_emulate_fpr_load() [all …]
|
D | emulate_loadstore.c | 28 static bool kvmppc_check_fp_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_fp_disabled() argument 30 if (!(kvmppc_get_msr(vcpu) & MSR_FP)) { in kvmppc_check_fp_disabled() 31 kvmppc_core_queue_fpunavail(vcpu); in kvmppc_check_fp_disabled() 40 static bool kvmppc_check_vsx_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_vsx_disabled() argument 42 if (!(kvmppc_get_msr(vcpu) & MSR_VSX)) { in kvmppc_check_vsx_disabled() 43 kvmppc_core_queue_vsx_unavail(vcpu); in kvmppc_check_vsx_disabled() 52 static bool kvmppc_check_altivec_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_altivec_disabled() argument 54 if (!(kvmppc_get_msr(vcpu) & MSR_VEC)) { in kvmppc_check_altivec_disabled() 55 kvmppc_core_queue_vec_unavail(vcpu); in kvmppc_check_altivec_disabled() 72 int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu) in kvmppc_emulate_loadstore() argument [all …]
|
D | powerpc.c | 54 bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu) in kvm_arch_dy_runnable() argument 56 return kvm_arch_vcpu_runnable(vcpu); in kvm_arch_dy_runnable() 59 bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_in_kernel() argument 64 int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_should_kick() argument 78 int kvmppc_prepare_to_enter(struct kvm_vcpu *vcpu) in kvmppc_prepare_to_enter() argument 94 kvmppc_account_exit(vcpu, SIGNAL_EXITS); in kvmppc_prepare_to_enter() 95 vcpu->run->exit_reason = KVM_EXIT_INTR; in kvmppc_prepare_to_enter() 100 vcpu->mode = IN_GUEST_MODE; in kvmppc_prepare_to_enter() 103 * Reading vcpu->requests must happen after setting vcpu->mode, in kvmppc_prepare_to_enter() 108 * to the page tables done while the VCPU is running. in kvmppc_prepare_to_enter() [all …]
|
D | book3s_pr_papr.c | 23 static unsigned long get_pteg_addr(struct kvm_vcpu *vcpu, long pte_index) in get_pteg_addr() argument 25 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu); in get_pteg_addr() 36 static int kvmppc_h_pr_enter(struct kvm_vcpu *vcpu) in kvmppc_h_pr_enter() argument 38 long flags = kvmppc_get_gpr(vcpu, 4); in kvmppc_h_pr_enter() 39 long pte_index = kvmppc_get_gpr(vcpu, 5); in kvmppc_h_pr_enter() 47 pteg_addr = get_pteg_addr(vcpu, pte_index); in kvmppc_h_pr_enter() 49 mutex_lock(&vcpu->kvm->arch.hpt_mutex); in kvmppc_h_pr_enter() 70 hpte[0] = cpu_to_be64(kvmppc_get_gpr(vcpu, 6)); in kvmppc_h_pr_enter() 71 hpte[1] = cpu_to_be64(kvmppc_get_gpr(vcpu, 7)); in kvmppc_h_pr_enter() 76 kvmppc_set_gpr(vcpu, 4, pte_index | i); in kvmppc_h_pr_enter() [all …]
|
D | e500_emulate.c | 51 static int kvmppc_e500_emul_msgclr(struct kvm_vcpu *vcpu, int rb) in kvmppc_e500_emul_msgclr() argument 53 ulong param = vcpu->arch.regs.gpr[rb]; in kvmppc_e500_emul_msgclr() 59 clear_bit(prio, &vcpu->arch.pending_exceptions); in kvmppc_e500_emul_msgclr() 63 static int kvmppc_e500_emul_msgsnd(struct kvm_vcpu *vcpu, int rb) in kvmppc_e500_emul_msgsnd() argument 65 ulong param = vcpu->arch.regs.gpr[rb]; in kvmppc_e500_emul_msgsnd() 74 kvm_for_each_vcpu(i, cvcpu, vcpu->kvm) { in kvmppc_e500_emul_msgsnd() 86 static int kvmppc_e500_emul_ehpriv(struct kvm_vcpu *vcpu, in kvmppc_e500_emul_ehpriv() argument 93 vcpu->run->exit_reason = KVM_EXIT_DEBUG; in kvmppc_e500_emul_ehpriv() 94 vcpu->run->debug.arch.address = vcpu->arch.regs.nip; in kvmppc_e500_emul_ehpriv() 95 vcpu->run->debug.arch.status = 0; in kvmppc_e500_emul_ehpriv() [all …]
|
D | e500mc.c | 27 void kvmppc_set_pending_interrupt(struct kvm_vcpu *vcpu, enum int_class type) in kvmppc_set_pending_interrupt() argument 48 tag = PPC_DBELL_LPID(get_lpid(vcpu)) | vcpu->vcpu_id; in kvmppc_set_pending_interrupt() 73 mtspr(SPRN_MAS5, MAS5_SGS | get_lpid(&vcpu_e500->vcpu)); in kvmppc_e500_tlbil_one() 94 mtspr(SPRN_MAS5, MAS5_SGS | get_lpid(&vcpu_e500->vcpu)); in kvmppc_e500_tlbil_all() 100 void kvmppc_set_pid(struct kvm_vcpu *vcpu, u32 pid) in kvmppc_set_pid() argument 102 vcpu->arch.pid = pid; in kvmppc_set_pid() 105 void kvmppc_mmu_msr_notify(struct kvm_vcpu *vcpu, u32 old_msr) in kvmppc_mmu_msr_notify() argument 112 static void kvmppc_core_vcpu_load_e500mc(struct kvm_vcpu *vcpu, int cpu) in kvmppc_core_vcpu_load_e500mc() argument 114 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_load_e500mc() 116 kvmppc_booke_vcpu_load(vcpu, cpu); in kvmppc_core_vcpu_load_e500mc() [all …]
|
/Linux-v5.10/arch/s390/kvm/ |
D | priv.c | 34 static int handle_ri(struct kvm_vcpu *vcpu) in handle_ri() argument 36 vcpu->stat.instruction_ri++; in handle_ri() 38 if (test_kvm_facility(vcpu->kvm, 64)) { in handle_ri() 39 VCPU_EVENT(vcpu, 3, "%s", "ENABLE: RI (lazy)"); in handle_ri() 40 vcpu->arch.sie_block->ecb3 |= ECB3_RI; in handle_ri() 41 kvm_s390_retry_instr(vcpu); in handle_ri() 44 return kvm_s390_inject_program_int(vcpu, PGM_OPERATION); in handle_ri() 47 int kvm_s390_handle_aa(struct kvm_vcpu *vcpu) in kvm_s390_handle_aa() argument 49 if ((vcpu->arch.sie_block->ipa & 0xf) <= 4) in kvm_s390_handle_aa() 50 return handle_ri(vcpu); in kvm_s390_handle_aa() [all …]
|
D | intercept.c | 25 u8 kvm_s390_get_ilen(struct kvm_vcpu *vcpu) in kvm_s390_get_ilen() argument 27 struct kvm_s390_sie_block *sie_block = vcpu->arch.sie_block; in kvm_s390_get_ilen() 30 switch (vcpu->arch.sie_block->icptcode) { in kvm_s390_get_ilen() 37 ilen = insn_length(vcpu->arch.sie_block->ipa >> 8); in kvm_s390_get_ilen() 47 ilen = vcpu->arch.sie_block->pgmilc & 0x6; in kvm_s390_get_ilen() 53 static int handle_stop(struct kvm_vcpu *vcpu) in handle_stop() argument 55 struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; in handle_stop() 59 vcpu->stat.exit_stop_request++; in handle_stop() 62 if (kvm_s390_vcpu_has_irq(vcpu, 1)) in handle_stop() 68 stop_pending = kvm_s390_is_stop_irq_pending(vcpu); in handle_stop() [all …]
|
D | kvm-s390.h | 24 #define IS_TE_ENABLED(vcpu) ((vcpu->arch.sie_block->ecb & ECB_TE)) argument 26 #define IS_ITDB_VALID(vcpu) ((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1)) argument 60 static inline void kvm_s390_set_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_set_cpuflags() argument 62 atomic_or(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_set_cpuflags() 65 static inline void kvm_s390_clear_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_clear_cpuflags() argument 67 atomic_andnot(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_clear_cpuflags() 70 static inline bool kvm_s390_test_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_test_cpuflags() argument 72 return (atomic_read(&vcpu->arch.sie_block->cpuflags) & flags) == flags; in kvm_s390_test_cpuflags() 75 static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu) in is_vcpu_stopped() argument 77 return kvm_s390_test_cpuflags(vcpu, CPUSTAT_STOPPED); in is_vcpu_stopped() [all …]
|
D | diag.c | 20 static int diag_release_pages(struct kvm_vcpu *vcpu) in diag_release_pages() argument 23 unsigned long prefix = kvm_s390_get_prefix(vcpu); in diag_release_pages() 25 start = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in diag_release_pages() 26 end = vcpu->run->s.regs.gprs[vcpu->arch.sie_block->ipa & 0xf] + PAGE_SIZE; in diag_release_pages() 27 vcpu->stat.diagnose_10++; in diag_release_pages() 31 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION); in diag_release_pages() 33 VCPU_EVENT(vcpu, 5, "diag release pages %lX %lX", start, end); in diag_release_pages() 40 gmap_discard(vcpu->arch.gmap, start, end); in diag_release_pages() 48 gmap_discard(vcpu->arch.gmap, start, prefix); in diag_release_pages() 50 gmap_discard(vcpu->arch.gmap, 0, PAGE_SIZE); in diag_release_pages() [all …]
|
D | guestdbg.c | 59 static void enable_all_hw_bp(struct kvm_vcpu *vcpu) in enable_all_hw_bp() argument 62 u64 *cr9 = &vcpu->arch.sie_block->gcr[9]; in enable_all_hw_bp() 63 u64 *cr10 = &vcpu->arch.sie_block->gcr[10]; in enable_all_hw_bp() 64 u64 *cr11 = &vcpu->arch.sie_block->gcr[11]; in enable_all_hw_bp() 67 if (vcpu->arch.guestdbg.nr_hw_bp <= 0 || in enable_all_hw_bp() 68 vcpu->arch.guestdbg.hw_bp_info == NULL) in enable_all_hw_bp() 79 for (i = 0; i < vcpu->arch.guestdbg.nr_hw_bp; i++) { in enable_all_hw_bp() 80 start = vcpu->arch.guestdbg.hw_bp_info[i].addr; in enable_all_hw_bp() 81 len = vcpu->arch.guestdbg.hw_bp_info[i].len; in enable_all_hw_bp() 99 static void enable_all_hw_wp(struct kvm_vcpu *vcpu) in enable_all_hw_wp() argument [all …]
|
D | sigp.c | 20 static int __sigp_sense(struct kvm_vcpu *vcpu, struct kvm_vcpu *dst_vcpu, in __sigp_sense() argument 39 VCPU_EVENT(vcpu, 4, "sensed status of cpu %x rc %x", dst_vcpu->vcpu_id, in __sigp_sense() 44 static int __inject_sigp_emergency(struct kvm_vcpu *vcpu, in __inject_sigp_emergency() argument 49 .u.emerg.code = vcpu->vcpu_id, in __inject_sigp_emergency() 55 VCPU_EVENT(vcpu, 4, "sent sigp emerg to cpu %x", in __inject_sigp_emergency() 61 static int __sigp_emergency(struct kvm_vcpu *vcpu, struct kvm_vcpu *dst_vcpu) in __sigp_emergency() argument 63 return __inject_sigp_emergency(vcpu, dst_vcpu); in __sigp_emergency() 66 static int __sigp_conditional_emergency(struct kvm_vcpu *vcpu, in __sigp_conditional_emergency() argument 75 idle = is_vcpu_idle(vcpu); in __sigp_conditional_emergency() 81 if (!is_vcpu_stopped(vcpu) in __sigp_conditional_emergency() [all …]
|
/Linux-v5.10/arch/arm64/include/asm/ |
D | kvm_emulate.h | 24 unsigned long *vcpu_reg32(const struct kvm_vcpu *vcpu, u8 reg_num); 25 unsigned long vcpu_read_spsr32(const struct kvm_vcpu *vcpu); 26 void vcpu_write_spsr32(struct kvm_vcpu *vcpu, unsigned long v); 28 bool kvm_condition_valid32(const struct kvm_vcpu *vcpu); 29 void kvm_skip_instr32(struct kvm_vcpu *vcpu, bool is_wide_instr); 31 void kvm_inject_undefined(struct kvm_vcpu *vcpu); 32 void kvm_inject_vabt(struct kvm_vcpu *vcpu); 33 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr); 34 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr); 35 void kvm_inject_undef32(struct kvm_vcpu *vcpu); [all …]
|
/Linux-v5.10/arch/x86/kvm/ |
D | x86.c | 88 ((struct kvm_vcpu *)(ctxt)->vcpu) 106 static void update_cr8_intercept(struct kvm_vcpu *vcpu); 107 static void process_nmi(struct kvm_vcpu *vcpu); 108 static void enter_smm(struct kvm_vcpu *vcpu); 109 static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags); 110 static void store_regs(struct kvm_vcpu *vcpu); 111 static int sync_regs(struct kvm_vcpu *vcpu); 260 static bool kvm_msr_ignored_check(struct kvm_vcpu *vcpu, u32 msr, in kvm_msr_ignored_check() argument 291 static inline void kvm_async_pf_hash_reset(struct kvm_vcpu *vcpu) in kvm_async_pf_hash_reset() argument 295 vcpu->arch.apf.gfns[i] = ~0; in kvm_async_pf_hash_reset() [all …]
|
D | kvm_cache_regs.h | 13 static __always_inline unsigned long kvm_##lname##_read(struct kvm_vcpu *vcpu)\ 15 return vcpu->arch.regs[VCPU_REGS_##uname]; \ 17 static __always_inline void kvm_##lname##_write(struct kvm_vcpu *vcpu, \ 20 vcpu->arch.regs[VCPU_REGS_##uname] = val; \ 40 static inline bool kvm_register_is_available(struct kvm_vcpu *vcpu, in BUILD_KVM_GPR_ACCESSORS() 43 return test_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); in BUILD_KVM_GPR_ACCESSORS() 46 static inline bool kvm_register_is_dirty(struct kvm_vcpu *vcpu, in kvm_register_is_dirty() argument 49 return test_bit(reg, (unsigned long *)&vcpu->arch.regs_dirty); in kvm_register_is_dirty() 52 static inline void kvm_register_mark_available(struct kvm_vcpu *vcpu, in kvm_register_mark_available() argument 55 __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); in kvm_register_mark_available() [all …]
|
D | x86.h | 50 static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu) in kvm_clear_exception_queue() argument 52 vcpu->arch.exception.pending = false; in kvm_clear_exception_queue() 53 vcpu->arch.exception.injected = false; in kvm_clear_exception_queue() 56 static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector, in kvm_queue_interrupt() argument 59 vcpu->arch.interrupt.injected = true; in kvm_queue_interrupt() 60 vcpu->arch.interrupt.soft = soft; in kvm_queue_interrupt() 61 vcpu->arch.interrupt.nr = vector; in kvm_queue_interrupt() 64 static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu) in kvm_clear_interrupt_queue() argument 66 vcpu->arch.interrupt.injected = false; in kvm_clear_interrupt_queue() 69 static inline bool kvm_event_needs_reinjection(struct kvm_vcpu *vcpu) in kvm_event_needs_reinjection() argument [all …]
|
D | lapic.h | 49 struct kvm_vcpu *vcpu; member 71 int kvm_create_lapic(struct kvm_vcpu *vcpu, int timer_advance_ns); 72 void kvm_free_lapic(struct kvm_vcpu *vcpu); 74 int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu); 75 int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu); 76 int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu); 77 void kvm_apic_accept_events(struct kvm_vcpu *vcpu); 78 void kvm_lapic_reset(struct kvm_vcpu *vcpu, bool init_event); 79 u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu); 80 void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8); [all …]
|
/Linux-v5.10/arch/arm64/kvm/ |
D | pmu-emul.c | 17 static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx); 18 static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx); 19 static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc); 40 * @vcpu: The vcpu pointer 43 static bool kvm_pmu_idx_is_64bit(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_idx_is_64bit() argument 46 __vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_LC); in kvm_pmu_idx_is_64bit() 66 struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc); in kvm_pmu_pmc_is_chained() local 68 return test_bit(pmc->idx >> 1, vcpu->arch.pmu.chained); in kvm_pmu_pmc_is_chained() 105 * @vcpu: The vcpu pointer 108 static bool kvm_pmu_idx_has_chain_evtype(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_idx_has_chain_evtype() argument [all …]
|
D | arch_timer.c | 43 static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level, 46 static void kvm_arm_timer_write(struct kvm_vcpu *vcpu, 50 static u64 kvm_arm_timer_read(struct kvm_vcpu *vcpu, 56 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_get_ctl() local 60 return __vcpu_sys_reg(vcpu, CNTV_CTL_EL0); in timer_get_ctl() 62 return __vcpu_sys_reg(vcpu, CNTP_CTL_EL0); in timer_get_ctl() 71 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_get_cval() local 75 return __vcpu_sys_reg(vcpu, CNTV_CVAL_EL0); in timer_get_cval() 77 return __vcpu_sys_reg(vcpu, CNTP_CVAL_EL0); in timer_get_cval() 86 struct kvm_vcpu *vcpu = ctxt->vcpu; in timer_get_offset() local [all …]
|
/Linux-v5.10/arch/mips/kvm/ |
D | emulate.c | 41 static int kvm_compute_return_epc(struct kvm_vcpu *vcpu, unsigned long instpc, in kvm_compute_return_epc() argument 46 struct kvm_vcpu_arch *arch = &vcpu->arch; in kvm_compute_return_epc() 57 err = kvm_get_badinstrp((u32 *)epc, vcpu, &insn.word); in kvm_compute_return_epc() 244 enum emulation_result update_pc(struct kvm_vcpu *vcpu, u32 cause) in update_pc() argument 249 err = kvm_compute_return_epc(vcpu, vcpu->arch.pc, in update_pc() 250 &vcpu->arch.pc); in update_pc() 254 vcpu->arch.pc += 4; in update_pc() 257 kvm_debug("update_pc(): New PC: %#lx\n", vcpu->arch.pc); in update_pc() 265 * @vcpu: KVM VCPU information. 273 int kvm_get_badinstr(u32 *opc, struct kvm_vcpu *vcpu, u32 *out) in kvm_get_badinstr() argument [all …]
|