diff options
| author | Michael Brown | 2016-03-16 22:27:07 +0100 |
|---|---|---|
| committer | Michael Brown | 2016-03-16 23:46:05 +0100 |
| commit | c14971bf887dc7aaa85788f71f8c4bdf93d2b7a5 (patch) | |
| tree | 96f8fada3bfb72f784189308a5ae0c0da701678c /src/include | |
| parent | [hyperv] Use generic set_bit() function (diff) | |
| download | ipxe-c14971bf887dc7aaa85788f71f8c4bdf93d2b7a5.tar.gz ipxe-c14971bf887dc7aaa85788f71f8c4bdf93d2b7a5.tar.xz ipxe-c14971bf887dc7aaa85788f71f8c4bdf93d2b7a5.zip | |
[xen] Use generic test_and_clear_bit() function
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
| -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> /** |
