9 #include <linux/compiler.h>
10 #include <linux/kvm_host.h>
12 #include <asm/debug-monitors.h>
13 #include <asm/kvm_asm.h>
14 #include <asm/kvm_hyp.h>
15 #include <asm/kvm_mmu.h>
29 reg = read_sysreg_s(SYS_PMBLIMITR_EL1);
30 if (!(reg & BIT(PMBLIMITR_EL1_E_SHIFT)))
34 *pmscr_el1 = read_sysreg_s(SYS_PMSCR_EL1);
35 write_sysreg_s(0, SYS_PMSCR_EL1);
51 write_sysreg_s(pmscr_el1, SYS_PMSCR_EL1);
59 if (!(read_sysreg_s(SYS_TRBLIMITR_EL1) & TRBLIMITR_EL1_E))
66 *trfcr_el1 = read_sysreg_s(SYS_TRFCR_EL1);
67 write_sysreg_s(0, SYS_TRFCR_EL1);
79 write_sysreg_s(trfcr_el1, SYS_TRFCR_EL1);
85 if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_SPE))
88 if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_TRBE))
99 if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_SPE))
101 if (vcpu_get_flag(vcpu, DEBUG_STATE_SAVE_TRBE))
112 return read_sysreg(mdcr_el2);
static void __debug_switch_to_host_common(struct kvm_vcpu *vcpu)
static void __debug_switch_to_guest_common(struct kvm_vcpu *vcpu)
static void __debug_restore_trace(u64 trfcr_el1)
static void __debug_save_trace(u64 *trfcr_el1)
void __debug_switch_to_guest(struct kvm_vcpu *vcpu)
void __debug_restore_host_buffers_nvhe(struct kvm_vcpu *vcpu)
static void __debug_save_spe(u64 *pmscr_el1)
void __debug_switch_to_host(struct kvm_vcpu *vcpu)
u64 __kvm_get_mdcr_el2(void)
static void __debug_restore_spe(u64 pmscr_el1)
void __debug_save_host_buffers_nvhe(struct kvm_vcpu *vcpu)