summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2009-02-06 19:20:31 -0800
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-03-30 09:26:49 -0700
commitd4c045364d3107603187f21a56ec231e74d26441 (patch)
treeb182dcd46168c14f4a97f5c891b8ea1fe51008d1
parent6d02c42698f99eccb290ac53d4f10ca883b9f90c (diff)
xen: add irq_from_evtchn
Given an evtchn, return the corresponding irq. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
-rw-r--r--drivers/xen/events.c6
-rw-r--r--include/xen/events.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 30963af5dba..1cd2a0e15ae 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -151,6 +151,12 @@ static unsigned int evtchn_from_irq(unsigned irq)
return info_for_irq(irq)->evtchn;
}
+unsigned irq_from_evtchn(unsigned int evtchn)
+{
+ return evtchn_to_irq[evtchn];
+}
+EXPORT_SYMBOL_GPL(irq_from_evtchn);
+
static enum ipi_vector ipi_from_irq(unsigned irq)
{
struct irq_info *info = info_for_irq(irq);
diff --git a/include/xen/events.h b/include/xen/events.h
index 0d5f1adc036..e68d59a90ca 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -53,4 +53,7 @@ bool xen_test_irq_pending(int irq);
irq will be disabled so it won't deliver an interrupt. */
void xen_poll_irq(int irq);
+/* Determine the IRQ which is bound to an event channel */
+unsigned irq_from_evtchn(unsigned int evtchn);
+
#endif /* _XEN_EVENTS_H */