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#include <xen/interface/hvm/start_info.h>
  33extern struct hvm_start_info pvh_start_info;
  34
  35#ifdef CONFIG_XEN_DOM0
  36#include <xen/interface/xen.h>
  37#include <asm/xen/hypervisor.h>
  38
  39#define xen_initial_domain()    (xen_domain() && \
  40                                 (xen_start_flags & SIF_INITDOMAIN))
  41#else  /* !CONFIG_XEN_DOM0 */
  42#define xen_initial_domain()    (0)
  43#endif  /* CONFIG_XEN_DOM0 */
  44
  45struct bio_vec;
  46struct page;
  47
  48bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,
  49                const struct page *page);
  50
  51#if defined(CONFIG_MEMORY_HOTPLUG) && defined(CONFIG_XEN_BALLOON)
  52extern u64 xen_saved_max_mem_size;
  53#endif
  54
  55#endif  /* _XEN_XEN_H */
  56