Lines Matching refs:evtchn
106 evtchn_port_t evtchn; /* event channel */ member
214 static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq) in set_evtchn_to_irq() argument
220 if (evtchn >= xen_evtchn_max_channels()) in set_evtchn_to_irq()
223 row = EVTCHN_ROW(evtchn); in set_evtchn_to_irq()
224 col = EVTCHN_COL(evtchn); in set_evtchn_to_irq()
249 int get_evtchn_to_irq(evtchn_port_t evtchn) in get_evtchn_to_irq() argument
251 if (evtchn >= xen_evtchn_max_channels()) in get_evtchn_to_irq()
253 if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL) in get_evtchn_to_irq()
255 return READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]); in get_evtchn_to_irq()
279 evtchn_port_t evtchn, in xen_irq_info_common_setup() argument
288 info->evtchn = evtchn; in xen_irq_info_common_setup()
293 ret = set_evtchn_to_irq(evtchn, irq); in xen_irq_info_common_setup()
299 return xen_evtchn_port_setup(evtchn); in xen_irq_info_common_setup()
303 evtchn_port_t evtchn) in xen_irq_info_evtchn_setup() argument
307 return xen_irq_info_common_setup(info, irq, IRQT_EVTCHN, evtchn, 0); in xen_irq_info_evtchn_setup()
312 evtchn_port_t evtchn, in xen_irq_info_ipi_setup() argument
321 return xen_irq_info_common_setup(info, irq, IRQT_IPI, evtchn, 0); in xen_irq_info_ipi_setup()
326 evtchn_port_t evtchn, in xen_irq_info_virq_setup() argument
335 return xen_irq_info_common_setup(info, irq, IRQT_VIRQ, evtchn, 0); in xen_irq_info_virq_setup()
339 evtchn_port_t evtchn, in xen_irq_info_pirq_setup() argument
352 return xen_irq_info_common_setup(info, irq, IRQT_PIRQ, evtchn, 0); in xen_irq_info_pirq_setup()
357 set_evtchn_to_irq(info->evtchn, -1); in xen_irq_info_cleanup()
358 xen_evtchn_port_remove(info->evtchn, info->cpu); in xen_irq_info_cleanup()
359 info->evtchn = 0; in xen_irq_info_cleanup()
374 return info->evtchn; in evtchn_from_irq()
377 unsigned int irq_from_evtchn(evtchn_port_t evtchn) in irq_from_evtchn() argument
379 return get_evtchn_to_irq(evtchn); in irq_from_evtchn()
428 unsigned int cpu_from_evtchn(evtchn_port_t evtchn) in cpu_from_evtchn() argument
430 int irq = get_evtchn_to_irq(evtchn); in cpu_from_evtchn()
446 mask_evtchn(info->evtchn); in do_mask()
462 unmask_evtchn(info->evtchn); in do_unmask()
482 static void bind_evtchn_to_cpu(evtchn_port_t evtchn, unsigned int cpu) in bind_evtchn_to_cpu() argument
484 int irq = get_evtchn_to_irq(evtchn); in bind_evtchn_to_cpu()
491 xen_evtchn_port_bind_to_cpu(evtchn, cpu, info->cpu); in bind_evtchn_to_cpu()
506 evtchn_port_t evtchn = evtchn_from_irq(irq); in notify_remote_via_irq() local
508 if (VALID_EVTCHN(evtchn)) in notify_remote_via_irq()
509 notify_remote_via_evtchn(evtchn); in notify_remote_via_irq()
563 evtchn_port_t evtchn; in xen_irq_lateeoi_locked() local
567 evtchn = info->evtchn; in xen_irq_lateeoi_locked()
568 if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list)) in xen_irq_lateeoi_locked()
769 clear_evtchn(info->evtchn); in event_handler_exit()
791 evtchn_port_t evtchn = info ? info->evtchn : 0; in eoi_pirq() local
795 if (!VALID_EVTCHN(evtchn)) in eoi_pirq()
826 evtchn_port_t evtchn = evtchn_from_irq(irq); in __startup_pirq() local
831 if (VALID_EVTCHN(evtchn)) in __startup_pirq()
843 evtchn = bind_pirq.port; in __startup_pirq()
847 rc = set_evtchn_to_irq(evtchn, irq); in __startup_pirq()
851 info->evtchn = evtchn; in __startup_pirq()
852 bind_evtchn_to_cpu(evtchn, 0); in __startup_pirq()
854 rc = xen_evtchn_port_setup(evtchn); in __startup_pirq()
867 xen_evtchn_close(evtchn); in __startup_pirq()
880 evtchn_port_t evtchn = evtchn_from_irq(irq); in shutdown_pirq() local
884 if (!VALID_EVTCHN(evtchn)) in shutdown_pirq()
888 xen_evtchn_close(evtchn); in shutdown_pirq()
920 evtchn_port_t evtchn = evtchn_from_irq(irq); in __unbind_from_irq() local
929 if (VALID_EVTCHN(evtchn)) { in __unbind_from_irq()
932 xen_evtchn_close(evtchn); in __unbind_from_irq()
1146 static int bind_evtchn_to_irq_chip(evtchn_port_t evtchn, struct irq_chip *chip) in bind_evtchn_to_irq_chip() argument
1151 if (evtchn >= xen_evtchn_max_channels()) in bind_evtchn_to_irq_chip()
1156 irq = get_evtchn_to_irq(evtchn); in bind_evtchn_to_irq_chip()
1166 ret = xen_irq_info_evtchn_setup(irq, evtchn); in bind_evtchn_to_irq_chip()
1173 bind_evtchn_to_cpu(evtchn, 0); in bind_evtchn_to_irq_chip()
1185 int bind_evtchn_to_irq(evtchn_port_t evtchn) in bind_evtchn_to_irq() argument
1187 return bind_evtchn_to_irq_chip(evtchn, &xen_dynamic_chip); in bind_evtchn_to_irq()
1191 int bind_evtchn_to_irq_lateeoi(evtchn_port_t evtchn) in bind_evtchn_to_irq_lateeoi() argument
1193 return bind_evtchn_to_irq_chip(evtchn, &xen_lateeoi_chip); in bind_evtchn_to_irq_lateeoi()
1200 evtchn_port_t evtchn; in bind_ipi_to_irq() local
1219 evtchn = bind_ipi.port; in bind_ipi_to_irq()
1221 ret = xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in bind_ipi_to_irq()
1227 bind_evtchn_to_cpu(evtchn, cpu); in bind_ipi_to_irq()
1263 static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn) in find_virq() argument
1279 *evtchn = port; in find_virq()
1302 evtchn_port_t evtchn = 0; in bind_virq_to_irq() local
1326 evtchn = bind_virq.port; in bind_virq_to_irq()
1329 ret = find_virq(virq, cpu, &evtchn); in bind_virq_to_irq()
1333 ret = xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in bind_virq_to_irq()
1340 bind_evtchn_to_cpu(evtchn, cpu); in bind_virq_to_irq()
1359 static int bind_evtchn_to_irqhandler_chip(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler_chip() argument
1367 irq = bind_evtchn_to_irq_chip(evtchn, chip); in bind_evtchn_to_irqhandler_chip()
1379 int bind_evtchn_to_irqhandler(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler() argument
1384 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags, in bind_evtchn_to_irqhandler()
1390 int bind_evtchn_to_irqhandler_lateeoi(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler_lateeoi() argument
1395 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags, in bind_evtchn_to_irqhandler_lateeoi()
1505 int evtchn_make_refcounted(evtchn_port_t evtchn) in evtchn_make_refcounted() argument
1507 int irq = get_evtchn_to_irq(evtchn); in evtchn_make_refcounted()
1526 int evtchn_get(evtchn_port_t evtchn) in evtchn_get() argument
1532 if (evtchn >= xen_evtchn_max_channels()) in evtchn_get()
1537 irq = get_evtchn_to_irq(evtchn); in evtchn_get()
1559 void evtchn_put(evtchn_port_t evtchn) in evtchn_put() argument
1561 int irq = get_evtchn_to_irq(evtchn); in evtchn_put()
1684 void rebind_evtchn_irq(evtchn_port_t evtchn, int irq) in rebind_evtchn_irq() argument
1698 BUG_ON(get_evtchn_to_irq(evtchn) != -1); in rebind_evtchn_irq()
1703 (void)xen_irq_info_evtchn_setup(irq, evtchn); in rebind_evtchn_irq()
1707 bind_evtchn_to_cpu(evtchn, info->cpu); in rebind_evtchn_irq()
1719 evtchn_port_t evtchn = info ? info->evtchn : 0; in xen_rebind_evtchn_to_cpu() local
1721 if (!VALID_EVTCHN(evtchn)) in xen_rebind_evtchn_to_cpu()
1728 bind_vcpu.port = evtchn; in xen_rebind_evtchn_to_cpu()
1743 bind_evtchn_to_cpu(evtchn, tcpu); in xen_rebind_evtchn_to_cpu()
1774 evtchn_port_t evtchn = info ? info->evtchn : 0; in enable_dynirq() local
1776 if (VALID_EVTCHN(evtchn)) in enable_dynirq()
1783 evtchn_port_t evtchn = info ? info->evtchn : 0; in disable_dynirq() local
1785 if (VALID_EVTCHN(evtchn)) in disable_dynirq()
1792 evtchn_port_t evtchn = info ? info->evtchn : 0; in ack_dynirq() local
1794 if (!VALID_EVTCHN(evtchn)) in ack_dynirq()
1819 evtchn_port_t evtchn = info ? info->evtchn : 0; in lateeoi_ack_dynirq() local
1821 if (!VALID_EVTCHN(evtchn)) in lateeoi_ack_dynirq()
1830 clear_evtchn(evtchn); in lateeoi_ack_dynirq()
1836 clear_evtchn(evtchn); in lateeoi_ack_dynirq()
1842 evtchn_port_t evtchn = info ? info->evtchn : 0; in lateeoi_mask_ack_dynirq() local
1844 if (VALID_EVTCHN(evtchn)) { in lateeoi_mask_ack_dynirq()
1853 evtchn_port_t evtchn = info ? info->evtchn : 0; in retrigger_dynirq() local
1855 if (!VALID_EVTCHN(evtchn)) in retrigger_dynirq()
1859 set_evtchn(evtchn); in retrigger_dynirq()
1906 evtchn_port_t evtchn; in restore_cpu_virqs() local
1921 evtchn = bind_virq.port; in restore_cpu_virqs()
1924 (void)xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in restore_cpu_virqs()
1925 bind_evtchn_to_cpu(evtchn, cpu); in restore_cpu_virqs()
1932 evtchn_port_t evtchn; in restore_cpu_ipis() local
1946 evtchn = bind_ipi.port; in restore_cpu_ipis()
1949 (void)xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in restore_cpu_ipis()
1950 bind_evtchn_to_cpu(evtchn, cpu); in restore_cpu_ipis()
1958 evtchn_port_t evtchn = info ? info->evtchn : 0; in xen_clear_irq_pending() local
1960 if (VALID_EVTCHN(evtchn)) in xen_clear_irq_pending()
1966 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_set_irq_pending() local
1968 if (VALID_EVTCHN(evtchn)) in xen_set_irq_pending()
1969 set_evtchn(evtchn); in xen_set_irq_pending()
1974 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_test_irq_pending() local
1977 if (VALID_EVTCHN(evtchn)) in xen_test_irq_pending()
1978 ret = test_evtchn(evtchn); in xen_test_irq_pending()
1987 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_poll_irq_timeout() local
1989 if (VALID_EVTCHN(evtchn)) { in xen_poll_irq_timeout()
1994 set_xen_guest_handle(poll.ports, &evtchn); in xen_poll_irq_timeout()
2035 info->evtchn = 0; /* zap event-channel binding */ in xen_irq_resume()
2164 evtchn_port_t evtchn; in xen_init_IRQ() local
2184 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++) in xen_init_IRQ()
2185 mask_evtchn(evtchn); in xen_init_IRQ()