diff options
author | Sheng Yang <sheng@linux.intel.com> | 2010-05-14 12:40:51 +0100 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-07-22 16:45:59 -0700 |
commit | 38e20b07efd541a959de367dc90a17f92ce2e8a6 (patch) | |
tree | bb087e243bf6e707dd063be2024a3b90de2f9413 /include/xen/hvm.h | |
parent | bee6ab53e652a414af20392899879b58cd80d033 (diff) | |
download | op-kernel-dev-38e20b07efd541a959de367dc90a17f92ce2e8a6.zip op-kernel-dev-38e20b07efd541a959de367dc90a17f92ce2e8a6.tar.gz |
x86/xen: event channels delivery on HVM.
Set the callback to receive evtchns from Xen, using the
callback vector delivery mechanism.
The traditional way for receiving event channel notifications from Xen
is via the interrupts from the platform PCI device.
The callback vector is a newer alternative that allow us to receive
notifications on any vcpu and doesn't need any PCI support: we allocate
a vector exclusively to receive events, in the vector handler we don't
need to interact with the vlapic, therefore we avoid a VMEXIT.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'include/xen/hvm.h')
-rw-r--r-- | include/xen/hvm.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/xen/hvm.h b/include/xen/hvm.h index 5dfe8fb..b193fa2 100644 --- a/include/xen/hvm.h +++ b/include/xen/hvm.h @@ -3,6 +3,7 @@ #define XEN_HVM_H__ #include <xen/interface/hvm/params.h> +#include <asm/xen/hypercall.h> static inline int hvm_get_parameter(int idx, uint64_t *value) { @@ -21,4 +22,9 @@ static inline int hvm_get_parameter(int idx, uint64_t *value) return r; } +#define HVM_CALLBACK_VIA_TYPE_VECTOR 0x2 +#define HVM_CALLBACK_VIA_TYPE_SHIFT 56 +#define HVM_CALLBACK_VECTOR(x) (((uint64_t)HVM_CALLBACK_VIA_TYPE_VECTOR)<<\ + HVM_CALLBACK_VIA_TYPE_SHIFT | (x)) + #endif /* XEN_HVM_H__ */ |