X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=include%2Fxen%2Fevents.h;h=e68d59a90ca88b73c21b431c3cf538165916d5a7;hb=116354d177ba2da37e91cf884e3d11e67f825efd;hp=2bde54d29be52f3b8ffc9558590cff65d4cacd31;hpb=b536b4b9623084d86f2b1f19cb44a2d6d74f00bf;p=safe%2Fjmp%2Flinux-2.6 diff --git a/include/xen/events.h b/include/xen/events.h index 2bde54d..e68d59a 100644 --- a/include/xen/events.h +++ b/include/xen/events.h @@ -5,13 +5,7 @@ #include #include - -enum ipi_vector { - XEN_RESCHEDULE_VECTOR, - XEN_CALL_FUNCTION_VECTOR, - - XEN_NR_IPIS, -}; +#include int bind_evtchn_to_irq(unsigned int evtchn); int bind_evtchn_to_irqhandler(unsigned int evtchn, @@ -37,6 +31,8 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi, void unbind_from_irqhandler(unsigned int irq, void *dev_id); void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector); +int resend_irq_on_evtchn(unsigned int irq); +void rebind_evtchn_irq(int evtchn, int irq); static inline void notify_remote_via_evtchn(int port) { @@ -45,4 +41,19 @@ static inline void notify_remote_via_evtchn(int port) } extern void notify_remote_via_irq(int irq); + +extern void xen_irq_resume(void); + +/* Clear an irq's pending state, in preparation for polling on it */ +void xen_clear_irq_pending(int irq); +void xen_set_irq_pending(int irq); +bool xen_test_irq_pending(int irq); + +/* Poll waiting for an irq to become pending. In the usual case, the + 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 */