aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/xen.h
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@citrix.com>2013-10-14 10:20:02 +0200
committerJan Beulich <jbeulich@suse.com>2013-10-14 10:20:02 +0200
commitd2d50c2f308f8b5a9e30cb4a4bebf23aa81211f5 (patch)
tree188ff5255f86fca3cf2780a7f08e3a986ecb828c /xen/include/public/xen.h
parentea963e094a01cbbac203f0252c28808cfdc7f8ed (diff)
downloadxen-d2d50c2f308f8b5a9e30cb4a4bebf23aa81211f5.tar.gz
xen-d2d50c2f308f8b5a9e30cb4a4bebf23aa81211f5.tar.bz2
xen-d2d50c2f308f8b5a9e30cb4a4bebf23aa81211f5.zip
evtchn: add FIFO-based event channel ABI
Add the event channel hypercall sub-ops and the definitions for the shared data structures for the FIFO-based event channel ABI. The design document for this new ABI is available here: http://xenbits.xen.org/people/dvrabel/event-channels-F.pdf In summary, events are reported using a per-domain shared event array of event words. Each event word has PENDING, LINKED and MASKED bits and a LINK field for pointing to the next event in the event queue. There are 16 event queues (with different priorities) per-VCPU. Key advantages of this new ABI include: - Support for over 100,000 events (2^17). - 16 different event priorities. - Improved fairness in event latency through the use of FIFOs. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/include/public/xen.h')
-rw-r--r--xen/include/public/xen.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b50bd050ba..8c5697e16c 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -552,11 +552,13 @@ struct multicall_entry {
typedef struct multicall_entry multicall_entry_t;
DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);
+#if __XEN_INTERFACE_VERSION__ < 0x00040400
/*
- * Event channel endpoints per domain:
+ * Event channel endpoints per domain (when using the 2-level ABI):
* 1024 if a long is 32 bits; 4096 if a long is 64 bits.
*/
-#define NR_EVENT_CHANNELS (sizeof(xen_ulong_t) * sizeof(xen_ulong_t) * 64)
+#define NR_EVENT_CHANNELS EVTCHN_2L_NR_CHANNELS
+#endif
struct vcpu_time_info {
/*