Lines Matching refs:evtchn
119 static int set_evtchn_to_irq(unsigned evtchn, unsigned irq) in set_evtchn_to_irq() argument
124 if (evtchn >= xen_evtchn_max_channels()) in set_evtchn_to_irq()
127 row = EVTCHN_ROW(evtchn); in set_evtchn_to_irq()
128 col = EVTCHN_COL(evtchn); in set_evtchn_to_irq()
142 evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)] = irq; in set_evtchn_to_irq()
146 int get_evtchn_to_irq(unsigned evtchn) in get_evtchn_to_irq() argument
148 if (evtchn >= xen_evtchn_max_channels()) in get_evtchn_to_irq()
150 if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL) in get_evtchn_to_irq()
152 return evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]; in get_evtchn_to_irq()
165 unsigned evtchn, in xen_irq_info_common_setup() argument
174 info->evtchn = evtchn; in xen_irq_info_common_setup()
177 ret = set_evtchn_to_irq(evtchn, irq); in xen_irq_info_common_setup()
187 unsigned evtchn) in xen_irq_info_evtchn_setup() argument
191 return xen_irq_info_common_setup(info, irq, IRQT_EVTCHN, evtchn, 0); in xen_irq_info_evtchn_setup()
196 unsigned evtchn, in xen_irq_info_ipi_setup() argument
205 return xen_irq_info_common_setup(info, irq, IRQT_IPI, evtchn, 0); in xen_irq_info_ipi_setup()
210 unsigned evtchn, in xen_irq_info_virq_setup() argument
219 return xen_irq_info_common_setup(info, irq, IRQT_VIRQ, evtchn, 0); in xen_irq_info_virq_setup()
223 unsigned evtchn, in xen_irq_info_pirq_setup() argument
236 return xen_irq_info_common_setup(info, irq, IRQT_PIRQ, evtchn, 0); in xen_irq_info_pirq_setup()
241 set_evtchn_to_irq(info->evtchn, -1); in xen_irq_info_cleanup()
242 info->evtchn = 0; in xen_irq_info_cleanup()
253 return info_for_irq(irq)->evtchn; in evtchn_from_irq()
256 unsigned irq_from_evtchn(unsigned int evtchn) in irq_from_evtchn() argument
258 return get_evtchn_to_irq(evtchn); in irq_from_evtchn()
307 unsigned int cpu_from_evtchn(unsigned int evtchn) in cpu_from_evtchn() argument
309 int irq = get_evtchn_to_irq(evtchn); in cpu_from_evtchn()
349 unsigned int evtchn; in xen_evtchn_mask_all() local
351 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++) in xen_evtchn_mask_all()
352 mask_evtchn(evtchn); in xen_evtchn_mask_all()
365 int evtchn = evtchn_from_irq(irq); in notify_remote_via_irq() local
367 if (VALID_EVTCHN(evtchn)) in notify_remote_via_irq()
368 notify_remote_via_evtchn(evtchn); in notify_remote_via_irq()
483 int evtchn = evtchn_from_irq(data->irq); in eoi_pirq() local
487 if (!VALID_EVTCHN(evtchn)) in eoi_pirq()
492 int masked = test_and_set_mask(evtchn); in eoi_pirq()
494 clear_evtchn(evtchn); in eoi_pirq()
499 unmask_evtchn(evtchn); in eoi_pirq()
501 clear_evtchn(evtchn); in eoi_pirq()
519 int evtchn = evtchn_from_irq(irq); in __startup_pirq() local
524 if (VALID_EVTCHN(evtchn)) in __startup_pirq()
536 evtchn = bind_pirq.port; in __startup_pirq()
540 rc = set_evtchn_to_irq(evtchn, irq); in __startup_pirq()
544 info->evtchn = evtchn; in __startup_pirq()
545 bind_evtchn_to_cpu(evtchn, 0); in __startup_pirq()
552 unmask_evtchn(evtchn); in __startup_pirq()
559 xen_evtchn_close(evtchn); in __startup_pirq()
572 unsigned evtchn = evtchn_from_irq(irq); in shutdown_pirq() local
576 if (!VALID_EVTCHN(evtchn)) in shutdown_pirq()
579 mask_evtchn(evtchn); in shutdown_pirq()
580 xen_evtchn_close(evtchn); in shutdown_pirq()
612 int evtchn = evtchn_from_irq(irq); in __unbind_from_irq() local
621 if (VALID_EVTCHN(evtchn)) { in __unbind_from_irq()
624 xen_evtchn_close(evtchn); in __unbind_from_irq()
840 int bind_evtchn_to_irq(unsigned int evtchn) in bind_evtchn_to_irq() argument
845 if (evtchn >= xen_evtchn_max_channels()) in bind_evtchn_to_irq()
850 irq = get_evtchn_to_irq(evtchn); in bind_evtchn_to_irq()
860 ret = xen_irq_info_evtchn_setup(irq, evtchn); in bind_evtchn_to_irq()
867 bind_evtchn_to_cpu(evtchn, 0); in bind_evtchn_to_irq()
883 int evtchn, irq; in bind_ipi_to_irq() local
902 evtchn = bind_ipi.port; in bind_ipi_to_irq()
904 ret = xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in bind_ipi_to_irq()
910 bind_evtchn_to_cpu(evtchn, cpu); in bind_ipi_to_irq()
975 int evtchn, irq, ret; in bind_virq_to_irq() local
998 evtchn = bind_virq.port; in bind_virq_to_irq()
1003 evtchn = ret; in bind_virq_to_irq()
1006 ret = xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in bind_virq_to_irq()
1013 bind_evtchn_to_cpu(evtchn, cpu); in bind_virq_to_irq()
1032 int bind_evtchn_to_irqhandler(unsigned int evtchn, in bind_evtchn_to_irqhandler() argument
1039 irq = bind_evtchn_to_irq(evtchn); in bind_evtchn_to_irqhandler()
1145 int evtchn_make_refcounted(unsigned int evtchn) in evtchn_make_refcounted() argument
1147 int irq = get_evtchn_to_irq(evtchn); in evtchn_make_refcounted()
1166 int evtchn_get(unsigned int evtchn) in evtchn_get() argument
1172 if (evtchn >= xen_evtchn_max_channels()) in evtchn_get()
1177 irq = get_evtchn_to_irq(evtchn); in evtchn_get()
1199 void evtchn_put(unsigned int evtchn) in evtchn_put() argument
1201 int irq = get_evtchn_to_irq(evtchn); in evtchn_put()
1275 void rebind_evtchn_irq(int evtchn, int irq) in rebind_evtchn_irq() argument
1289 BUG_ON(get_evtchn_to_irq(evtchn) != -1); in rebind_evtchn_irq()
1294 (void)xen_irq_info_evtchn_setup(irq, evtchn); in rebind_evtchn_irq()
1298 bind_evtchn_to_cpu(evtchn, info->cpu); in rebind_evtchn_irq()
1310 int evtchn = evtchn_from_irq(irq); in rebind_irq_to_cpu() local
1313 if (!VALID_EVTCHN(evtchn)) in rebind_irq_to_cpu()
1320 bind_vcpu.port = evtchn; in rebind_irq_to_cpu()
1327 masked = test_and_set_mask(evtchn); in rebind_irq_to_cpu()
1335 bind_evtchn_to_cpu(evtchn, tcpu); in rebind_irq_to_cpu()
1338 unmask_evtchn(evtchn); in rebind_irq_to_cpu()
1353 int evtchn = evtchn_from_irq(data->irq); in enable_dynirq() local
1355 if (VALID_EVTCHN(evtchn)) in enable_dynirq()
1356 unmask_evtchn(evtchn); in enable_dynirq()
1361 int evtchn = evtchn_from_irq(data->irq); in disable_dynirq() local
1363 if (VALID_EVTCHN(evtchn)) in disable_dynirq()
1364 mask_evtchn(evtchn); in disable_dynirq()
1369 int evtchn = evtchn_from_irq(data->irq); in ack_dynirq() local
1371 if (!VALID_EVTCHN(evtchn)) in ack_dynirq()
1376 int masked = test_and_set_mask(evtchn); in ack_dynirq()
1378 clear_evtchn(evtchn); in ack_dynirq()
1383 unmask_evtchn(evtchn); in ack_dynirq()
1385 clear_evtchn(evtchn); in ack_dynirq()
1396 unsigned int evtchn = evtchn_from_irq(data->irq); in retrigger_dynirq() local
1399 if (!VALID_EVTCHN(evtchn)) in retrigger_dynirq()
1402 masked = test_and_set_mask(evtchn); in retrigger_dynirq()
1403 set_evtchn(evtchn); in retrigger_dynirq()
1405 unmask_evtchn(evtchn); in retrigger_dynirq()
1451 int virq, irq, evtchn; in restore_cpu_virqs() local
1465 evtchn = bind_virq.port; in restore_cpu_virqs()
1468 (void)xen_irq_info_virq_setup(cpu, irq, evtchn, virq); in restore_cpu_virqs()
1469 bind_evtchn_to_cpu(evtchn, cpu); in restore_cpu_virqs()
1476 int ipi, irq, evtchn; in restore_cpu_ipis() local
1489 evtchn = bind_ipi.port; in restore_cpu_ipis()
1492 (void)xen_irq_info_ipi_setup(cpu, irq, evtchn, ipi); in restore_cpu_ipis()
1493 bind_evtchn_to_cpu(evtchn, cpu); in restore_cpu_ipis()
1500 int evtchn = evtchn_from_irq(irq); in xen_clear_irq_pending() local
1502 if (VALID_EVTCHN(evtchn)) in xen_clear_irq_pending()
1503 clear_evtchn(evtchn); in xen_clear_irq_pending()
1508 int evtchn = evtchn_from_irq(irq); in xen_set_irq_pending() local
1510 if (VALID_EVTCHN(evtchn)) in xen_set_irq_pending()
1511 set_evtchn(evtchn); in xen_set_irq_pending()
1516 int evtchn = evtchn_from_irq(irq); in xen_test_irq_pending() local
1519 if (VALID_EVTCHN(evtchn)) in xen_test_irq_pending()
1520 ret = test_evtchn(evtchn); in xen_test_irq_pending()
1529 evtchn_port_t evtchn = evtchn_from_irq(irq); in xen_poll_irq_timeout() local
1531 if (VALID_EVTCHN(evtchn)) { in xen_poll_irq_timeout()
1536 set_xen_guest_handle(poll.ports, &evtchn); in xen_poll_irq_timeout()
1578 info->evtchn = 0; /* zap event-channel binding */ in xen_irq_resume()