Lines Matching refs:evtchn

109 	evtchn_port_t evtchn;   /* event channel */  member
221 static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq) in set_evtchn_to_irq() argument
227 if (evtchn >= xen_evtchn_max_channels()) in set_evtchn_to_irq()
230 row = EVTCHN_ROW(evtchn); in set_evtchn_to_irq()
231 col = EVTCHN_COL(evtchn); in set_evtchn_to_irq()
256 int get_evtchn_to_irq(evtchn_port_t evtchn) in get_evtchn_to_irq() argument
258 if (evtchn >= xen_evtchn_max_channels()) in get_evtchn_to_irq()
260 if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL) in get_evtchn_to_irq()
262 return READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]); in get_evtchn_to_irq()
312 evtchn_port_t evtchn, in xen_irq_info_common_setup() argument
321 info->evtchn = evtchn; in xen_irq_info_common_setup()
326 ret = set_evtchn_to_irq(evtchn, irq); in xen_irq_info_common_setup()
332 return xen_evtchn_port_setup(evtchn); in xen_irq_info_common_setup()
336 evtchn_port_t evtchn, in xen_irq_info_evtchn_setup() argument
342 ret = xen_irq_info_common_setup(info, irq, IRQT_EVTCHN, evtchn, 0); in xen_irq_info_evtchn_setup()
352 evtchn_port_t evtchn, in xen_irq_info_ipi_setup() argument
361 return xen_irq_info_common_setup(info, irq, IRQT_IPI, evtchn, 0); in xen_irq_info_ipi_setup()
366 evtchn_port_t evtchn, in xen_irq_info_virq_setup() argument
375 return xen_irq_info_common_setup(info, irq, IRQT_VIRQ, evtchn, 0); in xen_irq_info_virq_setup()
379 evtchn_port_t evtchn, in xen_irq_info_pirq_setup() argument
392 return xen_irq_info_common_setup(info, irq, IRQT_PIRQ, evtchn, 0); in xen_irq_info_pirq_setup()
397 set_evtchn_to_irq(info->evtchn, -1); in xen_irq_info_cleanup()
398 xen_evtchn_port_remove(info->evtchn, info->cpu); in xen_irq_info_cleanup()
399 info->evtchn = 0; in xen_irq_info_cleanup()
415 return info->evtchn; in evtchn_from_irq()
418 unsigned int irq_from_evtchn(evtchn_port_t evtchn) in irq_from_evtchn() argument
420 return get_evtchn_to_irq(evtchn); in irq_from_evtchn()
469 unsigned int cpu_from_evtchn(evtchn_port_t evtchn) in cpu_from_evtchn() argument
471 int irq = get_evtchn_to_irq(evtchn); in cpu_from_evtchn()
487 mask_evtchn(info->evtchn); in do_mask()
503 unmask_evtchn(info->evtchn); in do_unmask()
523 static void bind_evtchn_to_cpu(evtchn_port_t evtchn, unsigned int cpu, in bind_evtchn_to_cpu() argument
526 int irq = get_evtchn_to_irq(evtchn); in bind_evtchn_to_cpu()
538 xen_evtchn_port_bind_to_cpu(evtchn, cpu, info->cpu); in bind_evtchn_to_cpu()
555 evtchn_port_t evtchn = evtchn_from_irq(irq); in notify_remote_via_irq() local
557 if (VALID_EVTCHN(evtchn)) in notify_remote_via_irq()
558 notify_remote_via_evtchn(evtchn); in notify_remote_via_irq()
612 evtchn_port_t evtchn; in xen_irq_lateeoi_locked() local
616 evtchn = info->evtchn; in xen_irq_lateeoi_locked()
617 if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list)) in xen_irq_lateeoi_locked()
831 clear_evtchn(info->evtchn); in event_handler_exit()
853 evtchn_port_t evtchn = info ? info->evtchn : 0; in eoi_pirq() local
857 if (!VALID_EVTCHN(evtchn)) in eoi_pirq()
878 evtchn_port_t evtchn = evtchn_from_irq(irq); in __startup_pirq() local
883 if (VALID_EVTCHN(evtchn)) in __startup_pirq()
895 evtchn = bind_pirq.port; in __startup_pirq()
899 rc = set_evtchn_to_irq(evtchn, irq); in __startup_pirq()
903 info->evtchn = evtchn; in __startup_pirq()
904 bind_evtchn_to_cpu(evtchn, 0, false); in __startup_pirq()
906 rc = xen_evtchn_port_setup(evtchn); in __startup_pirq()
919 xen_evtchn_close(evtchn); in __startup_pirq()
932 evtchn_port_t evtchn = evtchn_from_irq(irq); in shutdown_pirq() local
936 if (!VALID_EVTCHN(evtchn)) in shutdown_pirq()
940 xen_evtchn_close(evtchn); in shutdown_pirq()
972 evtchn_port_t evtchn = evtchn_from_irq(irq); in __unbind_from_irq() local
981 if (VALID_EVTCHN(evtchn)) { in __unbind_from_irq()
985 xen_evtchn_close(evtchn); in __unbind_from_irq()
1204 static int bind_evtchn_to_irq_chip(evtchn_port_t evtchn, struct irq_chip *chip, in bind_evtchn_to_irq_chip() argument
1210 if (evtchn >= xen_evtchn_max_channels()) in bind_evtchn_to_irq_chip()
1215 irq = get_evtchn_to_irq(evtchn); in bind_evtchn_to_irq_chip()
1225 ret = xen_irq_info_evtchn_setup(irq, evtchn, dev); in bind_evtchn_to_irq_chip()
1238 bind_evtchn_to_cpu(evtchn, 0, false); in bind_evtchn_to_irq_chip()
1250 int bind_evtchn_to_irq(evtchn_port_t evtchn) in bind_evtchn_to_irq() argument
1252 return bind_evtchn_to_irq_chip(evtchn, &xen_dynamic_chip, NULL); in bind_evtchn_to_irq()
1256 int bind_evtchn_to_irq_lateeoi(evtchn_port_t evtchn) in bind_evtchn_to_irq_lateeoi() argument
1258 return bind_evtchn_to_irq_chip(evtchn, &xen_lateeoi_chip, NULL); in bind_evtchn_to_irq_lateeoi()
1265 evtchn_port_t evtchn; in bind_ipi_to_irq() local
1284 evtchn = bind_ipi.port; in bind_ipi_to_irq()
1286 ret = xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in bind_ipi_to_irq()
1296 bind_evtchn_to_cpu(evtchn, cpu, true); in bind_ipi_to_irq()
1332 static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn) in find_virq() argument
1348 *evtchn = port; in find_virq()
1371 evtchn_port_t evtchn = 0; in bind_virq_to_irq() local
1395 evtchn = bind_virq.port; in bind_virq_to_irq()
1398 ret = find_virq(virq, cpu, &evtchn); in bind_virq_to_irq()
1402 ret = xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in bind_virq_to_irq()
1413 bind_evtchn_to_cpu(evtchn, cpu, percpu); in bind_virq_to_irq()
1432 static int bind_evtchn_to_irqhandler_chip(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler_chip() argument
1440 irq = bind_evtchn_to_irq_chip(evtchn, chip, NULL); in bind_evtchn_to_irqhandler_chip()
1452 int bind_evtchn_to_irqhandler(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler() argument
1457 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags, in bind_evtchn_to_irqhandler()
1463 int bind_evtchn_to_irqhandler_lateeoi(evtchn_port_t evtchn, in bind_evtchn_to_irqhandler_lateeoi() argument
1468 return bind_evtchn_to_irqhandler_chip(evtchn, handler, irqflags, in bind_evtchn_to_irqhandler_lateeoi()
1577 int evtchn_make_refcounted(evtchn_port_t evtchn) in evtchn_make_refcounted() argument
1579 int irq = get_evtchn_to_irq(evtchn); in evtchn_make_refcounted()
1598 int evtchn_get(evtchn_port_t evtchn) in evtchn_get() argument
1604 if (evtchn >= xen_evtchn_max_channels()) in evtchn_get()
1609 irq = get_evtchn_to_irq(evtchn); in evtchn_get()
1631 void evtchn_put(evtchn_port_t evtchn) in evtchn_put() argument
1633 int irq = get_evtchn_to_irq(evtchn); in evtchn_put()
1764 void rebind_evtchn_irq(evtchn_port_t evtchn, int irq) in rebind_evtchn_irq() argument
1778 BUG_ON(get_evtchn_to_irq(evtchn) != -1); in rebind_evtchn_irq()
1783 (void)xen_irq_info_evtchn_setup(irq, evtchn, NULL); in rebind_evtchn_irq()
1787 bind_evtchn_to_cpu(evtchn, info->cpu, false); in rebind_evtchn_irq()
1797 evtchn_port_t evtchn = info ? info->evtchn : 0; in xen_rebind_evtchn_to_cpu() local
1799 if (!VALID_EVTCHN(evtchn)) in xen_rebind_evtchn_to_cpu()
1806 bind_vcpu.port = evtchn; in xen_rebind_evtchn_to_cpu()
1821 bind_evtchn_to_cpu(evtchn, tcpu, false); in xen_rebind_evtchn_to_cpu()
1872 evtchn_port_t evtchn = info ? info->evtchn : 0; in enable_dynirq() local
1874 if (VALID_EVTCHN(evtchn)) in enable_dynirq()
1881 evtchn_port_t evtchn = info ? info->evtchn : 0; in disable_dynirq() local
1883 if (VALID_EVTCHN(evtchn)) in disable_dynirq()
1890 evtchn_port_t evtchn = info ? info->evtchn : 0; in ack_dynirq() local
1892 if (VALID_EVTCHN(evtchn)) in ack_dynirq()
1905 evtchn_port_t evtchn = info ? info->evtchn : 0; in lateeoi_ack_dynirq() local
1907 if (VALID_EVTCHN(evtchn)) { in lateeoi_ack_dynirq()
1914 clear_evtchn(evtchn); in lateeoi_ack_dynirq()
1921 evtchn_port_t evtchn = info ? info->evtchn : 0; in lateeoi_mask_ack_dynirq() local
1923 if (VALID_EVTCHN(evtchn)) { in lateeoi_mask_ack_dynirq()
1932 evtchn_port_t evtchn = info ? info->evtchn : 0; in retrigger_dynirq() local
1934 if (!VALID_EVTCHN(evtchn)) in retrigger_dynirq()
1938 set_evtchn(evtchn); in retrigger_dynirq()
1985 evtchn_port_t evtchn; in restore_cpu_virqs() local
2000 evtchn = bind_virq.port; in restore_cpu_virqs()
2003 (void)xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in restore_cpu_virqs()
2005 bind_evtchn_to_cpu(evtchn, cpu, false); in restore_cpu_virqs()
2012 evtchn_port_t evtchn; in restore_cpu_ipis() local
2026 evtchn = bind_ipi.port; in restore_cpu_ipis()
2029 (void)xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in restore_cpu_ipis()
2031 bind_evtchn_to_cpu(evtchn, cpu, false); in restore_cpu_ipis()
2039 evtchn_port_t evtchn = info ? info->evtchn : 0; in xen_clear_irq_pending() local
2041 if (VALID_EVTCHN(evtchn)) in xen_clear_irq_pending()
2047 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_set_irq_pending() local
2049 if (VALID_EVTCHN(evtchn)) in xen_set_irq_pending()
2050 set_evtchn(evtchn); in xen_set_irq_pending()
2055 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_test_irq_pending() local
2058 if (VALID_EVTCHN(evtchn)) in xen_test_irq_pending()
2059 ret = test_evtchn(evtchn); in xen_test_irq_pending()
2068 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_poll_irq_timeout() local
2070 if (VALID_EVTCHN(evtchn)) { in xen_poll_irq_timeout()
2075 set_xen_guest_handle(poll.ports, &evtchn); in xen_poll_irq_timeout()
2117 info->evtchn = 0; in xen_irq_resume()
2290 evtchn_port_t evtchn; in xen_init_IRQ() local
2310 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++) in xen_init_IRQ()
2311 mask_evtchn(evtchn); in xen_init_IRQ()