linux/include/xen/xen.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _XEN_XEN_H
   3#define _XEN_XEN_H
   4
   5enum xen_domain_type {
   6        XEN_NATIVE,             /* running on bare hardware    */
   7        XEN_PV_DOMAIN,          /* running in a PV domain      */
   8        XEN_HVM_DOMAIN,         /* running in a Xen hvm domain */
   9};
  10
  11#ifdef CONFIG_XEN
  12extern enum xen_domain_type xen_domain_type;
  13#else
  14#define xen_domain_type         XEN_NATIVE
  15#endif
  16
  17#ifdef CONFIG_XEN_PVH
  18extern bool xen_pvh;
  19#else
  20#define xen_pvh                 0
  21#endif
  22
  23#define xen_domain()            (xen_domain_type != XEN_NATIVE)
  24#define xen_pv_domain()         (xen_domain_type == XEN_PV_DOMAIN)
  25#define xen_hvm_domain()        (xen_domain_type == XEN_HVM_DOMAIN)
  26#define xen_pvh_domain()        (xen_pvh)
  27
  28#include <linux/types.h>
  29
  30extern uint32_t xen_start_flags;
  31
  32#ifdef CONFIG_XEN_DOM0
  33#include <xen/interface/xen.h>
  34#include <asm/xen/hypervisor.h>
  35
  36#define xen_initial_domain()    (xen_domain() && \
  37                                 (xen_start_flags & SIF_INITDOMAIN))
  38#else  /* !CONFIG_XEN_DOM0 */
  39#define xen_initial_domain()    (0)
  40#endif  /* CONFIG_XEN_DOM0 */
  41
  42struct bio_vec;
  43bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
  44                const struct bio_vec *vec2);
  45
  46#endif  /* _XEN_XEN_H */
  47