Interrupts are virtualized by mapping them to event channels,
which are delivered asynchronously to the target domain using a callback
supplied via the set_callbacks() hypercall. A guest OS can map
these events onto its standard interrupt dispatch mechanisms. Xen is
responsible for determining the target domain that will handle each
physical interrupt source. For more details on the binding of event
sources to event channels, see Chapter 8.