freebsd-nq/sys/x86/xen
Roger Pau Monné 6d54cab1fe xen: allow to register event channels without handlers
This is needed by the event channel user-space device, that requires
registering event channels without unmasking them. intr_add_handler
will unconditionally unmask the event channel, so we avoid calling it
if no filter/handler is provided, and then the user will be in charge
of calling it when ready.

In order to do this, we need to change the opaque type
xen_intr_handle_t to contain the event channel port instead of the
opaque cookie returned by intr_add_handler, since now registration of
event channels without handlers are allowed. The cookie will now be
stored inside of the private xenisrc struct. Also, introduce a new
function called xen_intr_add_handler that allows adding a
filter/handler after the event channel has been registered.

Sponsored by: Citrix Systems R&D

x86/xen/xen_intr.c:
 - Leave the event channel without a handler if no filter/handler is
   provided to xen_intr_bind_isrc.
 - Don't perform an evtchn_mask_port, intr_add_handler will already do
   it.
 - Change the opaque type xen_intr_handle_t to contain a pointer to
   the event channel port number, and make the necessary changes to
   related functions.
 - Introduce a new function called xen_intr_add_handler that can be
   used to add filter/handlers to an event channel after registration.

xen/xen_intr.h:
 - Add prototype of xen_intr_add_handler.
2014-10-22 16:51:52 +00:00
..
hvm.c xen: add hooks for Xen PV APIC 2014-06-16 08:43:45 +00:00
pv.c xen: fix usage of kern_getenv in PVH code 2014-10-22 16:49:00 +00:00
pvcpu_enum.c xen: implement support for mapping IO APIC interrupts on Xen 2014-08-04 09:01:21 +00:00
xen_apic.c Fix build with SMP disabled. 2014-07-15 15:40:33 +00:00
xen_intr.c xen: allow to register event channels without handlers 2014-10-22 16:51:52 +00:00
xen_msi.c msi: add Xen MSI implementation 2014-09-30 16:46:45 +00:00
xen_nexus.c msi: add Xen MSI implementation 2014-09-30 16:46:45 +00:00
xen_pci.c xen: add the Xen implementation of pci_child_added method 2014-09-30 16:49:17 +00:00
xenpv.c xen: add missing files 2014-06-16 08:54:04 +00:00