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
);
78 typedef xc_interface
*XenXC
;
79 typedef xc_evtchn
*XenEvtchn
;
80 typedef xc_gnttab
*XenGnttab
;
82 # define XC_INTERFACE_FMT "%p"
83 # define XC_HANDLER_INITIAL_VALUE NULL
85 static inline XenEvtchn
xen_xc_evtchn_open(void *logger
,
86 unsigned int open_flags
)
88 return xc_evtchn_open(logger
, open_flags
);
91 static inline XenGnttab
xen_xc_gnttab_open(void *logger
,
92 unsigned int open_flags
)
94 return xc_gnttab_open(logger
, open_flags
);
97 static inline XenXC
xen_xc_interface_open(void *logger
, void *dombuild_logger
,
98 unsigned int open_flags
)
100 return xc_interface_open(logger
, dombuild_logger
, open_flags
);
103 /* FIXME There is now way to have the xen fd */
104 static inline int xc_fd(xc_interface
*xen_xc
)
110 void destroy_hvm_domain(void);
112 #endif /* QEMU_HW_XEN_COMMON_H */