Lines Matching refs:vgic
89 static const struct vgic_params *vgic; variable
93 vcpu->kvm->arch.vgic.vm_ops.add_sgi_source(vcpu, irq, source); in add_sgi_source()
98 return vcpu->kvm->arch.vgic.vm_ops.queue_sgi(vcpu, irq); in queue_sgi()
103 return kvm->arch.vgic.vm_ops.map_resources(kvm, vgic); in kvm_vgic_map_resources()
248 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_edge()
257 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_enabled()
264 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_queued()
271 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_active()
278 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_set_queued()
285 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_clear_queued()
292 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_set_active()
299 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_clear_active()
306 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_get_level()
313 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_set_level()
320 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_clear_level()
327 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_soft_pend()
334 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_clear_soft_pend()
341 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_is_pending()
348 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_set_pending()
355 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_dist_irq_clear_pending()
459 reg = vgic_bitmap_get_reg(&kvm->arch.vgic.irq_enabled, vcpu_id, offset); in vgic_handle_enable_reg()
481 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_handle_set_pending_reg()
518 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_handle_clear_pending_reg()
552 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_handle_set_active_reg()
571 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_handle_clear_active_reg()
803 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_handle_mmio_access()
922 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in compute_active_for_cpu()
952 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in compute_pending_for_cpu()
985 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_update_state()
1093 for_each_set_bit(lr, vgic_cpu->lr_used, vgic->nr_lr) { in vgic_retire_disabled_irqs()
1132 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_queue_irq()
1158 vgic->nr_lr); in vgic_queue_irq()
1159 if (lr >= vgic->nr_lr) in vgic_queue_irq()
1200 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in __kvm_vgic_flush_hwstate()
1262 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_process_maintenance()
1277 for_each_set_bit(lr, eisr_ptr, vgic->nr_lr) { in vgic_process_maintenance()
1348 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in __kvm_vgic_sync_hwstate()
1359 for_each_set_bit(lr, elrsr_ptr, vgic->nr_lr) { in __kvm_vgic_sync_hwstate()
1372 pending = find_first_zero_bit(elrsr_ptr, vgic->nr_lr); in __kvm_vgic_sync_hwstate()
1373 if (level_pending || pending < vgic->nr_lr) in __kvm_vgic_sync_hwstate()
1379 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_flush_hwstate()
1399 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_vcpu_pending_irq()
1409 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_vcpu_active_irq()
1454 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_update_irq_pending()
1552 if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) { in kvm_vgic_inject_irq()
1564 if (irq_num >= min(kvm->arch.vgic.nr_irqs, 1020)) in kvm_vgic_inject_irq()
1627 vgic_cpu->nr_lr = vgic->nr_lr; in vgic_vcpu_init_maps()
1640 return vgic->max_gic_vcpus; in kvm_vgic_get_max_vcpus()
1645 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_destroy()
1683 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_init()
1740 ret = kvm->arch.vgic.vm_ops.init_model(kvm); in vgic_init()
1810 if (type == KVM_DEV_TYPE_ARM_VGIC_V2 && !vgic->can_emulate_gicv2) { in kvm_vgic_create()
1837 spin_lock_init(&kvm->arch.vgic.lock); in kvm_vgic_create()
1838 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create()
1839 kvm->arch.vgic.vgic_model = type; in kvm_vgic_create()
1840 kvm->arch.vgic.vctrl_base = vgic->vctrl_base; in kvm_vgic_create()
1841 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
1842 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
1843 kvm->arch.vgic.vgic_redist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
1858 phys_addr_t dist = kvm->arch.vgic.vgic_dist_base; in vgic_ioaddr_overlap()
1859 phys_addr_t cpu = kvm->arch.vgic.vgic_cpu_base; in vgic_ioaddr_overlap()
1909 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_vgic_addr() local
1918 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
1924 addr_ptr = &vgic->vgic_cpu_base; in kvm_vgic_addr()
1931 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
1937 addr_ptr = &vgic->vgic_redist_base; in kvm_vgic_addr()
1947 if (vgic->vgic_model != type_needed) { in kvm_vgic_addr()
2004 if (vgic_ready(dev->kvm) || dev->kvm->arch.vgic.nr_irqs) in vgic_set_common_attr()
2007 dev->kvm->arch.vgic.nr_irqs = val; in vgic_set_common_attr()
2047 r = put_user(dev->kvm->arch.vgic.nr_irqs, uaddr); in vgic_get_common_attr()
2066 enable_percpu_irq(vgic->maint_irq, 0); in vgic_init_maintenance_interrupt()
2079 disable_percpu_irq(vgic->maint_irq); in vgic_cpu_notify()
2114 ret = vgic_probe(vgic_node, &vgic_ops, &vgic); in kvm_vgic_hyp_init()
2118 ret = request_percpu_irq(vgic->maint_irq, vgic_maintenance_handler, in kvm_vgic_hyp_init()
2121 kvm_err("Cannot register interrupt %d\n", vgic->maint_irq); in kvm_vgic_hyp_init()
2132 vgic_arch_setup(vgic); in kvm_vgic_hyp_init()
2139 free_percpu_irq(vgic->maint_irq, kvm_get_running_vcpus()); in kvm_vgic_hyp_init()