Commit 9033304a authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Ingo Molnar

x86, xen: short-circuit tests for dom0

When testing for a dom0/initial/privileged domain, make sure the
predicate evaluates to a compile-time 0 if CONFIG_XEN_DOM0 isn't
enabled.  This will make most of the dom0 code evaporate without
much more effort.
Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 7032e869
...@@ -38,22 +38,30 @@ extern struct shared_info *HYPERVISOR_shared_info; ...@@ -38,22 +38,30 @@ extern struct shared_info *HYPERVISOR_shared_info;
extern struct start_info *xen_start_info; extern struct start_info *xen_start_info;
enum xen_domain_type { enum xen_domain_type {
XEN_NATIVE, XEN_NATIVE, /* running on bare hardware */
XEN_PV_DOMAIN, XEN_PV_DOMAIN, /* running in a PV domain */
XEN_HVM_DOMAIN, XEN_HVM_DOMAIN, /* running in a Xen hvm domain */
}; };
extern enum xen_domain_type xen_domain_type;
#ifdef CONFIG_XEN #ifdef CONFIG_XEN
#define xen_domain() (xen_domain_type != XEN_NATIVE) extern enum xen_domain_type xen_domain_type;
#else #else
#define xen_domain() (0) #define xen_domain_type XEN_NATIVE
#endif #endif
#define xen_pv_domain() (xen_domain() && xen_domain_type == XEN_PV_DOMAIN) #define xen_domain() (xen_domain_type != XEN_NATIVE)
#define xen_hvm_domain() (xen_domain() && xen_domain_type == XEN_HVM_DOMAIN) #define xen_pv_domain() (xen_domain() && \
xen_domain_type == XEN_PV_DOMAIN)
#define xen_hvm_domain() (xen_domain() && \
xen_domain_type == XEN_HVM_DOMAIN)
#ifdef CONFIG_XEN_DOM0
#include <xen/interface/xen.h>
#define xen_initial_domain() (xen_pv_domain() && xen_start_info->flags & SIF_INITDOMAIN) #define xen_initial_domain() (xen_pv_domain() && \
xen_start_info->flags & SIF_INITDOMAIN)
#else /* !CONFIG_XEN_DOM0 */
#define xen_initial_domain() (0)
#endif /* CONFIG_XEN_DOM0 */
#endif /* _ASM_X86_XEN_HYPERVISOR_H */ #endif /* _ASM_X86_XEN_HYPERVISOR_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment