xen.h 933 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef _XEN_XEN_H
  2. #define _XEN_XEN_H
  3. enum xen_domain_type {
  4. XEN_NATIVE, /* running on bare hardware */
  5. XEN_PV_DOMAIN, /* running in a PV domain */
  6. XEN_HVM_DOMAIN, /* running in a Xen hvm domain */
  7. };
  8. #ifdef CONFIG_XEN
  9. extern enum xen_domain_type xen_domain_type;
  10. #else
  11. #define xen_domain_type XEN_NATIVE
  12. #endif
  13. #ifdef CONFIG_XEN_PVH
  14. extern bool xen_pvh;
  15. #else
  16. #define xen_pvh 0
  17. #endif
  18. #define xen_domain() (xen_domain_type != XEN_NATIVE)
  19. #define xen_pv_domain() (xen_domain_type == XEN_PV_DOMAIN)
  20. #define xen_hvm_domain() (xen_domain_type == XEN_HVM_DOMAIN)
  21. #define xen_pvh_domain() (xen_pvh)
  22. #ifdef CONFIG_XEN_DOM0
  23. #include <xen/interface/xen.h>
  24. #include <asm/xen/hypervisor.h>
  25. #define xen_initial_domain() (xen_domain() && \
  26. xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
  27. #else /* !CONFIG_XEN_DOM0 */
  28. #define xen_initial_domain() (0)
  29. #endif /* CONFIG_XEN_DOM0 */
  30. #endif /* _XEN_XEN_H */