• Home
  • Raw
  • Download

Lines Matching full:vgic

24 #include "vgic.h"
27 * Initialization rules: there are multiple stages to the vgic
29 * idea is that even though the VGIC is not functional or not requested from
30 * user space, the critical path of the run loop can still call VGIC functions
56 * kvm_vgic_early_init() - Initialize static VGIC VCPU data structures
57 * @kvm: The VM whose VGIC districutor should be initialized
65 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init()
74 * kvm_vgic_create: triggered by the instantiation of the VGIC device by
102 * that no other VCPUs are run while we create the vgic. in kvm_vgic_create()
127 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create()
128 kvm->arch.vgic.vgic_model = type; in kvm_vgic_create()
130 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
133 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
135 INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions); in kvm_vgic_create()
154 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_init()
164 * no other action on irq structs can happen while the VGIC is in kvm_vgic_dist_init()
198 * kvm_vgic_vcpu_init() - Initialize static VGIC VCPU data
204 * VGIC CPU interface
209 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_vcpu_init()
277 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_init()
296 /* Initialize groups on CPUs created before the VGIC type was known */ in vgic_init()
342 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_destroy()
352 if (kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in kvm_vgic_dist_destroy()
404 * We only provide the automatic initialization of the VGIC in vgic_lazy_init()
409 if (kvm->arch.vgic.vgic_model != KVM_DEV_TYPE_ARM_VGIC_V2) in vgic_lazy_init()
423 * Map the MMIO regions depending on the VGIC model exposed to the guest
432 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_map_resources()
470 * We cannot rely on the vgic maintenance interrupt to be in vgic_maintenance_handler()
513 kvm_err("No vgic maintenance irq\n"); in kvm_vgic_hyp_init()
538 "vgic", kvm_get_running_vcpus()); in kvm_vgic_hyp_init()
546 "kvm/arm/vgic:starting", in kvm_vgic_hyp_init()
549 kvm_err("Cannot register vgic CPU notifier\n"); in kvm_vgic_hyp_init()
553 kvm_info("vgic interrupt IRQ%d\n", kvm_vgic_global_state.maint_irq); in kvm_vgic_hyp_init()