0001
0002 #ifndef _XEN_XEN_H
0003 #define _XEN_XEN_H
0004
0005 enum xen_domain_type {
0006 XEN_NATIVE,
0007 XEN_PV_DOMAIN,
0008 XEN_HVM_DOMAIN,
0009 };
0010
0011 #ifdef CONFIG_XEN
0012 extern enum xen_domain_type xen_domain_type;
0013 #else
0014 #define xen_domain_type XEN_NATIVE
0015 #endif
0016
0017 #ifdef CONFIG_XEN_PVH
0018 extern bool xen_pvh;
0019 #else
0020 #define xen_pvh 0
0021 #endif
0022
0023 #define xen_domain() (xen_domain_type != XEN_NATIVE)
0024 #define xen_pv_domain() (xen_domain_type == XEN_PV_DOMAIN)
0025 #define xen_hvm_domain() (xen_domain_type == XEN_HVM_DOMAIN)
0026 #define xen_pvh_domain() (xen_pvh)
0027
0028 #include <linux/types.h>
0029
0030 extern uint32_t xen_start_flags;
0031
0032 #include <xen/interface/hvm/start_info.h>
0033 extern struct hvm_start_info pvh_start_info;
0034
0035 #ifdef CONFIG_XEN_DOM0
0036 #include <xen/interface/xen.h>
0037 #include <asm/xen/hypervisor.h>
0038
0039 #define xen_initial_domain() (xen_domain() && \
0040 (xen_start_flags & SIF_INITDOMAIN))
0041 #else
0042 #define xen_initial_domain() (0)
0043 #endif
0044
0045 struct bio_vec;
0046 struct page;
0047
0048 bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
0049 const struct page *page);
0050
0051 #if defined(CONFIG_MEMORY_HOTPLUG) && defined(CONFIG_XEN_BALLOON)
0052 extern u64 xen_saved_max_mem_size;
0053 #endif
0054
0055 #ifdef CONFIG_XEN_UNPOPULATED_ALLOC
0056 int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages);
0057 void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages);
0058 #include <linux/ioport.h>
0059 int arch_xen_unpopulated_init(struct resource **res);
0060 #else
0061 #include <xen/balloon.h>
0062 static inline int xen_alloc_unpopulated_pages(unsigned int nr_pages,
0063 struct page **pages)
0064 {
0065 return xen_alloc_ballooned_pages(nr_pages, pages);
0066 }
0067 static inline void xen_free_unpopulated_pages(unsigned int nr_pages,
0068 struct page **pages)
0069 {
0070 xen_free_ballooned_pages(nr_pages, pages);
0071 }
0072 #endif
0073
0074 #endif