Home
last modified time | relevance | path

Searched refs:pirq_dpci (Results 1 – 8 of 8) sorted by relevance

/xen/xen/drivers/passthrough/
A Dio.c136 pirq_dpci->masked = 0; in pt_pirq_softirq_reset()
322 pirq_dpci = pirq_dpci(info); in pt_irq_create_bind()
573 init_timer(&pirq_dpci->timer, pt_irq_time_out, pirq_dpci, 0); in pt_irq_create_bind()
686 pirq_dpci = pirq_dpci(pirq); in pt_irq_destroy_bind()
721 if ( pirq_dpci && (pirq_dpci->flags & HVM_IRQ_DPCI_MAPPED) ) in pt_irq_destroy_bind()
738 else if ( pirq_dpci && pirq_dpci->gmsi.posted ) in pt_irq_destroy_bind()
741 if ( pirq_dpci && (pirq_dpci->flags & HVM_IRQ_DPCI_MAPPED) && in pt_irq_destroy_bind()
809 struct hvm_pirq_dpci *pirq_dpci = pirq_dpci(pirqs[i]); in pt_pirq_iterate() local
823 struct hvm_pirq_dpci *pirq_dpci = pirq_dpci(pirq); in hvm_do_IRQ_dpci() local
828 !pirq_dpci || !(pirq_dpci->flags & HVM_IRQ_DPCI_MAPPED) ) in hvm_do_IRQ_dpci()
[all …]
A Dpci.c861 struct hvm_pirq_dpci *pirq_dpci, void *arg) in pci_clean_dpci_irq() argument
865 pirq_guest_unbind(d, dpci_pirq(pirq_dpci)); in pci_clean_dpci_irq()
867 if ( pt_irq_need_timer(pirq_dpci->flags) ) in pci_clean_dpci_irq()
868 kill_timer(&pirq_dpci->timer); in pci_clean_dpci_irq()
870 list_for_each_entry_safe ( digl, tmp, &pirq_dpci->digl_list, list ) in pci_clean_dpci_irq()
876 radix_tree_delete(&d->pirq_tree, dpci_pirq(pirq_dpci)->pirq); in pci_clean_dpci_irq()
878 if ( !pt_pirq_softirq_active(pirq_dpci) ) in pci_clean_dpci_irq()
881 domain_get_irq_dpci(d)->pending_pirq_dpci = pirq_dpci; in pci_clean_dpci_irq()
/xen/xen/drivers/passthrough/vtd/x86/
A Dhvm.c25 struct hvm_pirq_dpci *pirq_dpci, void *arg) in _hvm_dpci_isairq_eoi() argument
31 list_for_each_entry ( digl, &pirq_dpci->digl_list, list ) in _hvm_dpci_isairq_eoi()
38 if ( --pirq_dpci->pending == 0 ) in _hvm_dpci_isairq_eoi()
40 stop_timer(&pirq_dpci->timer); in _hvm_dpci_isairq_eoi()
41 pirq_guest_eoi(dpci_pirq(pirq_dpci)); in _hvm_dpci_isairq_eoi()
/xen/xen/arch/x86/hvm/
A Dvmsi.c106 void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci) in vmsi_deliver_pirq() argument
108 uint32_t flags = pirq_dpci->gmsi.gflags; in vmsi_deliver_pirq()
109 int vector = pirq_dpci->gmsi.gvec; in vmsi_deliver_pirq()
120 ASSERT(pirq_dpci->flags & HVM_IRQ_DPCI_GUEST_MSI); in vmsi_deliver_pirq()
A Dhvm.c495 void hvm_migrate_pirq(struct hvm_pirq_dpci *pirq_dpci, const struct vcpu *v) in hvm_migrate_pirq() argument
500 if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) && in hvm_migrate_pirq()
502 !pirq_dpci->gmsi.posted && in hvm_migrate_pirq()
503 (pirq_dpci->gmsi.dest_vcpu_id == v->vcpu_id) ) in hvm_migrate_pirq()
506 pirq_spin_lock_irq_desc(dpci_pirq(pirq_dpci), NULL); in hvm_migrate_pirq()
516 static int migrate_pirq(struct domain *d, struct hvm_pirq_dpci *pirq_dpci, in migrate_pirq() argument
519 hvm_migrate_pirq(pirq_dpci, arg); in migrate_pirq()
/xen/xen/include/asm-x86/
A Dirq.h145 #define pirq_dpci(pirq) ((pirq) ? &(pirq)->arch.hvm.dpci : NULL) macro
/xen/xen/include/asm-x86/hvm/
A Dhvm.h287 void hvm_migrate_pirq(struct hvm_pirq_dpci *pirq_dpci, const struct vcpu *v);
/xen/docs/misc/
A Dvtd-pi.txt66 raise_softirq_for(pirq_dpci) --> raise_softirq(HVM_DPCI_SOFTIRQ)

Completed in 24 milliseconds