Lines Matching refs:vcpu

52 static bool handle_mmio_rao_wi(struct kvm_vcpu *vcpu,  in handle_mmio_rao_wi()  argument
63 static bool handle_mmio_ctlr(struct kvm_vcpu *vcpu, in handle_mmio_ctlr() argument
72 if (vcpu->kvm->arch.vgic.enabled) in handle_mmio_ctlr()
81 vcpu->kvm->arch.vgic.enabled = !!(reg & GICD_CTLR_ENABLE_SS_G1); in handle_mmio_ctlr()
82 vgic_update_state(vcpu->kvm); in handle_mmio_ctlr()
95 static bool handle_mmio_typer(struct kvm_vcpu *vcpu, in handle_mmio_typer() argument
100 reg = (min(vcpu->kvm->arch.vgic.nr_irqs, 1024) >> 5) - 1; in handle_mmio_typer()
110 static bool handle_mmio_iidr(struct kvm_vcpu *vcpu, in handle_mmio_iidr() argument
122 static bool handle_mmio_set_enable_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_set_enable_reg_dist() argument
127 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_dist()
128 vcpu->vcpu_id, in handle_mmio_set_enable_reg_dist()
136 static bool handle_mmio_clear_enable_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_clear_enable_reg_dist() argument
141 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_dist()
142 vcpu->vcpu_id, in handle_mmio_clear_enable_reg_dist()
150 static bool handle_mmio_set_pending_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_set_pending_reg_dist() argument
155 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_dist()
156 vcpu->vcpu_id); in handle_mmio_set_pending_reg_dist()
163 static bool handle_mmio_clear_pending_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_clear_pending_reg_dist() argument
168 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_dist()
169 vcpu->vcpu_id); in handle_mmio_clear_pending_reg_dist()
176 static bool handle_mmio_priority_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_priority_reg_dist() argument
188 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_dist()
189 vcpu->vcpu_id, offset); in handle_mmio_priority_reg_dist()
195 static bool handle_mmio_cfg_reg_dist(struct kvm_vcpu *vcpu, in handle_mmio_cfg_reg_dist() argument
207 reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_dist()
208 vcpu->vcpu_id, offset >> 1); in handle_mmio_cfg_reg_dist()
250 static bool handle_mmio_route_reg(struct kvm_vcpu *vcpu, in handle_mmio_route_reg() argument
254 struct kvm *kvm = vcpu->kvm; in handle_mmio_route_reg()
288 vcpu = kvm_mpidr_to_vcpu(kvm, mpidr); in handle_mmio_route_reg()
289 if (likely(vcpu)) { in handle_mmio_route_reg()
290 vcpu_id = vcpu->vcpu_id; in handle_mmio_route_reg()
296 vcpu = kvm_mpidr_to_vcpu(kvm, reg & MPIDR_HWID_BITMASK); in handle_mmio_route_reg()
305 if (likely(vcpu)) { in handle_mmio_route_reg()
306 vcpu_id = vcpu->vcpu_id; in handle_mmio_route_reg()
325 static bool handle_mmio_idregs(struct kvm_vcpu *vcpu, in handle_mmio_idregs() argument
505 static bool handle_mmio_ctlr_redist(struct kvm_vcpu *vcpu, in handle_mmio_ctlr_redist() argument
515 static bool handle_mmio_typer_redist(struct kvm_vcpu *vcpu, in handle_mmio_typer_redist() argument
535 if (target_vcpu_id == atomic_read(&vcpu->kvm->online_vcpus) - 1) in handle_mmio_typer_redist()
542 static bool handle_mmio_set_enable_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_set_enable_reg_redist() argument
548 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_redist()
553 static bool handle_mmio_clear_enable_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_clear_enable_reg_redist() argument
559 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_redist()
564 static bool handle_mmio_set_pending_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_set_pending_reg_redist() argument
570 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_redist()
574 static bool handle_mmio_clear_pending_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_clear_pending_reg_redist() argument
580 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_redist()
584 static bool handle_mmio_priority_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_priority_reg_redist() argument
591 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_redist()
598 static bool handle_mmio_cfg_reg_redist(struct kvm_vcpu *vcpu, in handle_mmio_cfg_reg_redist() argument
604 u32 *reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_redist()
711 static bool vgic_v3_queue_sgi(struct kvm_vcpu *vcpu, int irq) in vgic_v3_queue_sgi() argument
713 if (vgic_queue_irq(vcpu, 0, irq)) { in vgic_v3_queue_sgi()
714 vgic_dist_irq_clear_pending(vcpu, irq); in vgic_v3_queue_sgi()
715 vgic_cpu_irq_clear(vcpu, irq); in vgic_v3_queue_sgi()
822 static void vgic_v3_add_sgi_source(struct kvm_vcpu *vcpu, int irq, int source) in vgic_v3_add_sgi_source() argument
844 static int match_mpidr(u64 sgi_aff, u16 sgi_cpu_mask, struct kvm_vcpu *vcpu) in match_mpidr() argument
853 affinity = kvm_vcpu_get_mpidr_aff(vcpu); in match_mpidr()
885 void vgic_v3_dispatch_sgi(struct kvm_vcpu *vcpu, u64 reg) in vgic_v3_dispatch_sgi() argument
887 struct kvm *kvm = vcpu->kvm; in vgic_v3_dispatch_sgi()
893 int vcpu_id = vcpu->vcpu_id; in vgic_v3_dispatch_sgi()
943 vgic_update_state(vcpu->kvm); in vgic_v3_dispatch_sgi()
946 vgic_kick_vcpus(vcpu->kvm); in vgic_v3_dispatch_sgi()