xref: /openbmc/linux/include/xen/xen.h (revision b4feaeb036b2e0f715e0d05ae84da01c6696a75f)
11ccbf534SJeremy Fitzhardinge #ifndef _XEN_XEN_H
21ccbf534SJeremy Fitzhardinge #define _XEN_XEN_H
31ccbf534SJeremy Fitzhardinge 
41ccbf534SJeremy Fitzhardinge enum xen_domain_type {
51ccbf534SJeremy Fitzhardinge 	XEN_NATIVE,		/* running on bare hardware    */
61ccbf534SJeremy Fitzhardinge 	XEN_PV_DOMAIN,		/* running in a PV domain      */
71ccbf534SJeremy Fitzhardinge 	XEN_HVM_DOMAIN,		/* running in a Xen hvm domain */
81ccbf534SJeremy Fitzhardinge };
91ccbf534SJeremy Fitzhardinge 
101ccbf534SJeremy Fitzhardinge #ifdef CONFIG_XEN
111ccbf534SJeremy Fitzhardinge extern enum xen_domain_type xen_domain_type;
121ccbf534SJeremy Fitzhardinge #else
131ccbf534SJeremy Fitzhardinge #define xen_domain_type		XEN_NATIVE
141ccbf534SJeremy Fitzhardinge #endif
151ccbf534SJeremy Fitzhardinge 
16*b4feaeb0SJuergen Gross #ifdef CONFIG_XEN_PVH
17*b4feaeb0SJuergen Gross extern bool xen_pvh;
18*b4feaeb0SJuergen Gross #else
19*b4feaeb0SJuergen Gross #define xen_pvh			0
20*b4feaeb0SJuergen Gross #endif
21*b4feaeb0SJuergen Gross 
221ccbf534SJeremy Fitzhardinge #define xen_domain()		(xen_domain_type != XEN_NATIVE)
23*b4feaeb0SJuergen Gross #define xen_pv_domain()		(xen_domain_type == XEN_PV_DOMAIN)
24*b4feaeb0SJuergen Gross #define xen_hvm_domain()	(xen_domain_type == XEN_HVM_DOMAIN)
25*b4feaeb0SJuergen Gross #define xen_pvh_domain()	(xen_pvh)
261ccbf534SJeremy Fitzhardinge 
271ccbf534SJeremy Fitzhardinge #ifdef CONFIG_XEN_DOM0
281ccbf534SJeremy Fitzhardinge #include <xen/interface/xen.h>
291ccbf534SJeremy Fitzhardinge #include <asm/xen/hypervisor.h>
301ccbf534SJeremy Fitzhardinge 
314c071ee5SStefano Stabellini #define xen_initial_domain()	(xen_domain() && \
324ed5978bSStefano Stabellini 				 xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
331ccbf534SJeremy Fitzhardinge #else  /* !CONFIG_XEN_DOM0 */
341ccbf534SJeremy Fitzhardinge #define xen_initial_domain()	(0)
351ccbf534SJeremy Fitzhardinge #endif	/* CONFIG_XEN_DOM0 */
361ccbf534SJeremy Fitzhardinge 
371ccbf534SJeremy Fitzhardinge #endif	/* _XEN_XEN_H */
38