xref: /openbmc/qemu/include/sysemu/xen.h (revision 69700301)
1da278d58SPhilippe Mathieu-Daudé /*
2da278d58SPhilippe Mathieu-Daudé  * QEMU Xen support
3da278d58SPhilippe Mathieu-Daudé  *
4da278d58SPhilippe Mathieu-Daudé  * This work is licensed under the terms of the GNU GPL, version 2 or later.
5da278d58SPhilippe Mathieu-Daudé  * See the COPYING file in the top-level directory.
6da278d58SPhilippe Mathieu-Daudé  */
7da278d58SPhilippe Mathieu-Daudé 
8*69700301SPhilippe Mathieu-Daudé /* header to be included in non-Xen-specific code */
9*69700301SPhilippe Mathieu-Daudé 
10da278d58SPhilippe Mathieu-Daudé #ifndef SYSEMU_XEN_H
11da278d58SPhilippe Mathieu-Daudé #define SYSEMU_XEN_H
12da278d58SPhilippe Mathieu-Daudé 
13ce6936bcSPhilippe Mathieu-Daudé #include "exec/cpu-common.h"
14ce6936bcSPhilippe Mathieu-Daudé 
158e0ef068SPhilippe Mathieu-Daudé #ifdef NEED_CPU_H
16da278d58SPhilippe Mathieu-Daudé # ifdef CONFIG_XEN
178e0ef068SPhilippe Mathieu-Daudé #  define CONFIG_XEN_IS_POSSIBLE
188e0ef068SPhilippe Mathieu-Daudé # endif
198e0ef068SPhilippe Mathieu-Daudé #else
208e0ef068SPhilippe Mathieu-Daudé # define CONFIG_XEN_IS_POSSIBLE
218e0ef068SPhilippe Mathieu-Daudé #endif
22da278d58SPhilippe Mathieu-Daudé 
238e0ef068SPhilippe Mathieu-Daudé #ifdef CONFIG_XEN_IS_POSSIBLE
248e0ef068SPhilippe Mathieu-Daudé 
258e0ef068SPhilippe Mathieu-Daudé extern bool xen_allowed;
268e0ef068SPhilippe Mathieu-Daudé 
278e0ef068SPhilippe Mathieu-Daudé #define xen_enabled()           (xen_allowed)
28da278d58SPhilippe Mathieu-Daudé 
29da278d58SPhilippe Mathieu-Daudé #ifndef CONFIG_USER_ONLY
30da278d58SPhilippe Mathieu-Daudé void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length);
31da278d58SPhilippe Mathieu-Daudé void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
32da278d58SPhilippe Mathieu-Daudé                    struct MemoryRegion *mr, Error **errp);
33da278d58SPhilippe Mathieu-Daudé #endif
34da278d58SPhilippe Mathieu-Daudé 
358e0ef068SPhilippe Mathieu-Daudé #else /* !CONFIG_XEN_IS_POSSIBLE */
36da278d58SPhilippe Mathieu-Daudé 
37da278d58SPhilippe Mathieu-Daudé #define xen_enabled() 0
38da278d58SPhilippe Mathieu-Daudé #ifndef CONFIG_USER_ONLY
xen_hvm_modified_memory(ram_addr_t start,ram_addr_t length)39da278d58SPhilippe Mathieu-Daudé static inline void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length)
40da278d58SPhilippe Mathieu-Daudé {
41da278d58SPhilippe Mathieu-Daudé     /* nothing */
42da278d58SPhilippe Mathieu-Daudé }
xen_ram_alloc(ram_addr_t ram_addr,ram_addr_t size,MemoryRegion * mr,Error ** errp)43da278d58SPhilippe Mathieu-Daudé static inline void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
44da278d58SPhilippe Mathieu-Daudé                                  MemoryRegion *mr, Error **errp)
45da278d58SPhilippe Mathieu-Daudé {
46da278d58SPhilippe Mathieu-Daudé     g_assert_not_reached();
47da278d58SPhilippe Mathieu-Daudé }
48da278d58SPhilippe Mathieu-Daudé #endif
49da278d58SPhilippe Mathieu-Daudé 
508e0ef068SPhilippe Mathieu-Daudé #endif /* CONFIG_XEN_IS_POSSIBLE */
51da278d58SPhilippe Mathieu-Daudé 
52da278d58SPhilippe Mathieu-Daudé #endif
53