diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-04-05 19:30:02 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-04-05 19:30:02 +0100 |
commit | 6f1d9ff91969db563dad7f8e703b88eda7ee2c8e (patch) | |
tree | 996e86277e291f2a30c124509202f707bd88ff28 /xen/include/public/event_channel.h | |
parent | b0a4d66a6cf065ab0a4341ba88cc75dccfbe1141 (diff) | |
download | xen-6f1d9ff91969db563dad7f8e703b88eda7ee2c8e.tar.gz xen-6f1d9ff91969db563dad7f8e703b88eda7ee2c8e.tar.bz2 xen-6f1d9ff91969db563dad7f8e703b88eda7ee2c8e.zip |
Backtrack on the new interface for reserved event-channel
ports, as binding them in user space via the evtchn driver
would be a pain. Instead extend VIRQs so they can be
classified as 'global' or 'per vcpu'. The former can only
be allocated once per guest, but can be re-bound to
an arbitrary VCPU.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/include/public/event_channel.h')
-rw-r--r-- | xen/include/public/event_channel.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/xen/include/public/event_channel.h b/xen/include/public/event_channel.h index c556163034..f1e067b4a3 100644 --- a/xen/include/public/event_channel.h +++ b/xen/include/public/event_channel.h @@ -50,9 +50,13 @@ typedef struct evtchn_bind_interdomain { * EVTCHNOP_bind_virq: Bind a local event channel to VIRQ <irq> on specified * vcpu. * NOTES: - * 1. A virtual IRQ may be bound to at most one event channel per vcpu. - * 2. The allocated event channel is bound to the specified vcpu. The binding - * may not be changed. + * 1. Virtual IRQs are classified as per-vcpu or global. See the VIRQ list + * in xen.h for the classification of each VIRQ. + * 2. Global VIRQs must be allocated on VCPU0 but can subsequently be + * re-bound via EVTCHNOP_bind_vcpu. + * 3. Per-vcpu VIRQs may be bound to at most one event channel per vcpu. + * The allocated event channel is bound to the specified vcpu and the + * binding cannot be changed. */ #define EVTCHNOP_bind_virq 1 typedef struct evtchn_bind_virq { @@ -152,9 +156,11 @@ typedef struct evtchn_status { * EVTCHNOP_bind_vcpu: Specify which vcpu a channel should notify when an * event is pending. * NOTES: - * 1. IPI- and VIRQ-bound channels always notify the vcpu that initialised - * the binding. This binding cannot be changed. - * 2. All other channels notify vcpu0 by default. This default is set when + * 1. IPI-bound channels always notify the vcpu specified at bind time. + * This binding cannot be changed. + * 2. Per-VCPU VIRQ channels always notify the vcpu specified at bind time. + * This binding cannot be changed. + * 3. All other channels notify vcpu0 by default. This default is set when * the channel is allocated (a port that is freed and subsequently reused * has its binding reset to vcpu0). */ |