• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/virt/kvm/

Lines Matching defs:kvm

12 #include <linux/kvm.h>
75 kvm_set_irq(assigned_dev->kvm,
80 kvm_set_irq(assigned_dev->kvm, assigned_dev->irq_source_id,
125 kvm_set_irq(dev->kvm, dev->irq_source_id, dev->guest_irq, 0);
138 static void deassign_guest_irq(struct kvm *kvm,
141 kvm_unregister_irq_ack_notifier(kvm, &assigned_dev->ack_notifier);
145 kvm_free_irq_source_id(kvm, assigned_dev->irq_source_id);
150 /* The function implicit hold kvm->lock mutex due to cancel_work_sync() */
151 static void deassign_host_irq(struct kvm *kvm,
167 * now, the kvm state is still legal for probably we also have to wait
200 static int kvm_deassign_irq(struct kvm *kvm,
206 if (!irqchip_in_kernel(kvm))
216 deassign_host_irq(kvm, assigned_dev);
218 deassign_guest_irq(kvm, assigned_dev);
223 static void kvm_free_assigned_irq(struct kvm *kvm,
226 kvm_deassign_irq(kvm, assigned_dev, assigned_dev->irq_requested_type);
229 static void kvm_free_assigned_device(struct kvm *kvm,
233 kvm_free_assigned_irq(kvm, assigned_dev);
245 void kvm_free_all_assigned_devices(struct kvm *kvm)
250 list_for_each_safe(ptr, ptr2, &kvm->arch.assigned_dev_head) {
255 kvm_free_assigned_device(kvm, assigned_dev);
259 static int assigned_device_enable_host_intx(struct kvm *kvm,
275 static int assigned_device_enable_host_msi(struct kvm *kvm,
298 static int assigned_device_enable_host_msix(struct kvm *kvm,
331 static int assigned_device_enable_guest_intx(struct kvm *kvm,
341 static int assigned_device_enable_guest_msi(struct kvm *kvm,
353 static int assigned_device_enable_guest_msix(struct kvm *kvm,
364 static int assign_host_irq(struct kvm *kvm,
375 r = assigned_device_enable_host_intx(kvm, dev);
379 r = assigned_device_enable_host_msi(kvm, dev);
384 r = assigned_device_enable_host_msix(kvm, dev);
397 static int assign_guest_irq(struct kvm *kvm,
408 id = kvm_request_irq_source_id(kvm);
416 r = assigned_device_enable_guest_intx(kvm, dev, irq);
420 r = assigned_device_enable_guest_msi(kvm, dev, irq);
425 r = assigned_device_enable_guest_msix(kvm, dev, irq);
434 kvm_register_irq_ack_notifier(kvm, &dev->ack_notifier);
436 kvm_free_irq_source_id(kvm, dev->irq_source_id);
442 static int kvm_vm_ioctl_assign_irq(struct kvm *kvm,
449 if (!irqchip_in_kernel(kvm))
452 mutex_lock(&kvm->lock);
454 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
473 r = assign_host_irq(kvm, match, host_irq_type);
478 r = assign_guest_irq(kvm, match, assigned_irq, guest_irq_type);
480 mutex_unlock(&kvm->lock);
484 static int kvm_vm_ioctl_deassign_dev_irq(struct kvm *kvm,
491 mutex_lock(&kvm->lock);
493 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
498 r = kvm_deassign_irq(kvm, match, assigned_irq->flags);
500 mutex_unlock(&kvm->lock);
504 static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
511 mutex_lock(&kvm->lock);
512 idx = srcu_read_lock(&kvm->srcu);
514 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
559 match->kvm = kvm;
564 list_add(&match->list, &kvm->arch.assigned_dev_head);
567 if (!kvm->arch.iommu_domain) {
568 r = kvm_iommu_map_guest(kvm);
572 r = kvm_assign_device(kvm, match);
578 srcu_read_unlock(&kvm->srcu, idx);
579 mutex_unlock(&kvm->lock);
590 srcu_read_unlock(&kvm->srcu, idx);
591 mutex_unlock(&kvm->lock);
595 static int kvm_vm_ioctl_deassign_device(struct kvm *kvm,
601 mutex_lock(&kvm->lock);
603 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
613 kvm_deassign_device(kvm, match);
615 kvm_free_assigned_device(kvm, match);
618 mutex_unlock(&kvm->lock);
624 static int kvm_vm_ioctl_set_msix_nr(struct kvm *kvm,
630 mutex_lock(&kvm->lock);
632 adev = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
665 mutex_unlock(&kvm->lock);
669 static int kvm_vm_ioctl_set_msix_entry(struct kvm *kvm,
675 mutex_lock(&kvm->lock);
677 adev = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
699 mutex_unlock(&kvm->lock);
705 long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
718 r = kvm_vm_ioctl_assign_device(kvm, &assigned_dev);
734 r = kvm_vm_ioctl_assign_irq(kvm, &assigned_irq);
745 r = kvm_vm_ioctl_deassign_dev_irq(kvm, &assigned_irq);
758 r = kvm_vm_ioctl_deassign_device(kvm, &assigned_dev);
787 r = kvm_set_irq_routing(kvm, entries, routing.nr,
800 r = kvm_vm_ioctl_set_msix_nr(kvm, &entry_nr);
810 r = kvm_vm_ioctl_set_msix_entry(kvm, &entry);