diff options
author | royger <royger@FreeBSD.org> | 2014-10-22 16:51:52 +0000 |
---|---|---|
committer | royger <royger@FreeBSD.org> | 2014-10-22 16:51:52 +0000 |
commit | bca209134926c87ca1b88036757b0670f60d16ca (patch) | |
tree | 2326ae041f3d82fefca758419158d370607b934c /contrib/netbsd-tests/lib/libc/sys/t_getgroups.c | |
parent | 040f3ac494c1f69b7ae5430cc2b1452d0fbafdf0 (diff) | |
download | FreeBSD-src-bca209134926c87ca1b88036757b0670f60d16ca.zip FreeBSD-src-bca209134926c87ca1b88036757b0670f60d16ca.tar.gz |
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.
Diffstat (limited to 'contrib/netbsd-tests/lib/libc/sys/t_getgroups.c')
0 files changed, 0 insertions, 0 deletions