/Linux-v4.19/arch/arm64/include/asm/ |
D | kvm_emulate.h | 35 unsigned long *vcpu_reg32(const struct kvm_vcpu *vcpu, u8 reg_num); 36 unsigned long vcpu_read_spsr32(const struct kvm_vcpu *vcpu); 37 void vcpu_write_spsr32(struct kvm_vcpu *vcpu, unsigned long v); 39 bool kvm_condition_valid32(const struct kvm_vcpu *vcpu); 40 void kvm_skip_instr32(struct kvm_vcpu *vcpu, bool is_wide_instr); 42 void kvm_inject_undefined(struct kvm_vcpu *vcpu); 43 void kvm_inject_vabt(struct kvm_vcpu *vcpu); 44 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr); 45 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr); 46 void kvm_inject_undef32(struct kvm_vcpu *vcpu); [all …]
|
/Linux-v4.19/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 | diag.c | 21 static int diag_release_pages(struct kvm_vcpu *vcpu) in diag_release_pages() argument 24 unsigned long prefix = kvm_s390_get_prefix(vcpu); in diag_release_pages() 26 start = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in diag_release_pages() 27 end = vcpu->run->s.regs.gprs[vcpu->arch.sie_block->ipa & 0xf] + PAGE_SIZE; in diag_release_pages() 28 vcpu->stat.diagnose_10++; in diag_release_pages() 32 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION); in diag_release_pages() 34 VCPU_EVENT(vcpu, 5, "diag release pages %lX %lX", start, end); in diag_release_pages() 41 gmap_discard(vcpu->arch.gmap, start, end); in diag_release_pages() 49 gmap_discard(vcpu->arch.gmap, start, prefix); in diag_release_pages() 51 gmap_discard(vcpu->arch.gmap, 0, PAGE_SIZE); in diag_release_pages() [all …]
|
D | kvm-s390.h | 23 #define IS_TE_ENABLED(vcpu) ((vcpu->arch.sie_block->ecb & ECB_TE)) argument 25 #define IS_ITDB_VALID(vcpu) ((*(char *)vcpu->arch.sie_block->itdba == TDB_FORMAT1)) argument 48 static inline void kvm_s390_set_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_set_cpuflags() argument 50 atomic_or(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_set_cpuflags() 53 static inline void kvm_s390_clear_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_clear_cpuflags() argument 55 atomic_andnot(flags, &vcpu->arch.sie_block->cpuflags); in kvm_s390_clear_cpuflags() 58 static inline bool kvm_s390_test_cpuflags(struct kvm_vcpu *vcpu, u32 flags) in kvm_s390_test_cpuflags() argument 60 return (atomic_read(&vcpu->arch.sie_block->cpuflags) & flags) == flags; in kvm_s390_test_cpuflags() 63 static inline int is_vcpu_stopped(struct kvm_vcpu *vcpu) in is_vcpu_stopped() argument 65 return kvm_s390_test_cpuflags(vcpu, CPUSTAT_STOPPED); in is_vcpu_stopped() [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 …]
|
/Linux-v4.19/arch/arm/include/asm/ |
D | kvm_emulate.h | 37 unsigned long *vcpu_reg(struct kvm_vcpu *vcpu, u8 reg_num); 39 static inline unsigned long *vcpu_reg32(struct kvm_vcpu *vcpu, u8 reg_num) in vcpu_reg32() argument 41 return vcpu_reg(vcpu, reg_num); in vcpu_reg32() 44 unsigned long *__vcpu_spsr(struct kvm_vcpu *vcpu); 46 static inline unsigned long vpcu_read_spsr(struct kvm_vcpu *vcpu) in vpcu_read_spsr() argument 48 return *__vcpu_spsr(vcpu); in vpcu_read_spsr() 51 static inline void vcpu_write_spsr(struct kvm_vcpu *vcpu, unsigned long v) in vcpu_write_spsr() argument 53 *__vcpu_spsr(vcpu) = v; in vcpu_write_spsr() 56 static inline unsigned long vcpu_get_reg(struct kvm_vcpu *vcpu, in vcpu_get_reg() argument 59 return *vcpu_reg(vcpu, reg_num); in vcpu_get_reg() [all …]
|
/Linux-v4.19/arch/powerpc/kvm/ |
D | booke_emulate.c | 35 static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfi() argument 37 vcpu->arch.regs.nip = vcpu->arch.shared->srr0; in kvmppc_emul_rfi() 38 kvmppc_set_msr(vcpu, vcpu->arch.shared->srr1); in kvmppc_emul_rfi() 41 static void kvmppc_emul_rfdi(struct kvm_vcpu *vcpu) in kvmppc_emul_rfdi() argument 43 vcpu->arch.regs.nip = vcpu->arch.dsrr0; in kvmppc_emul_rfdi() 44 kvmppc_set_msr(vcpu, vcpu->arch.dsrr1); in kvmppc_emul_rfdi() 47 static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu) in kvmppc_emul_rfci() argument 49 vcpu->arch.regs.nip = vcpu->arch.csrr0; in kvmppc_emul_rfci() 50 kvmppc_set_msr(vcpu, vcpu->arch.csrr1); in kvmppc_emul_rfci() 53 int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_booke_emulate_op() argument [all …]
|
D | booke.c | 76 void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu) in kvmppc_dump_vcpu() argument 80 printk("pc: %08lx msr: %08llx\n", vcpu->arch.regs.nip, in kvmppc_dump_vcpu() 81 vcpu->arch.shared->msr); in kvmppc_dump_vcpu() 82 printk("lr: %08lx ctr: %08lx\n", vcpu->arch.regs.link, in kvmppc_dump_vcpu() 83 vcpu->arch.regs.ctr); in kvmppc_dump_vcpu() 84 printk("srr0: %08llx srr1: %08llx\n", vcpu->arch.shared->srr0, in kvmppc_dump_vcpu() 85 vcpu->arch.shared->srr1); in kvmppc_dump_vcpu() 87 printk("exceptions: %08lx\n", vcpu->arch.pending_exceptions); in kvmppc_dump_vcpu() 91 kvmppc_get_gpr(vcpu, i), in kvmppc_dump_vcpu() 92 kvmppc_get_gpr(vcpu, i+1), in kvmppc_dump_vcpu() [all …]
|
D | book3s_emulate.c | 85 static bool spr_allowed(struct kvm_vcpu *vcpu, enum priv_level level) in spr_allowed() argument 88 if (vcpu->arch.papr_enabled && (level > PRIV_SUPER)) in spr_allowed() 92 if ((kvmppc_get_msr(vcpu) & MSR_PR) && level > PRIV_PROBLEM) in spr_allowed() 99 static inline void kvmppc_copyto_vcpu_tm(struct kvm_vcpu *vcpu) in kvmppc_copyto_vcpu_tm() argument 101 memcpy(&vcpu->arch.gpr_tm[0], &vcpu->arch.regs.gpr[0], in kvmppc_copyto_vcpu_tm() 102 sizeof(vcpu->arch.gpr_tm)); in kvmppc_copyto_vcpu_tm() 103 memcpy(&vcpu->arch.fp_tm, &vcpu->arch.fp, in kvmppc_copyto_vcpu_tm() 105 memcpy(&vcpu->arch.vr_tm, &vcpu->arch.vr, in kvmppc_copyto_vcpu_tm() 107 vcpu->arch.ppr_tm = vcpu->arch.ppr; in kvmppc_copyto_vcpu_tm() 108 vcpu->arch.dscr_tm = vcpu->arch.dscr; in kvmppc_copyto_vcpu_tm() [all …]
|
D | book3s_pr.c | 55 static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr, 58 static int kvmppc_handle_fac(struct kvm_vcpu *vcpu, ulong fac); 69 static bool kvmppc_is_split_real(struct kvm_vcpu *vcpu) in kvmppc_is_split_real() argument 71 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_is_split_real() 75 static void kvmppc_fixup_split_real(struct kvm_vcpu *vcpu) in kvmppc_fixup_split_real() argument 77 ulong msr = kvmppc_get_msr(vcpu); in kvmppc_fixup_split_real() 78 ulong pc = kvmppc_get_pc(vcpu); in kvmppc_fixup_split_real() 85 if (vcpu->arch.hflags & BOOK3S_HFLAG_SPLIT_HACK) in kvmppc_fixup_split_real() 92 vcpu->arch.hflags |= BOOK3S_HFLAG_SPLIT_HACK; in kvmppc_fixup_split_real() 93 kvmppc_set_pc(vcpu, pc | SPLIT_HACK_OFFS); in kvmppc_fixup_split_real() [all …]
|
D | emulate_loadstore.c | 39 static bool kvmppc_check_fp_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_fp_disabled() argument 41 if (!(kvmppc_get_msr(vcpu) & MSR_FP)) { in kvmppc_check_fp_disabled() 42 kvmppc_core_queue_fpunavail(vcpu); in kvmppc_check_fp_disabled() 51 static bool kvmppc_check_vsx_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_vsx_disabled() argument 53 if (!(kvmppc_get_msr(vcpu) & MSR_VSX)) { in kvmppc_check_vsx_disabled() 54 kvmppc_core_queue_vsx_unavail(vcpu); in kvmppc_check_vsx_disabled() 63 static bool kvmppc_check_altivec_disabled(struct kvm_vcpu *vcpu) in kvmppc_check_altivec_disabled() argument 65 if (!(kvmppc_get_msr(vcpu) & MSR_VEC)) { in kvmppc_check_altivec_disabled() 66 kvmppc_core_queue_vec_unavail(vcpu); in kvmppc_check_altivec_disabled() 83 int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu) in kvmppc_emulate_loadstore() argument [all …]
|
D | book3s.c | 77 void kvmppc_unfixup_split_real(struct kvm_vcpu *vcpu) in kvmppc_unfixup_split_real() argument 79 if (vcpu->arch.hflags & BOOK3S_HFLAG_SPLIT_HACK) { in kvmppc_unfixup_split_real() 80 ulong pc = kvmppc_get_pc(vcpu); in kvmppc_unfixup_split_real() 82 kvmppc_set_pc(vcpu, pc & ~SPLIT_HACK_MASK); in kvmppc_unfixup_split_real() 83 vcpu->arch.hflags &= ~BOOK3S_HFLAG_SPLIT_HACK; in kvmppc_unfixup_split_real() 88 static inline unsigned long kvmppc_interrupt_offset(struct kvm_vcpu *vcpu) in kvmppc_interrupt_offset() argument 90 if (!is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_interrupt_offset() 91 return to_book3s(vcpu)->hior; in kvmppc_interrupt_offset() 95 static inline void kvmppc_update_int_pending(struct kvm_vcpu *vcpu, in kvmppc_update_int_pending() argument 98 if (is_kvmppc_hv_enabled(vcpu->kvm)) in kvmppc_update_int_pending() [all …]
|
D | book3s_paired_singles.c | 161 static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt) in kvmppc_sync_qpr() argument 163 kvm_cvt_df(&VCPU_FPR(vcpu, rt), &vcpu->arch.qpr[rt]); in kvmppc_sync_qpr() 166 static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store) in kvmppc_inject_pf() argument 169 u64 msr = kvmppc_get_msr(vcpu); in kvmppc_inject_pf() 173 kvmppc_set_msr(vcpu, msr); in kvmppc_inject_pf() 174 kvmppc_set_dar(vcpu, eaddr); in kvmppc_inject_pf() 179 kvmppc_set_dsisr(vcpu, dsisr); in kvmppc_inject_pf() 180 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_DATA_STORAGE); in kvmppc_inject_pf() 183 static int kvmppc_emulate_fpr_load(struct kvm_run *run, struct kvm_vcpu *vcpu, in kvmppc_emulate_fpr_load() argument 195 r = kvmppc_ld(vcpu, &addr, len, tmp, true); in kvmppc_emulate_fpr_load() [all …]
|
D | book3s_hv_tm.c | 17 static void emulate_tx_failure(struct kvm_vcpu *vcpu, u64 failure_cause) in emulate_tx_failure() argument 20 u64 msr = vcpu->arch.shregs.msr; in emulate_tx_failure() 22 tfiar = vcpu->arch.regs.nip & ~0x3ull; in emulate_tx_failure() 24 if (MSR_TM_SUSPENDED(vcpu->arch.shregs.msr)) in emulate_tx_failure() 30 vcpu->arch.tfiar = tfiar; in emulate_tx_failure() 32 vcpu->arch.texasr = (vcpu->arch.texasr & 0x3ffffff) | texasr; in emulate_tx_failure() 43 int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu) in kvmhv_p9_tm_emulation() argument 45 u32 instr = vcpu->arch.emul_inst; in kvmhv_p9_tm_emulation() 46 u64 msr = vcpu->arch.shregs.msr; in kvmhv_p9_tm_emulation() 53 newmsr = vcpu->arch.shregs.srr1; in kvmhv_p9_tm_emulation() [all …]
|
/Linux-v4.19/arch/arm64/kvm/hyp/ |
D | switch.c | 37 static bool __hyp_text update_fp_enabled(struct kvm_vcpu *vcpu) in update_fp_enabled() argument 39 if (vcpu->arch.host_thread_info->flags & _TIF_FOREIGN_FPSTATE) in update_fp_enabled() 40 vcpu->arch.flags &= ~(KVM_ARM64_FP_ENABLED | in update_fp_enabled() 43 return !!(vcpu->arch.flags & KVM_ARM64_FP_ENABLED); in update_fp_enabled() 47 static void __hyp_text __fpsimd_save_fpexc32(struct kvm_vcpu *vcpu) in __fpsimd_save_fpexc32() argument 49 if (!vcpu_el1_is_32bit(vcpu)) in __fpsimd_save_fpexc32() 52 vcpu->arch.ctxt.sys_regs[FPEXC32_EL2] = read_sysreg(fpexc32_el2); in __fpsimd_save_fpexc32() 55 static void __hyp_text __activate_traps_fpsimd32(struct kvm_vcpu *vcpu) in __activate_traps_fpsimd32() argument 66 if (vcpu_el1_is_32bit(vcpu) && system_supports_fpsimd()) { in __activate_traps_fpsimd32() 72 static void __hyp_text __activate_traps_common(struct kvm_vcpu *vcpu) in __activate_traps_common() argument [all …]
|
/Linux-v4.19/arch/arm64/kvm/ |
D | debug.c | 47 static void save_guest_debug_regs(struct kvm_vcpu *vcpu) in save_guest_debug_regs() argument 49 u64 val = vcpu_read_sys_reg(vcpu, MDSCR_EL1); in save_guest_debug_regs() 51 vcpu->arch.guest_debug_preserved.mdscr_el1 = val; in save_guest_debug_regs() 54 vcpu->arch.guest_debug_preserved.mdscr_el1); in save_guest_debug_regs() 57 static void restore_guest_debug_regs(struct kvm_vcpu *vcpu) in restore_guest_debug_regs() argument 59 u64 val = vcpu->arch.guest_debug_preserved.mdscr_el1; in restore_guest_debug_regs() 61 vcpu_write_sys_reg(vcpu, val, MDSCR_EL1); in restore_guest_debug_regs() 64 vcpu_read_sys_reg(vcpu, MDSCR_EL1)); in restore_guest_debug_regs() 86 void kvm_arm_reset_debug_ptr(struct kvm_vcpu *vcpu) in kvm_arm_reset_debug_ptr() argument 88 vcpu->arch.debug_ptr = &vcpu->arch.vcpu_debug_state; in kvm_arm_reset_debug_ptr() [all …]
|
D | inject_fault.c | 43 static u64 get_except_vector(struct kvm_vcpu *vcpu, enum exception_type type) in get_except_vector() argument 47 switch (*vcpu_cpsr(vcpu) & (PSR_MODE_MASK | PSR_MODE32_BIT)) { in get_except_vector() 61 return vcpu_read_sys_reg(vcpu, VBAR_EL1) + exc_offset + type; in get_except_vector() 64 static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr) in inject_abt64() argument 66 unsigned long cpsr = *vcpu_cpsr(vcpu); in inject_abt64() 67 bool is_aarch32 = vcpu_mode_is_32bit(vcpu); in inject_abt64() 70 vcpu_write_elr_el1(vcpu, *vcpu_pc(vcpu)); in inject_abt64() 71 *vcpu_pc(vcpu) = get_except_vector(vcpu, except_type_sync); in inject_abt64() 73 *vcpu_cpsr(vcpu) = PSTATE_FAULT_BITS_64; in inject_abt64() 74 vcpu_write_spsr(vcpu, cpsr); in inject_abt64() [all …]
|
D | handle_exit.c | 41 static void kvm_handle_guest_serror(struct kvm_vcpu *vcpu, u32 esr) in kvm_handle_guest_serror() argument 44 kvm_inject_vabt(vcpu); in kvm_handle_guest_serror() 47 static int handle_hvc(struct kvm_vcpu *vcpu, struct kvm_run *run) in handle_hvc() argument 51 trace_kvm_hvc_arm64(*vcpu_pc(vcpu), vcpu_get_reg(vcpu, 0), in handle_hvc() 52 kvm_vcpu_hvc_get_imm(vcpu)); in handle_hvc() 53 vcpu->stat.hvc_exit_stat++; in handle_hvc() 55 ret = kvm_hvc_call_handler(vcpu); in handle_hvc() 57 vcpu_set_reg(vcpu, 0, ~0UL); in handle_hvc() 64 static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run) in handle_smc() argument 74 vcpu_set_reg(vcpu, 0, ~0UL); in handle_smc() [all …]
|
/Linux-v4.19/arch/x86/kvm/ |
D | x86.c | 101 static void update_cr8_intercept(struct kvm_vcpu *vcpu); 102 static void process_nmi(struct kvm_vcpu *vcpu); 103 static void enter_smm(struct kvm_vcpu *vcpu); 104 static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags); 105 static void store_regs(struct kvm_vcpu *vcpu); 106 static int sync_regs(struct kvm_vcpu *vcpu); 218 static inline void kvm_async_pf_hash_reset(struct kvm_vcpu *vcpu) in kvm_async_pf_hash_reset() argument 222 vcpu->arch.apf.gfns[i] = ~0; in kvm_async_pf_hash_reset() 317 u64 kvm_get_apic_base(struct kvm_vcpu *vcpu) in kvm_get_apic_base() argument 319 return vcpu->arch.apic_base; in kvm_get_apic_base() [all …]
|
D | x86.h | 49 static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu) in kvm_clear_exception_queue() argument 51 vcpu->arch.exception.pending = false; in kvm_clear_exception_queue() 52 vcpu->arch.exception.injected = false; in kvm_clear_exception_queue() 55 static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector, in kvm_queue_interrupt() argument 58 vcpu->arch.interrupt.injected = true; in kvm_queue_interrupt() 59 vcpu->arch.interrupt.soft = soft; in kvm_queue_interrupt() 60 vcpu->arch.interrupt.nr = vector; in kvm_queue_interrupt() 63 static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu) in kvm_clear_interrupt_queue() argument 65 vcpu->arch.interrupt.injected = false; in kvm_clear_interrupt_queue() 68 static inline bool kvm_event_needs_reinjection(struct kvm_vcpu *vcpu) in kvm_event_needs_reinjection() argument [all …]
|
D | kvm_cache_regs.h | 10 static inline unsigned long kvm_register_read(struct kvm_vcpu *vcpu, in kvm_register_read() argument 13 if (!test_bit(reg, (unsigned long *)&vcpu->arch.regs_avail)) in kvm_register_read() 14 kvm_x86_ops->cache_reg(vcpu, reg); in kvm_register_read() 16 return vcpu->arch.regs[reg]; in kvm_register_read() 19 static inline void kvm_register_write(struct kvm_vcpu *vcpu, in kvm_register_write() argument 23 vcpu->arch.regs[reg] = val; in kvm_register_write() 24 __set_bit(reg, (unsigned long *)&vcpu->arch.regs_dirty); in kvm_register_write() 25 __set_bit(reg, (unsigned long *)&vcpu->arch.regs_avail); in kvm_register_write() 28 static inline unsigned long kvm_rip_read(struct kvm_vcpu *vcpu) in kvm_rip_read() argument 30 return kvm_register_read(vcpu, VCPU_REGS_RIP); in kvm_rip_read() [all …]
|
/Linux-v4.19/virt/kvm/arm/ |
D | psci.c | 37 static u32 smccc_get_function(struct kvm_vcpu *vcpu) in smccc_get_function() argument 39 return vcpu_get_reg(vcpu, 0); in smccc_get_function() 42 static unsigned long smccc_get_arg1(struct kvm_vcpu *vcpu) in smccc_get_arg1() argument 44 return vcpu_get_reg(vcpu, 1); in smccc_get_arg1() 47 static unsigned long smccc_get_arg2(struct kvm_vcpu *vcpu) in smccc_get_arg2() argument 49 return vcpu_get_reg(vcpu, 2); in smccc_get_arg2() 52 static unsigned long smccc_get_arg3(struct kvm_vcpu *vcpu) in smccc_get_arg3() argument 54 return vcpu_get_reg(vcpu, 3); in smccc_get_arg3() 57 static void smccc_set_retval(struct kvm_vcpu *vcpu, in smccc_set_retval() argument 63 vcpu_set_reg(vcpu, 0, a0); in smccc_set_retval() [all …]
|
D | arch_timer.c | 52 static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level, 82 struct kvm_vcpu *vcpu = *(struct kvm_vcpu **)dev_id; in kvm_arch_timer_handler() local 91 if (!vcpu) in kvm_arch_timer_handler() 94 vtimer = vcpu_vtimer(vcpu); in kvm_arch_timer_handler() 96 kvm_timer_update_irq(vcpu, true, vtimer); in kvm_arch_timer_handler() 98 if (userspace_irqchip(vcpu->kvm) && in kvm_arch_timer_handler() 111 struct kvm_vcpu *vcpu; in kvm_timer_inject_irq_work() local 113 vcpu = container_of(work, struct kvm_vcpu, arch.timer_cpu.expired); in kvm_timer_inject_irq_work() 119 kvm_vcpu_wake_up(vcpu); in kvm_timer_inject_irq_work() 152 static u64 kvm_timer_earliest_exp(struct kvm_vcpu *vcpu) in kvm_timer_earliest_exp() argument [all …]
|
D | pmu.c | 32 u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_get_counter_value() argument 35 struct kvm_pmu *pmu = &vcpu->arch.pmu; in kvm_pmu_get_counter_value() 40 counter = __vcpu_sys_reg(vcpu, reg); in kvm_pmu_get_counter_value() 58 void kvm_pmu_set_counter_value(struct kvm_vcpu *vcpu, u64 select_idx, u64 val) in kvm_pmu_set_counter_value() argument 64 __vcpu_sys_reg(vcpu, reg) += (s64)val - kvm_pmu_get_counter_value(vcpu, select_idx); in kvm_pmu_set_counter_value() 73 static void kvm_pmu_stop_counter(struct kvm_vcpu *vcpu, struct kvm_pmc *pmc) in kvm_pmu_stop_counter() argument 78 counter = kvm_pmu_get_counter_value(vcpu, pmc->idx); in kvm_pmu_stop_counter() 81 __vcpu_sys_reg(vcpu, reg) = counter; in kvm_pmu_stop_counter() 93 void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu) in kvm_pmu_vcpu_reset() argument 96 struct kvm_pmu *pmu = &vcpu->arch.pmu; in kvm_pmu_vcpu_reset() [all …]
|