diff options
Diffstat (limited to 'src/include/ipxe')
| -rw-r--r-- | src/include/ipxe/xen.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/include/ipxe/xen.h b/src/include/ipxe/xen.h index eac1145ad..0fb8b7625 100644 --- a/src/include/ipxe/xen.h +++ b/src/include/ipxe/xen.h @@ -13,6 +13,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define __XEN_INTERFACE_VERSION__ 0x00040400 #include <stdint.h> +#include <ipxe/bitops.h> #include <ipxe/uaccess.h> #include <xen/xen.h> #include <xen/event_channel.h> @@ -58,6 +59,19 @@ struct xen_hypervisor { struct xen_store store; }; +/** + * Test and clear pending event + * + * @v xen Xen hypervisor + * @v port Event channel port + * @ret pending Event was pending + */ +static inline __attribute__ (( always_inline )) int +xenevent_pending ( struct xen_hypervisor *xen, evtchn_port_t port ) { + + return test_and_clear_bit ( port, xen->shared->evtchn_pending ); +} + #include <bits/xen.h> /** |
