Lines Matching refs:evtchn

111 	evtchn_port_t evtchn;   /* event channel */
216 static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq)
222 if (evtchn >= xen_evtchn_max_channels())
225 row = EVTCHN_ROW(evtchn);
226 col = EVTCHN_COL(evtchn);
268 static struct irq_info *evtchn_to_info(evtchn_port_t evtchn)
272 if (evtchn >= xen_evtchn_max_channels())
274 if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL)
276 irq = READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]);
331 evtchn_port_t evtchn,
339 info->evtchn = evtchn;
344 ret = set_evtchn_to_irq(evtchn, info->irq);
350 return xen_evtchn_port_setup(evtchn);
354 evtchn_port_t evtchn,
359 ret = xen_irq_info_common_setup(info, IRQT_EVTCHN, evtchn, 0);
368 evtchn_port_t evtchn, enum ipi_vector ipi)
373 per_cpu(ipi_to_evtchn, cpu)[ipi] = evtchn;
375 return xen_irq_info_common_setup(info, IRQT_IPI, evtchn, 0);
379 evtchn_port_t evtchn, unsigned int virq)
385 return xen_irq_info_common_setup(info, IRQT_VIRQ, evtchn, 0);
388 static int xen_irq_info_pirq_setup(struct irq_info *info, evtchn_port_t evtchn,
397 return xen_irq_info_common_setup(info, IRQT_PIRQ, evtchn, 0);
402 set_evtchn_to_irq(info->evtchn, -1);
403 xen_evtchn_port_remove(info->evtchn, info->cpu);
404 info->evtchn = 0;
420 return info->evtchn;
423 unsigned int irq_from_evtchn(evtchn_port_t evtchn)
425 struct irq_info *info = evtchn_to_info(evtchn);
432 evtchn_port_t *evtchn)
436 *evtchn = evtchn_from_irq(irq);
467 unsigned int cpu_from_evtchn(evtchn_port_t evtchn)
469 struct irq_info *info = evtchn_to_info(evtchn);
481 mask_evtchn(info->evtchn);
497 unmask_evtchn(info->evtchn);
527 xen_evtchn_port_bind_to_cpu(info->evtchn, cpu, info->cpu);
544 evtchn_port_t evtchn = evtchn_from_irq(irq);
546 if (VALID_EVTCHN(evtchn))
547 notify_remote_via_evtchn(evtchn);
603 evtchn_port_t evtchn;
607 evtchn = info->evtchn;
608 if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list))
802 clear_evtchn(info->evtchn);
824 evtchn_port_t evtchn = info ? info->evtchn : 0;
828 if (!VALID_EVTCHN(evtchn))
849 evtchn_port_t evtchn = evtchn_from_irq(irq);
854 if (VALID_EVTCHN(evtchn))
866 evtchn = bind_pirq.port;
870 rc = set_evtchn_to_irq(evtchn, irq);
874 info->evtchn = evtchn;
877 rc = xen_evtchn_port_setup(evtchn);
890 xen_evtchn_close(evtchn);
903 evtchn_port_t evtchn = evtchn_from_irq(irq);
907 if (!VALID_EVTCHN(evtchn))
912 xen_evtchn_close(evtchn);
943 evtchn_port_t evtchn;
957 evtchn = info->evtchn;
959 if (VALID_EVTCHN(evtchn)) {
986 xen_evtchn_close(evtchn);
1198 static int bind_evtchn_to_irq_chip(evtchn_port_t evtchn, struct irq_chip *chip,
1204 if (evtchn >= xen_evtchn_max_channels())
1209 info = evtchn_to_info(evtchn);
1219 ret = xen_irq_info_evtchn_setup(info, evtchn, dev);
1245 int bind_evtchn_to_irq(evtchn_port_t evtchn)
1247 return bind_evtchn_to_irq_chip(evtchn, &xen_dynamic_chip, NULL, false);
1251 int bind_evtchn_to_irq_lateeoi(evtchn_port_t evtchn)
1253 return bind_evtchn_to_irq_chip(evtchn, &xen_lateeoi_chip, NULL, false);
1260 evtchn_port_t evtchn;
1280 evtchn = bind_ipi.port;
1282 ret = xen_irq_info_ipi_setup(info, cpu, evtchn, ipi);
1329 static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
1345 *evtchn = port;
1368 evtchn_port_t evtchn = 0;
1393 evtchn = bind_virq.port;
1396 ret = find_virq(virq, cpu, &evtchn);
1400 ret = xen_irq_info_virq_setup(info, cpu, evtchn, virq);
1433 static int bind_evtchn_to_irqhandler_chip(evtchn_port_t evtchn,
1441 irq = bind_evtchn_to_irq_chip(evtchn, chip, NULL,
1454 int bind_evtchn_to_irqhandler(evtchn_port_t evtchn,
1459 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
1465 int bind_evtchn_to_irqhandler_lateeoi(evtchn_port_t evtchn,
1470 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
1580 int evtchn_make_refcounted(evtchn_port_t evtchn, bool is_static)
1582 struct irq_info *info = evtchn_to_info(evtchn);
1596 int evtchn_get(evtchn_port_t evtchn)
1601 if (evtchn >= xen_evtchn_max_channels())
1606 info = evtchn_to_info(evtchn);
1624 void evtchn_put(evtchn_port_t evtchn)
1626 struct irq_info *info = evtchn_to_info(evtchn);
1636 evtchn_port_t evtchn;
1647 evtchn = per_cpu(ipi_to_evtchn, cpu)[vector];
1648 BUG_ON(evtchn == 0);
1649 notify_remote_via_evtchn(evtchn);
1745 void rebind_evtchn_irq(evtchn_port_t evtchn, int irq)
1758 /* After resume the irq<->evtchn mappings are all cleared out */
1759 BUG_ON(evtchn_to_info(evtchn));
1765 (void)xen_irq_info_evtchn_setup(info, evtchn, NULL);
1775 /* Rebind an evtchn so that it gets delivered to a specific cpu */
1779 evtchn_port_t evtchn = info ? info->evtchn : 0;
1781 if (!VALID_EVTCHN(evtchn))
1788 bind_vcpu.port = evtchn;
1854 evtchn_port_t evtchn = info ? info->evtchn : 0;
1856 if (VALID_EVTCHN(evtchn))
1863 evtchn_port_t evtchn = info ? info->evtchn : 0;
1865 if (VALID_EVTCHN(evtchn))
1872 evtchn_port_t evtchn = info ? info->evtchn : 0;
1874 if (VALID_EVTCHN(evtchn))
1887 evtchn_port_t evtchn = info ? info->evtchn : 0;
1889 if (VALID_EVTCHN(evtchn)) {
1896 clear_evtchn(evtchn);
1903 evtchn_port_t evtchn = info ? info->evtchn : 0;
1905 if (VALID_EVTCHN(evtchn)) {
1914 evtchn_port_t evtchn = info ? info->evtchn : 0;
1916 if (!VALID_EVTCHN(evtchn))
1920 set_evtchn(evtchn);
1967 evtchn_port_t evtchn;
1984 evtchn = bind_virq.port;
1987 xen_irq_info_virq_setup(info, cpu, evtchn, virq);
1996 evtchn_port_t evtchn;
2012 evtchn = bind_ipi.port;
2015 xen_irq_info_ipi_setup(info, cpu, evtchn, ipi);
2025 evtchn_port_t evtchn = info ? info->evtchn : 0;
2027 if (VALID_EVTCHN(evtchn))
2033 evtchn_port_t evtchn = evtchn_from_irq(irq);
2035 if (VALID_EVTCHN(evtchn))
2036 set_evtchn(evtchn);
2041 evtchn_port_t evtchn = evtchn_from_irq(irq);
2044 if (VALID_EVTCHN(evtchn))
2045 ret = test_evtchn(evtchn);
2054 evtchn_port_t evtchn = evtchn_from_irq(irq);
2056 if (VALID_EVTCHN(evtchn)) {
2061 set_xen_guest_handle(poll.ports, &evtchn);
2103 info->evtchn = 0;
2276 evtchn_port_t evtchn;
2288 "xen/evtchn:prepare",
2296 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++)
2297 mask_evtchn(evtchn);