36#include <contrib/xen/event_channel.h>
39typedef void * xen_intr_handle_t;
41void xen_intr_handle_upcall(
struct trapframe *trap_frame);
61int xen_intr_bind_local_port(device_t dev, evtchn_port_t local_port,
62 driver_filter_t filter, driver_intr_t handler,
void *arg,
63 enum intr_type irqflags, xen_intr_handle_t *handlep);
85int xen_intr_alloc_and_bind_local_port(device_t dev,
86 u_int remote_domain, driver_filter_t filter, driver_intr_t handler,
87 void *arg,
enum intr_type irqflags, xen_intr_handle_t *handlep);
109int xen_intr_bind_remote_port(device_t dev, u_int remote_domain,
110 evtchn_port_t remote_port, driver_filter_t filter,
111 driver_intr_t handler,
void *arg,
enum intr_type irqflags,
112 xen_intr_handle_t *handlep);
134int xen_intr_bind_virq(device_t dev, u_int virq, u_int cpu,
135 driver_filter_t filter, driver_intr_t handler,
136 void *arg,
enum intr_type irqflags, xen_intr_handle_t *handlep);
151int xen_intr_alloc_and_bind_ipi(u_int cpu,
152 driver_filter_t filter,
enum intr_type irqflags,
153 xen_intr_handle_t *handlep);
169void xen_intr_unbind(xen_intr_handle_t *handle);
183xen_intr_describe(xen_intr_handle_t port_handle,
const char *fmt, ...)
184 __attribute__((format(printf, 2, 3)));
196void xen_intr_signal(xen_intr_handle_t handle);
207evtchn_port_t xen_intr_port(xen_intr_handle_t handle);
224int xen_intr_add_handler(const
char *name, driver_filter_t filter,
225 driver_intr_t handler,
void *arg, enum intr_type flags,
226 xen_intr_handle_t handle);
237int xen_intr_get_evtchn_from_port(evtchn_port_t port,
238 xen_intr_handle_t *handlep);