xref: /openbmc/linux/include/xen/xen.h (revision 4c071ee5268f7234c3d084b6093bebccc28cdcba)
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 
161ccbf534SJeremy Fitzhardinge #define xen_domain()		(xen_domain_type != XEN_NATIVE)
171ccbf534SJeremy Fitzhardinge #define xen_pv_domain()		(xen_domain() &&			\
181ccbf534SJeremy Fitzhardinge 				 xen_domain_type == XEN_PV_DOMAIN)
191ccbf534SJeremy Fitzhardinge #define xen_hvm_domain()	(xen_domain() &&			\
201ccbf534SJeremy Fitzhardinge 				 xen_domain_type == XEN_HVM_DOMAIN)
211ccbf534SJeremy Fitzhardinge 
221ccbf534SJeremy Fitzhardinge #ifdef CONFIG_XEN_DOM0
231ccbf534SJeremy Fitzhardinge #include <xen/interface/xen.h>
241ccbf534SJeremy Fitzhardinge #include <asm/xen/hypervisor.h>
251ccbf534SJeremy Fitzhardinge 
26*4c071ee5SStefano Stabellini #define xen_initial_domain()	(xen_domain() && \
271ccbf534SJeremy Fitzhardinge 				 xen_start_info->flags & SIF_INITDOMAIN)
281ccbf534SJeremy Fitzhardinge #else  /* !CONFIG_XEN_DOM0 */
291ccbf534SJeremy Fitzhardinge #define xen_initial_domain()	(0)
301ccbf534SJeremy Fitzhardinge #endif	/* CONFIG_XEN_DOM0 */
311ccbf534SJeremy Fitzhardinge 
321ccbf534SJeremy Fitzhardinge #endif	/* _XEN_XEN_H */
33