#include <hyp/adjust_pc.h>
#include <linux/compiler.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/kvm_host.h>
#include <linux/swab.h>
#include <asm/kvm_emulate.h>
#include <asm/kvm_hyp.h>
#include <asm/kvm_mmu.h>
Go to the source code of this file.
◆ __is_be()
static bool __is_be |
( |
struct kvm_vcpu * |
vcpu | ) |
|
|
static |
Definition at line 18 of file vgic-v2-cpuif-proxy.c.
20 if (vcpu_mode_is_32bit(vcpu))
21 return !!(read_sysreg_el2(SYS_SPSR) & PSR_AA32_E_BIT);
23 return !!(read_sysreg(SCTLR_EL1) & SCTLR_ELx_EE);
◆ __vgic_v2_perform_cpuif_access()
int __vgic_v2_perform_cpuif_access |
( |
struct kvm_vcpu * |
vcpu | ) |
|
Definition at line 37 of file vgic-v2-cpuif-proxy.c.
39 struct kvm *kvm = kern_hyp_va(vcpu->kvm);
41 phys_addr_t fault_ipa;
46 fault_ipa = kvm_vcpu_get_fault_ipa(vcpu);
47 fault_ipa |= kvm_vcpu_get_hfar(vcpu) & GENMASK(11, 0);
55 if (kvm_vcpu_dabt_get_as(vcpu) !=
sizeof(u32)) {
66 rd = kvm_vcpu_dabt_get_rd(vcpu);
70 if (kvm_vcpu_dabt_iswrite(vcpu)) {
71 u32 data = vcpu_get_reg(vcpu, rd);
74 data = __kvm_swab32(data);
76 writel_relaxed(data, addr);
78 u32 data = readl_relaxed(addr);
81 data = __kvm_swab32(data);
83 vcpu_set_reg(vcpu, rd, data);
static void __kvm_skip_instr(struct kvm_vcpu *vcpu)
struct vgic_global kvm_vgic_global_state
void __iomem * vcpu_hyp_va
static bool __is_be(struct kvm_vcpu *vcpu)