Lines Matching refs:evtchn

108 	evtchn_port_t evtchn;   /* event channel */
206 static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq)
212 if (evtchn >= xen_evtchn_max_channels())
215 row = EVTCHN_ROW(evtchn);
216 col = EVTCHN_COL(evtchn);
241 int get_evtchn_to_irq(evtchn_port_t evtchn)
243 if (evtchn >= xen_evtchn_max_channels())
245 if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL)
247 return READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]);
287 evtchn_port_t evtchn,
296 info->evtchn = evtchn;
301 ret = set_evtchn_to_irq(evtchn, irq);
307 return xen_evtchn_port_setup(evtchn);
311 evtchn_port_t evtchn)
315 return xen_irq_info_common_setup(info, irq, IRQT_EVTCHN, evtchn, 0);
320 evtchn_port_t evtchn,
329 return xen_irq_info_common_setup(info, irq, IRQT_IPI, evtchn, 0);
334 evtchn_port_t evtchn,
343 return xen_irq_info_common_setup(info, irq, IRQT_VIRQ, evtchn, 0);
347 evtchn_port_t evtchn,
360 return xen_irq_info_common_setup(info, irq, IRQT_PIRQ, evtchn, 0);
365 set_evtchn_to_irq(info->evtchn, -1);
366 xen_evtchn_port_remove(info->evtchn, info->cpu);
367 info->evtchn = 0;
382 return info->evtchn;
385 unsigned int irq_from_evtchn(evtchn_port_t evtchn)
387 return get_evtchn_to_irq(evtchn);
436 unsigned int cpu_from_evtchn(evtchn_port_t evtchn)
438 int irq = get_evtchn_to_irq(evtchn);
454 mask_evtchn(info->evtchn);
470 unmask_evtchn(info->evtchn);
490 static void bind_evtchn_to_cpu(evtchn_port_t evtchn, unsigned int cpu)
492 int irq = get_evtchn_to_irq(evtchn);
499 xen_evtchn_port_bind_to_cpu(evtchn, cpu, info->cpu);
514 evtchn_port_t evtchn = evtchn_from_irq(irq);
516 if (VALID_EVTCHN(evtchn))
517 notify_remote_via_evtchn(evtchn);
573 evtchn_port_t evtchn;
577 evtchn = info->evtchn;
578 if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list))
769 clear_evtchn(info->evtchn);
791 evtchn_port_t evtchn = info ? info->evtchn : 0;
795 if (!VALID_EVTCHN(evtchn))
826 evtchn_port_t evtchn = evtchn_from_irq(irq);
831 if (VALID_EVTCHN(evtchn))
843 evtchn = bind_pirq.port;
847 rc = set_evtchn_to_irq(evtchn, irq);
851 info->evtchn = evtchn;
852 bind_evtchn_to_cpu(evtchn, 0);
854 rc = xen_evtchn_port_setup(evtchn);
867 xen_evtchn_close(evtchn);
880 evtchn_port_t evtchn = evtchn_from_irq(irq);
884 if (!VALID_EVTCHN(evtchn))
888 xen_evtchn_close(evtchn);
920 evtchn_port_t evtchn = evtchn_from_irq(irq);
929 if (VALID_EVTCHN(evtchn)) {
932 xen_evtchn_close(evtchn);
1146 static int bind_evtchn_to_irq_chip(evtchn_port_t evtchn, struct irq_chip *chip)
1151 if (evtchn >= xen_evtchn_max_channels())
1156 irq = get_evtchn_to_irq(evtchn);
1166 ret = xen_irq_info_evtchn_setup(irq, evtchn);
1173 bind_evtchn_to_cpu(evtchn, 0);
1185 int bind_evtchn_to_irq(evtchn_port_t evtchn)
1187 return bind_evtchn_to_irq_chip(evtchn, &xen_dynamic_chip);
1191 int bind_evtchn_to_irq_lateeoi(evtchn_port_t evtchn)
1193 return bind_evtchn_to_irq_chip(evtchn, &xen_lateeoi_chip);
1200 evtchn_port_t evtchn;
1219 evtchn = bind_ipi.port;
1221 ret = xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi);
1227 bind_evtchn_to_cpu(evtchn, cpu);
1263 static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
1279 *evtchn = port;
1302 evtchn_port_t evtchn = 0;
1326 evtchn = bind_virq.port;
1329 ret = find_virq(virq, cpu, &evtchn);
1333 ret = xen_irq_info_virq_setup(cpu, irq, evtchn, virq);
1340 bind_evtchn_to_cpu(evtchn, cpu);
1359 static int bind_evtchn_to_irqhandler_chip(evtchn_port_t evtchn,
1367 irq = bind_evtchn_to_irq_chip(evtchn, chip);
1379 int bind_evtchn_to_irqhandler(evtchn_port_t evtchn,
1384 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
1390 int bind_evtchn_to_irqhandler_lateeoi(evtchn_port_t evtchn,
1395 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags,
1505 int evtchn_make_refcounted(evtchn_port_t evtchn)
1507 int irq = get_evtchn_to_irq(evtchn);
1526 int evtchn_get(evtchn_port_t evtchn)
1532 if (evtchn >= xen_evtchn_max_channels())
1537 irq = get_evtchn_to_irq(evtchn);
1559 void evtchn_put(evtchn_port_t evtchn)
1561 int irq = get_evtchn_to_irq(evtchn);
1691 void rebind_evtchn_irq(evtchn_port_t evtchn, int irq)
1704 /* After resume the irq<->evtchn mappings are all cleared out */
1705 BUG_ON(get_evtchn_to_irq(evtchn) != -1);
1710 (void)xen_irq_info_evtchn_setup(irq, evtchn);
1714 bind_evtchn_to_cpu(evtchn, info->cpu);
1722 /* Rebind an evtchn so that it gets delivered to a specific cpu */
1726 evtchn_port_t evtchn = info ? info->evtchn : 0;
1728 if (!VALID_EVTCHN(evtchn))
1735 bind_vcpu.port = evtchn;
1750 bind_evtchn_to_cpu(evtchn, tcpu);
1781 evtchn_port_t evtchn = info ? info->evtchn : 0;
1783 if (VALID_EVTCHN(evtchn))
1790 evtchn_port_t evtchn = info ? info->evtchn : 0;
1792 if (VALID_EVTCHN(evtchn))
1799 evtchn_port_t evtchn = info ? info->evtchn : 0;
1801 if (!VALID_EVTCHN(evtchn))
1826 evtchn_port_t evtchn = info ? info->evtchn : 0;
1828 if (!VALID_EVTCHN(evtchn))
1837 clear_evtchn(evtchn);
1843 clear_evtchn(evtchn);
1849 evtchn_port_t evtchn = info ? info->evtchn : 0;
1851 if (VALID_EVTCHN(evtchn)) {
1860 evtchn_port_t evtchn = info ? info->evtchn : 0;
1862 if (!VALID_EVTCHN(evtchn))
1866 set_evtchn(evtchn);
1913 evtchn_port_t evtchn;
1928 evtchn = bind_virq.port;
1931 (void)xen_irq_info_virq_setup(cpu, irq, evtchn, virq);
1932 bind_evtchn_to_cpu(evtchn, cpu);
1939 evtchn_port_t evtchn;
1953 evtchn = bind_ipi.port;
1956 (void)xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi);
1957 bind_evtchn_to_cpu(evtchn, cpu);
1965 evtchn_port_t evtchn = info ? info->evtchn : 0;
1967 if (VALID_EVTCHN(evtchn))
1973 evtchn_port_t evtchn = evtchn_from_irq(irq);
1975 if (VALID_EVTCHN(evtchn))
1976 set_evtchn(evtchn);
1981 evtchn_port_t evtchn = evtchn_from_irq(irq);
1984 if (VALID_EVTCHN(evtchn))
1985 ret = test_evtchn(evtchn);
1994 evtchn_port_t evtchn = evtchn_from_irq(irq);
1996 if (VALID_EVTCHN(evtchn)) {
2001 set_xen_guest_handle(poll.ports, &evtchn);
2042 info->evtchn = 0; /* zap event-channel binding */
2171 evtchn_port_t evtchn;
2183 "xen/evtchn:prepare",
2191 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++)
2192 mask_evtchn(evtchn);