10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
14 #include <xen/hvm/hvm_op.h>
15 #include <xen/hvm/params.h>
17 /** Minimum CPUID base */
18 #define HVM_CPUID_MIN 0x40000000UL
20 /** Maximum CPUID base */
21 #define HVM_CPUID_MAX 0x4000ff00UL
23 /** Increment between CPUID bases */
24 #define HVM_CPUID_STEP 0x00000100UL
26 /** Magic signature */
27 #define HVM_CPUID_MAGIC "XenVMMXenVMM"
29 /** Get Xen version */
30 #define HVM_CPUID_VERSION 1
32 /** Get number of hypercall pages */
33 #define HVM_CPUID_PAGES 2
36 #define HVM_MMIO_BAR PCI_BASE_ADDRESS_1
38 /** A Xen HVM device */
41 struct xen_hypervisor xen;
44 /** Length of hypercall table */
46 /** MMIO base address */
48 /** Current offset within MMIO address space */
50 /** Length of MMIO address space */
55 * Get HVM parameter value
57 * @v xen Xen hypervisor
58 * @v index Parameter index
59 * @v value Value to fill in
60 * @ret xenrc Xen status code
62 static inline int xen_hvm_get_param ( struct xen_hypervisor *xen,
63 unsigned int index, uint64_t *value ) {
64 struct xen_hvm_param param;
67 param.domid = DOMID_SELF;
69 xenrc = xen_hypercall_2 ( xen, __HYPERVISOR_hvm_op, HVMOP_get_param,
70 virt_to_phys ( ¶m ) );