diff options
Diffstat (limited to 'include/xen/hvm.h')
-rw-r--r-- | include/xen/hvm.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/xen/hvm.h b/include/xen/hvm.h new file mode 100644 index 000000000000..b193fa2f9fdd --- /dev/null +++ b/include/xen/hvm.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* Simple wrappers around HVM functions */ | ||
2 | #ifndef XEN_HVM_H__ | ||
3 | #define XEN_HVM_H__ | ||
4 | |||
5 | #include <xen/interface/hvm/params.h> | ||
6 | #include <asm/xen/hypercall.h> | ||
7 | |||
8 | static inline int hvm_get_parameter(int idx, uint64_t *value) | ||
9 | { | ||
10 | struct xen_hvm_param xhv; | ||
11 | int r; | ||
12 | |||
13 | xhv.domid = DOMID_SELF; | ||
14 | xhv.index = idx; | ||
15 | r = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv); | ||
16 | if (r < 0) { | ||
17 | printk(KERN_ERR "Cannot get hvm parameter %d: %d!\n", | ||
18 | idx, r); | ||
19 | return r; | ||
20 | } | ||
21 | *value = xhv.value; | ||
22 | return r; | ||
23 | } | ||
24 | |||
25 | #define HVM_CALLBACK_VIA_TYPE_VECTOR 0x2 | ||
26 | #define HVM_CALLBACK_VIA_TYPE_SHIFT 56 | ||
27 | #define HVM_CALLBACK_VECTOR(x) (((uint64_t)HVM_CALLBACK_VIA_TYPE_VECTOR)<<\ | ||
28 | HVM_CALLBACK_VIA_TYPE_SHIFT | (x)) | ||
29 | |||
30 | #endif /* XEN_HVM_H__ */ | ||