Home
last modified time | relevance | path

Searched refs:pirq (Results 1 – 25 of 49) sorted by relevance

12

/xen/tools/libxc/
A Dxc_physdev.c39 int *pirq) in xc_physdev_map_pirq() argument
44 if ( !pirq ) in xc_physdev_map_pirq()
53 map.pirq = *pirq < 0 ? index : *pirq; in xc_physdev_map_pirq()
58 *pirq = map.pirq; in xc_physdev_map_pirq()
66 int *pirq, in xc_physdev_map_pirq_msi() argument
75 if ( !pirq ) in xc_physdev_map_pirq_msi()
84 map.pirq = *pirq; in xc_physdev_map_pirq_msi()
93 *pirq = map.pirq; in xc_physdev_map_pirq_msi()
100 int pirq) in xc_physdev_unmap_pirq() argument
107 unmap.pirq = pirq; in xc_physdev_unmap_pirq()
A Dxc_flask.c263 int xc_flask_add_pirq(xc_interface *xch, unsigned int pirq, char *scontext) in xc_flask_add_pirq() argument
265 return xc_flask_add(xch, OCON_PIRQ, pirq, pirq, scontext); in xc_flask_add_pirq()
297 int xc_flask_del_pirq(xc_interface *xch, unsigned int pirq) in xc_flask_del_pirq() argument
299 return xc_flask_del(xch, OCON_PIRQ, pirq, pirq); in xc_flask_del_pirq()
/xen/xen/include/xen/
A Dirq.h129 struct pirq { struct
130 int pirq; argument
142 extern struct pirq *pirq_get_info(struct domain *, int pirq);
145 const struct pirq *__pi = pirq_info(d, p); \
148 #define pirq_to_evtchn(d, pirq) pirq_field(d, pirq, evtchn, 0) argument
149 #define pirq_masked(d, pirq) pirq_field(d, pirq, masked, 0) argument
153 #define pirq_cleanup_check(pirq, d) \ argument
154 ((pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
156 extern void pirq_guest_eoi(struct pirq *);
165 const struct pirq *, unsigned long *pflags);
[all …]
A Dpci.h210 struct pirq;
211 int msixtbl_pt_register(struct domain *, struct pirq *, uint64_t gtable);
212 void msixtbl_pt_unregister(struct domain *, struct pirq *);
A Diommu.h179 struct pirq;
180 int hvm_do_IRQ_dpci(struct domain *, struct pirq *);
A Ddomain.h48 struct pirq *alloc_pirq_struct(struct domain *);
/xen/xen/arch/x86/
A Dirq.c1241 radix_tree_int_to_ptr(pirq->pirq)); in set_domain_irq_pirq()
1300 struct pirq *pirq = xzalloc_bytes(sz); in alloc_pirq_struct() local
1333 if ( radix_tree_delete(&d->pirq_tree, pirq->pirq) != pirq )
1399 void pirq_guest_eoi(struct pirq *pirq) in pirq_guest_eoi() argument
1472 pirq = pirqs[i]->pirq; in pirq_guest_unmask()
1656 set_pirq_eoi(v->domain, pirq->pirq); in pirq_guest_bind()
1658 clear_pirq_eoi(v->domain, pirq->pirq); in pirq_guest_bind()
1685 d->domain_id, pirq->pirq); in __pirq_guest_unbind()
1817 d->domain_id, pirq->pirq); in pirq_guest_force_unbind()
2316 if ( (pirq < 0) || (pirq >= d->nr_pirqs) ) in unmap_domain_pirq()
[all …]
A Dphysdev.c23 int physdev_unmap_pirq(domid_t, int pirq);
67 *pirq = machine_gsi; in physdev_hvm_map_pirq()
68 ret = (*pirq > 0) ? 0 : *pirq; in physdev_hvm_map_pirq()
74 if ( *pirq < 0 ) in physdev_hvm_map_pirq()
167 ret = unmap_domain_pirq(d, pirq); in physdev_unmap_pirq()
187 struct pirq *pirq; in do_physdev_op() local
196 pirq = pirq_info(currd, eoi.irq); in do_physdev_op()
197 if ( !pirq ) { in do_physdev_op()
202 evtchn_unmask(pirq->evtchn); in do_physdev_op()
204 pirq_guest_eoi(pirq); in do_physdev_op()
[all …]
/xen/xen/drivers/passthrough/
A Dio.c287 if ( pirq < 0 || pirq >= d->nr_pirqs ) in pt_irq_create_bind()
635 struct pirq *pirq; in pt_irq_destroy_bind() local
811 pirq = pirqs[i]->pirq; in pt_pirq_iterate()
820 int hvm_do_IRQ_dpci(struct domain *d, struct pirq *pirq) in hvm_do_IRQ_dpci() argument
844 struct pirq *pirq = dpci_pirq(pirq_dpci); in __msi_pirq_eoi() local
899 struct pirq *pirq = dpci_pirq(pirq_dpci); in hvm_dirq_assist() local
925 hvm_gsi_assert(d, pirq->pirq); in hvm_dirq_assist()
953 static void hvm_pirq_eoi(struct pirq *pirq, in hvm_pirq_eoi() argument
958 if ( !pirq ) in hvm_pirq_eoi()
983 struct pirq *pirq = pirq_info(d, girq->machine_gsi); in __hvm_dpci_eoi() local
[all …]
/xen/xen/include/asm-x86/
A Dirq.h134 struct pirq;
145 #define pirq_dpci(pirq) ((pirq) ? &(pirq)->arch.hvm.dpci : NULL) argument
146 #define dpci_pirq(pd) container_of(pd, struct pirq, arch.hvm.dpci)
150 int map_domain_pirq(struct domain *d, int pirq, int irq, int type,
152 int unmap_domain_pirq(struct domain *d, int pirq);
156 int map_domain_emuirq_pirq(struct domain *d, int pirq, int irq);
157 int unmap_domain_pirq_emuirq(struct domain *d, int pirq);
196 #define domain_pirq_to_irq(d, pirq) pirq_field(d, pirq, arch.irq, 0) argument
202 #define domain_pirq_to_emuirq(d, pirq) pirq_field(d, pirq, \ argument
A Diommu.h117 int pi_update_irte(const struct pi_desc *pi_desc, const struct pirq *pirq,
/xen/xen/arch/x86/hvm/
A Dvmsi.c459 int msixtbl_pt_register(struct domain *d, struct pirq *pirq, uint64_t gtable) in msixtbl_pt_register() argument
530 void msixtbl_pt_unregister(struct domain *d, struct pirq *pirq) in msixtbl_pt_unregister() argument
690 .machine_irq = pirq + i, in vpci_msi_update()
748 int rc, pirq = INVALID_PIRQ; in vpci_msi_enable() local
775 return pirq; in vpci_msi_enable()
787 msi->arch.pirq = rc; in vpci_msi_arch_enable()
799 ASSERT(pirq != INVALID_PIRQ); in vpci_msi_disable()
823 msi->arch.pirq = INVALID_PIRQ; in vpci_msi_arch_disable()
828 msi->arch.pirq = INVALID_PIRQ; in vpci_msi_arch_init()
841 msi->arch.pirq); in vpci_msi_arch_print()
[all …]
A Dirq.c31 bool hvm_domain_use_pirq(const struct domain *d, const struct pirq *pirq) in hvm_domain_use_pirq() argument
33 return is_hvm_domain(d) && pirq && pirq->arch.hvm.emuirq != IRQ_UNBOUND; in hvm_domain_use_pirq()
39 struct pirq *pirq = in assert_gsi() local
42 if ( hvm_domain_use_pirq(d, pirq) ) in assert_gsi()
44 send_guest_pirq(d, pirq); in assert_gsi()
94 struct pirq *pirq = in deassert_irq() local
97 if ( !hvm_domain_use_pirq(d, pirq) ) in deassert_irq()
396 int pirq = ((addr >> 32) & 0xffffff00) | dest; in hvm_inject_msi() local
398 if ( pirq > 0 ) in hvm_inject_msi()
400 struct pirq *info = pirq_info(d, pirq); in hvm_inject_msi()
[all …]
A Dvioapic.c177 int ret, pirq = gsi; in vioapic_hwdom_map_gsi() local
192 ret = allocate_and_map_gsi_pirq(currd, pirq, &pirq); in vioapic_hwdom_map_gsi()
207 unmap_domain_pirq(currd, pirq); in vioapic_hwdom_map_gsi()
/xen/xen/common/
A Devent_channel.c529 evtchn_from_port(d, chn->u.pirq.prev_port)->u.pirq.next_port = in unlink_pirq_port()
534 evtchn_from_port(d, chn->u.pirq.next_port)->u.pirq.prev_port = in unlink_pirq_port()
545 int port = 0, pirq = bind->pirq; in evtchn_bind_pirq() local
548 if ( (pirq < 0) || (pirq >= d->nr_pirqs) ) in evtchn_bind_pirq()
582 chn->u.pirq.irq = pirq; in evtchn_bind_pirq()
637 struct pirq *pirq = pirq_info(d1, chn1->u.pirq.irq); in evtchn_close() local
639 if ( !pirq ) in evtchn_close()
648 unmap_domain_pirq_emuirq(d1, pirq->pirq); in evtchn_close()
854 void send_guest_pirq(struct domain *d, const struct pirq *pirq) in send_guest_pirq() argument
865 if ( pirq == NULL || (port = pirq->evtchn) == 0 ) in send_guest_pirq()
[all …]
A Ddomain.c1562 struct pirq *pirq_get_info(struct domain *d, int pirq) in pirq_get_info() argument
1564 struct pirq *info = pirq_info(d, pirq); in pirq_get_info()
1568 info->pirq = pirq; in pirq_get_info()
1569 if ( radix_tree_insert(&d->pirq_tree, pirq, info) ) in pirq_get_info()
1581 xfree(container_of(head, struct pirq, rcu_head)); in _free_pirq_struct()
1586 struct pirq *pirq = ptr; in free_pirq_struct() local
1588 call_rcu(&pirq->rcu_head, _free_pirq_struct); in free_pirq_struct()
/xen/xen/include/asm-arm/
A Dirq.h71 #define domain_pirq_to_irq(d, pirq) (pirq) argument
84 #define arch_evtchn_bind_pirq(d, pirq) ((void)((d) + (pirq))) argument
/xen/xen/include/public/
A Dphysdev.h166 int pirq; member
183 int pirq; member
264 uint32_t pirq; member
A Devent_channel.h159 uint32_t pirq; member
230 uint32_t pirq; /* EVTCHNSTAT_pirq */ member
/xen/xen/arch/arm/
A Dirq.c580 struct pirq *alloc_pirq_struct(struct domain *d) in alloc_pirq_struct()
590 int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share) in pirq_guest_bind() argument
595 void pirq_guest_unbind(struct domain *d, struct pirq *pirq) in pirq_guest_unbind() argument
600 void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask) in pirq_set_affinity() argument
A Dgic-v3-its.c827 struct pending_irq *pirq = NULL; in get_event_pending_irq() local
833 pirq = &dev->pend_irqs[eventid]; in get_event_pending_irq()
840 return pirq; in get_event_pending_irq()
881 struct pending_irq *pirq; in gicv3_assign_guest_event() local
884 pirq = get_event_pending_irq(d, vdoorbell_address, vdevid, eventid, in gicv3_assign_guest_event()
887 if ( !pirq ) in gicv3_assign_guest_event()
892 return pirq; in gicv3_assign_guest_event()
A Dvgic-v3-its.c716 struct pending_irq *pirq; in its_handle_mapti() local
758 pirq = gicv3_assign_guest_event(its->d, its->doorbell_address, in its_handle_mapti()
760 if ( !pirq ) in its_handle_mapti()
763 vgic_init_pending_irq(pirq, intid); in its_handle_mapti()
770 ret = update_lpi_property(its->d, pirq); in its_handle_mapti()
774 pirq->lpi_vcpu_id = vcpu->vcpu_id; in its_handle_mapti()
779 set_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &pirq->status); in its_handle_mapti()
786 ret = radix_tree_insert(&its->d->arch.vgic.pend_lpi_tree, intid, pirq); in its_handle_mapti()
/xen/xen/include/asm-x86/hvm/
A Dio.h133 int pirq; member
138 int pirq; member
A Dirq.h230 struct pirq;
231 bool hvm_domain_use_pirq(const struct domain *, const struct pirq *);
/xen/tools/xcutils/
A Dlsevtchn.c45 printf("Physical IRQ %u", status.u.pirq); in main()

Completed in 47 milliseconds

12