1 #ifndef QEMU_HW_XEN_COMMON_H
2 #define QEMU_HW_XEN_COMMON_H 1
4 #include "config-host.h"
11 #include <xen/io/xenbus.h>
15 #include "qemu-queue.h"
18 * We don't support Xen prior to 3.3.0.
22 #if CONFIG_XEN_CTRL_INTERFACE_VERSION < 400
23 static inline void *xc_map_foreign_bulk(int xc_handle
, uint32_t dom
, int prot
,
24 xen_pfn_t
*arr
, int *err
,
27 return xc_map_foreign_batch(xc_handle
, dom
, prot
, arr
, num
);
33 #if CONFIG_XEN_CTRL_INTERFACE_VERSION < 410
36 typedef int XenEvtchn
;
37 typedef int XenGnttab
;
39 # define XC_INTERFACE_FMT "%i"
40 # define XC_HANDLER_INITIAL_VALUE -1
42 static inline XenEvtchn
xen_xc_evtchn_open(void *logger
,
43 unsigned int open_flags
)
45 return xc_evtchn_open();
48 static inline XenGnttab
xen_xc_gnttab_open(void *logger
,
49 unsigned int open_flags
)
51 return xc_gnttab_open();
54 static inline XenXC
xen_xc_interface_open(void *logger
, void *dombuild_logger
,
55 unsigned int open_flags
)
57 return xc_interface_open();
60 static inline int xc_fd(int xen_xc
)
66 static inline int xc_domain_populate_physmap_exact
67 (XenXC xc_handle
, uint32_t domid
, unsigned long nr_extents
,
68 unsigned int extent_order
, unsigned int mem_flags
, xen_pfn_t
*extent_start
)
70 return xc_domain_memory_populate_physmap
71 (xc_handle
, domid
, nr_extents
, extent_order
, mem_flags
, extent_start
);
74 static inline int xc_domain_add_to_physmap(int xc_handle
, uint32_t domid
,
75 unsigned int space
, unsigned long idx
,
78 struct xen_add_to_physmap xatp
= {
85 return xc_memory_op(xc_handle
, XENMEM_add_to_physmap
, &xatp
);
92 typedef xc_interface
*XenXC
;
93 typedef xc_evtchn
*XenEvtchn
;
94 typedef xc_gnttab
*XenGnttab
;
96 # define XC_INTERFACE_FMT "%p"
97 # define XC_HANDLER_INITIAL_VALUE NULL
99 static inline XenEvtchn
xen_xc_evtchn_open(void *logger
,
100 unsigned int open_flags
)
102 return xc_evtchn_open(logger
, open_flags
);
105 static inline XenGnttab
xen_xc_gnttab_open(void *logger
,
106 unsigned int open_flags
)
108 return xc_gnttab_open(logger
, open_flags
);
111 static inline XenXC
xen_xc_interface_open(void *logger
, void *dombuild_logger
,
112 unsigned int open_flags
)
114 return xc_interface_open(logger
, dombuild_logger
, open_flags
);
117 /* FIXME There is now way to have the xen fd */
118 static inline int xc_fd(xc_interface
*xen_xc
)
124 void destroy_hvm_domain(void);
126 #endif /* QEMU_HW_XEN_COMMON_H */