Lines Matching full:vgic
13 #include "vgic.h"
16 * Initialization rules: there are multiple stages to the vgic
18 * idea is that even though the VGIC is not functional or not requested from
19 * user space, the critical path of the run loop can still call VGIC functions
45 * kvm_vgic_early_init() - Initialize static VGIC VCPU data structures
46 * @kvm: The VM whose VGIC districutor should be initialized
54 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init()
64 * kvm_vgic_create: triggered by the instantiation of the VGIC device by
109 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create()
110 kvm->arch.vgic.vgic_model = type; in kvm_vgic_create()
112 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
115 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
117 INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions); in kvm_vgic_create()
133 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_init()
143 * no other action on irq structs can happen while the VGIC is in kvm_vgic_dist_init()
177 * kvm_vgic_vcpu_init() - Initialize static VGIC VCPU data
183 * VGIC CPU interface
188 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_vcpu_init()
256 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_init()
275 /* Initialize groups on CPUs created before the VGIC type was known */ in vgic_init()
329 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_destroy()
339 if (kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in kvm_vgic_dist_destroy()
400 * We only provide the automatic initialization of the VGIC in vgic_lazy_init()
405 if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) in vgic_lazy_init()
419 * Map the MMIO regions depending on the VGIC model exposed to the guest
428 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_map_resources()
466 * We cannot rely on the vgic maintenance interrupt to be in vgic_maintenance_handler()
509 kvm_err("No vgic maintenance irq\n"); in kvm_vgic_hyp_init()
534 "vgic", kvm_get_running_vcpus()); in kvm_vgic_hyp_init()
542 "kvm/arm/vgic:starting", in kvm_vgic_hyp_init()
545 kvm_err("Cannot register vgic CPU notifier\n"); in kvm_vgic_hyp_init()
549 kvm_info("vgic interrupt IRQ%d\n", kvm_vgic_global_state.maint_irq); in kvm_vgic_hyp_init()