Lines Matching refs:kvm

104 	return vcpu->kvm->arch.vgic.implementation_rev;  in vgic_get_implementation_rev()
135 static inline int vgic_write_guest_lock(struct kvm *kvm, gpa_t gpa, in vgic_write_guest_lock() argument
138 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_write_guest_lock()
142 ret = kvm_write_guest_lock(kvm, gpa, data, len); in vgic_write_guest_lock()
181 struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu,
183 void __vgic_put_lpi_locked(struct kvm *kvm, struct vgic_irq *irq);
184 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq);
188 bool vgic_queue_irq_unlock(struct kvm *kvm, struct vgic_irq *irq,
190 void vgic_kick_vcpus(struct kvm *kvm);
194 int vgic_check_iorange(struct kvm *kvm, phys_addr_t ioaddr,
211 int vgic_v2_map_resources(struct kvm *kvm);
212 int vgic_register_dist_iodev(struct kvm *kvm, gpa_t dist_base_address,
239 int vgic_v3_map_resources(struct kvm *kvm);
240 int vgic_v3_lpi_sync_pending_status(struct kvm *kvm, struct vgic_irq *irq);
241 int vgic_v3_save_pending_tables(struct kvm *kvm);
242 int vgic_v3_set_redist_base(struct kvm *kvm, u32 index, u64 addr, u32 count);
245 bool vgic_v3_check_base(struct kvm *kvm);
251 bool vgic_has_its(struct kvm *kvm);
255 int vgic_its_inject_msi(struct kvm *kvm, struct kvm_msi *msi);
269 int vgic_lazy_init(struct kvm *kvm);
270 int vgic_init(struct kvm *kvm);
272 void vgic_debug_init(struct kvm *kvm);
273 void vgic_debug_destroy(struct kvm *kvm);
303 vgic_v3_rd_region_size(struct kvm *kvm, struct vgic_redist_region *rdreg) in vgic_v3_rd_region_size() argument
306 return atomic_read(&kvm->online_vcpus) * KVM_VGIC_V3_REDIST_SIZE; in vgic_v3_rd_region_size()
311 struct vgic_redist_region *vgic_v3_rdist_region_from_index(struct kvm *kvm,
313 void vgic_v3_free_redist_region(struct kvm *kvm, struct vgic_redist_region *rdreg);
315 bool vgic_v3_rdist_overlap(struct kvm *kvm, gpa_t base, size_t size);
317 static inline bool vgic_dist_overlap(struct kvm *kvm, gpa_t base, size_t size) in vgic_dist_overlap() argument
319 struct vgic_dist *d = &kvm->arch.vgic; in vgic_dist_overlap()
326 int vgic_copy_lpi_list(struct kvm *kvm, struct kvm_vcpu *vcpu, u32 **intid_ptr);
327 int vgic_its_resolve_lpi(struct kvm *kvm, struct vgic_its *its,
329 struct vgic_its *vgic_msi_to_its(struct kvm *kvm, struct kvm_msi *msi);
330 int vgic_its_inject_cached_translation(struct kvm *kvm, struct kvm_msi *msi);
331 void vgic_lpi_translation_cache_init(struct kvm *kvm);
332 void vgic_lpi_translation_cache_destroy(struct kvm *kvm);
333 void vgic_its_invalidate_cache(struct kvm *kvm);
336 int vgic_its_inv_lpi(struct kvm *kvm, struct vgic_irq *irq);
339 bool vgic_supports_direct_msis(struct kvm *kvm);
340 int vgic_v4_init(struct kvm *kvm);
341 void vgic_v4_teardown(struct kvm *kvm);
342 void vgic_v4_configure_vsgis(struct kvm *kvm);
346 static inline bool kvm_has_gicv3(struct kvm *kvm) in kvm_has_gicv3() argument
349 irqchip_in_kernel(kvm) && in kvm_has_gicv3()
350 kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3); in kvm_has_gicv3()