xen.h 856 B

123456789101112131415161718192021222324252627282930313233
  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. #define xen_domain() (xen_domain_type != XEN_NATIVE)
  14. #define xen_pv_domain() (xen_domain() && \
  15. xen_domain_type == XEN_PV_DOMAIN)
  16. #define xen_hvm_domain() (xen_domain() && \
  17. xen_domain_type == XEN_HVM_DOMAIN)
  18. #ifdef CONFIG_XEN_DOM0
  19. #include <xen/interface/xen.h>
  20. #include <asm/xen/hypervisor.h>
  21. #define xen_initial_domain() (xen_pv_domain() && \
  22. xen_start_info->flags & SIF_INITDOMAIN)
  23. #else /* !CONFIG_XEN_DOM0 */
  24. #define xen_initial_domain() (0)
  25. #endif /* CONFIG_XEN_DOM0 */
  26. #endif /* _XEN_XEN_H */