LCOV - code coverage report
Current view: top level - zephyr/xen/public - domctl.h Coverage Total Hit
Test: new.info Lines: 0.0 % 267 0
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /* SPDX-License-Identifier: MIT */
       2              : /******************************************************************************
       3              :  * domctl.h
       4              :  *
       5              :  * Domain management operations. For use by node control stack.
       6              :  *
       7              :  * Copyright (c) 2002-2003, B Dragovic
       8              :  * Copyright (c) 2002-2006, K Fraser
       9              :  */
      10              : 
      11              : #ifndef __XEN_PUBLIC_DOMCTL_H__
      12              : #define __XEN_PUBLIC_DOMCTL_H__
      13              : 
      14              : #ifndef CONFIG_XEN_DOM0
      15              : #error "domctl operations are intended for use by node control tools only"
      16              : #endif
      17              : 
      18              : #include "xen.h"
      19              : #include "event_channel.h"
      20              : #include "grant_table.h"
      21              : #include "memory.h"
      22              : 
      23            0 : #define XEN_DOMCTL_INTERFACE_VERSION 0x00000015
      24              : 
      25              : /*
      26              :  * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
      27              :  * If it is specified as an invalid value (0 or >= DOMID_FIRST_RESERVED),
      28              :  * an id is auto-allocated and returned.
      29              :  */
      30              : /* XEN_DOMCTL_createdomain */
      31            0 : struct xen_domctl_createdomain {
      32              :         /* IN parameters */
      33            0 :         uint32_t ssidref;
      34            0 :         xen_domain_handle_t handle;
      35              : /* Is this an HVM guest (as opposed to a PV guest)? */
      36              : #define _XEN_DOMCTL_CDF_hvm             0
      37            0 : #define XEN_DOMCTL_CDF_hvm              (1U << _XEN_DOMCTL_CDF_hvm)
      38              : /* Use hardware-assisted paging if available? */
      39              : #define _XEN_DOMCTL_CDF_hap             1
      40            0 : #define XEN_DOMCTL_CDF_hap              (1U << _XEN_DOMCTL_CDF_hap)
      41              : /* Should domain memory integrity be verified by tboot during Sx? */
      42              : #define _XEN_DOMCTL_CDF_s3_integrity    2
      43            0 : #define XEN_DOMCTL_CDF_s3_integrity     (1U << _XEN_DOMCTL_CDF_s3_integrity)
      44              : /* Disable out-of-sync shadow page tables? */
      45              : #define _XEN_DOMCTL_CDF_oos_off         3
      46            0 : #define XEN_DOMCTL_CDF_oos_off          (1U << _XEN_DOMCTL_CDF_oos_off)
      47              : /* Is this a xenstore domain? */
      48              : #define _XEN_DOMCTL_CDF_xs_domain       4
      49            0 : #define XEN_DOMCTL_CDF_xs_domain        (1U << _XEN_DOMCTL_CDF_xs_domain)
      50              : /* Should this domain be permitted to use the IOMMU? */
      51              : #define _XEN_DOMCTL_CDF_iommu           5
      52            0 : #define XEN_DOMCTL_CDF_iommu            (1U << _XEN_DOMCTL_CDF_iommu)
      53              : #define _XEN_DOMCTL_CDF_nested_virt     6
      54            0 : #define XEN_DOMCTL_CDF_nested_virt      (1U << _XEN_DOMCTL_CDF_nested_virt)
      55              : /* Should we expose the vPMU to the guest? */
      56            0 : #define XEN_DOMCTL_CDF_vpmu             (1U << 7)
      57              : 
      58              : /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
      59            0 : #define XEN_DOMCTL_CDF_MAX              XEN_DOMCTL_CDF_vpmu
      60              : 
      61            0 :         uint32_t flags;
      62              : 
      63              : #define _XEN_DOMCTL_IOMMU_no_sharept    0
      64            0 : #define XEN_DOMCTL_IOMMU_no_sharep      (1U << _XEN_DOMCTL_IOMMU_no_sharept)
      65              : 
      66              : /* Max XEN_DOMCTL_IOMMU_* constant. Used for ABI checking. */
      67            0 : #define XEN_DOMCTL_IOMMU_MAX            XEN_DOMCTL_IOMMU_no_sharept
      68              : 
      69            0 :         uint32_t iommu_opts;
      70              : 
      71              :         /*
      72              :          * Various domain limits, which impact the quantity of resources
      73              :          * (global mapping space, xenheap, etc) a guest may consume.  For
      74              :          * max_grant_frames and max_maptrack_frames, < 0 means "use the
      75              :          * default maximum value in the hypervisor".
      76              :          */
      77            0 :         uint32_t max_vcpus;
      78            0 :         uint32_t max_evtchn_port;
      79            0 :         int32_t max_grant_frames;
      80            0 :         int32_t max_maptrack_frames;
      81              : 
      82              : /* Grant version, use low 4 bits. */
      83            0 : #define XEN_DOMCTL_GRANT_version_mask   0xf
      84            0 : #define XEN_DOMCTL_GRANT_version(v)     ((v) & XEN_DOMCTL_GRANT_version_mask)
      85              : 
      86            0 :         uint32_t grant_opts;
      87              : 
      88              :         /* Per-vCPU buffer size in bytes.  0 to disable. */
      89            0 :         uint32_t vmtrace_size;
      90              : 
      91              :         /* CPU pool to use; specify 0 or a specific existing pool */
      92            0 :         uint32_t cpupool_id;
      93              : 
      94            0 :         struct xen_arch_domainconfig arch;
      95              : };
      96              : 
      97              : /* XEN_DOMCTL_getdomaininfo */
      98            0 : struct xen_domctl_getdomaininfo {
      99              :         /* OUT variables. */
     100            0 :         domid_t  domain;        /* Also echoed in domctl.domain */
     101            0 :         uint16_t pad1;
     102              : /* Domain is scheduled to die. */
     103              : #define _XEN_DOMINF_dying               0
     104            0 : #define XEN_DOMINF_dying                (1U << _XEN_DOMINF_dying)
     105              : /* Domain is an HVM guest (as opposed to a PV guest). */
     106              : #define _XEN_DOMINF_hvm_guest           1
     107            0 : #define XEN_DOMINF_hvm_guest            (1U << _XEN_DOMINF_hvm_guest)
     108              : /* The guest OS has shut down. */
     109              : #define _XEN_DOMINF_shutdown            2
     110            0 : #define XEN_DOMINF_shutdown             (1U << _XEN_DOMINF_shutdown)
     111              : /* Currently paused by control software. */
     112              : #define _XEN_DOMINF_paused              3
     113            0 : #define XEN_DOMINF_paused               (1U << _XEN_DOMINF_paused)
     114              : /* Currently blocked pending an event. */
     115              : #define _XEN_DOMINF_blocked             4
     116            0 : #define XEN_DOMINF_blocked              (1U << _XEN_DOMINF_blocked)
     117              : /* Domain is currently running. */
     118              : #define _XEN_DOMINF_running             5
     119            0 : #define XEN_DOMINF_running              (1U << _XEN_DOMINF_running)
     120              : /* Being debugged.  */
     121              : #define _XEN_DOMINF_debugged            6
     122            0 : #define XEN_DOMINF_debugged             (1U << _XEN_DOMINF_debugged)
     123              : /* domain is a xenstore domain */
     124              : #define _XEN_DOMINF_xs_domain           7
     125            0 : #define XEN_DOMINF_xs_domain            (1U << _XEN_DOMINF_xs_domain)
     126              : /* domain has hardware assisted paging */
     127              : #define _XEN_DOMINF_hap                 8
     128            0 : #define XEN_DOMINF_hap                  (1U << _XEN_DOMINF_hap)
     129              : /* XEN_DOMINF_shutdown guest-supplied code.  */
     130            0 : #define XEN_DOMINF_shutdownmask         255
     131            0 : #define XEN_DOMINF_shutdownshift        16
     132            0 :         uint32_t flags; /* XEN_DOMINF_* */
     133            0 :         uint64_aligned_t tot_pages;
     134            0 :         uint64_aligned_t max_pages;
     135            0 :         uint64_aligned_t outstanding_pages;
     136            0 :         uint64_aligned_t shr_pages;
     137            0 :         uint64_aligned_t paged_pages;
     138            0 :         uint64_aligned_t shared_info_frame; /* GMFN of shared_info struct */
     139            0 :         uint64_aligned_t cpu_time;
     140            0 :         uint32_t nr_online_vcpus; /* Number of VCPUs currently online. */
     141            0 : #define XEN_INVALID_MAX_VCPU_ID (~0U) /* Domain has no vcpus? */
     142            0 :         uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */
     143            0 :         uint32_t ssidref;
     144            0 :         xen_domain_handle_t handle;
     145            0 :         uint32_t cpupool;
     146            0 :         uint8_t gpaddr_bits; /* Guest physical address space size. */
     147            0 :         uint8_t pad2[7];
     148            0 :         struct xen_arch_domainconfig arch_config;
     149              : };
     150            0 : typedef struct xen_domctl_getdomaininfo xen_domctl_getdomaininfo_t;
     151            0 : DEFINE_XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t);
     152              : 
     153              : /*
     154              :  * Control shadow pagetables operation
     155              :  */
     156              : /* XEN_DOMCTL_shadow_op */
     157              : 
     158              : /* Memory allocation accessors. */
     159            0 : #define XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION     30
     160            0 : #define XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION     31
     161              : 
     162            0 : struct xen_domctl_shadow_op_stats {
     163            0 :         uint32_t fault_count;
     164            0 :         uint32_t dirty_count;
     165              : };
     166              : 
     167            0 : struct xen_domctl_shadow_op {
     168              :         /* IN variables. */
     169            0 :         uint32_t op; /* XEN_DOMCTL_SHADOW_OP_* */
     170              : 
     171              :         /* OP_ENABLE: XEN_DOMCTL_SHADOW_ENABLE_* */
     172              :         /* OP_PEAK / OP_CLEAN: XEN_DOMCTL_SHADOW_LOGDIRTY_* */
     173            0 :         uint32_t mode;
     174              : 
     175              :         /* OP_GET_ALLOCATION / OP_SET_ALLOCATION */
     176            0 :         uint32_t mb; /* Shadow memory allocation in MB */
     177              : 
     178              :         /* OP_PEEK / OP_CLEAN */
     179            0 :         XEN_GUEST_HANDLE_64(uint8_t) dirty_bitmap;
     180            0 :         uint64_aligned_t pages; /* Size of buffer. Updated with actual size. */
     181            0 :         struct xen_domctl_shadow_op_stats stats;
     182              : };
     183              : 
     184              : /* XEN_DOMCTL_max_mem */
     185            0 : struct xen_domctl_max_mem {
     186              :         /* IN variables. */
     187            0 :         uint64_aligned_t max_memkb;
     188              : };
     189              : 
     190              : /* XEN_DOMCTL_setvcpucontext */
     191              : /* XEN_DOMCTL_getvcpucontext */
     192            0 : struct xen_domctl_vcpucontext {
     193            0 :         uint32_t vcpu; /* IN */
     194              : 
     195            0 :         XEN_GUEST_HANDLE_64(vcpu_guest_context_t) ctxt; /* IN/OUT */
     196              : };
     197              : 
     198              : /*
     199              :  * XEN_DOMCTL_max_vcpus:
     200              :  *
     201              :  * The parameter passed to XEN_DOMCTL_max_vcpus must match the value passed to
     202              :  * XEN_DOMCTL_createdomain.  This hypercall is in the process of being removed
     203              :  * (once the failure paths in domain_create() have been improved), but is
     204              :  * still required in the short term to allocate the vcpus themselves.
     205              :  */
     206            0 : struct xen_domctl_max_vcpus {
     207            0 :         uint32_t max;      /* maximum number of vcpus */
     208              : };
     209              : 
     210              : /* XEN_DOMCTL_scheduler_op */
     211              : /* Scheduler types. */
     212              : /* #define XEN_SCHEDULER_SEDF  4 (Removed) */
     213            0 : #define XEN_SCHEDULER_CREDIT    5
     214            0 : #define XEN_SCHEDULER_CREDIT2   6
     215            0 : #define XEN_SCHEDULER_ARINC653  7
     216            0 : #define XEN_SCHEDULER_RTDS      8
     217            0 : #define XEN_SCHEDULER_NULL      9
     218              : 
     219            0 : struct xen_domctl_sched_credit {
     220            0 :         uint16_t weight;
     221            0 :         uint16_t cap;
     222              : };
     223              : 
     224            0 : struct xen_domctl_sched_credit2 {
     225            0 :         uint16_t weight;
     226            0 :         uint16_t cap;
     227              : };
     228              : 
     229            0 : struct xen_domctl_sched_rtds {
     230            0 :         uint32_t period;
     231            0 :         uint32_t budget;
     232              : /* Can this vCPU execute beyond its reserved amount of time? */
     233              : #define _XEN_DOMCTL_SCHEDRT_extra       0
     234            0 : #define XEN_DOMCTL_SCHEDRT_extra        (1U<<_XEN_DOMCTL_SCHEDRT_extra)
     235            0 :         uint32_t flags;
     236              : };
     237              : 
     238            0 : typedef struct xen_domctl_schedparam_vcpu {
     239              :         union {
     240            0 :                 struct xen_domctl_sched_credit credit;
     241            0 :                 struct xen_domctl_sched_credit2 credit2;
     242            0 :                 struct xen_domctl_sched_rtds rtds;
     243            0 :         } u;
     244            0 :         uint32_t vcpuid;
     245            0 : } xen_domctl_schedparam_vcpu_t;
     246            0 : DEFINE_XEN_GUEST_HANDLE(xen_domctl_schedparam_vcpu_t);
     247              : 
     248              : /*
     249              :  * Set or get info?
     250              :  * For schedulers supporting per-vcpu settings (e.g., RTDS):
     251              :  *  XEN_DOMCTL_SCHEDOP_putinfo sets params for all vcpus;
     252              :  *  XEN_DOMCTL_SCHEDOP_getinfo gets default params;
     253              :  *  XEN_DOMCTL_SCHEDOP_put(get)vcpuinfo sets (gets) params of vcpus;
     254              :  *
     255              :  * For schedulers not supporting per-vcpu settings:
     256              :  *  XEN_DOMCTL_SCHEDOP_putinfo sets params for all vcpus;
     257              :  *  XEN_DOMCTL_SCHEDOP_getinfo gets domain-wise params;
     258              :  *  XEN_DOMCTL_SCHEDOP_put(get)vcpuinfo returns error;
     259              :  */
     260            0 : #define XEN_DOMCTL_SCHEDOP_putinfo      0
     261            0 : #define XEN_DOMCTL_SCHEDOP_getinfo      1
     262            0 : #define XEN_DOMCTL_SCHEDOP_putvcpuinfo  2
     263            0 : #define XEN_DOMCTL_SCHEDOP_getvcpuinfo  3
     264            0 : struct xen_domctl_scheduler_op {
     265            0 :         uint32_t sched_id; /* XEN_SCHEDULER_* */
     266            0 :         uint32_t cmd; /* XEN_DOMCTL_SCHEDOP_* */
     267              :         /* IN/OUT */
     268              :         union {
     269            0 :                 struct xen_domctl_sched_credit credit;
     270            0 :                 struct xen_domctl_sched_credit2 credit2;
     271            0 :                 struct xen_domctl_sched_rtds rtds;
     272              :                 struct {
     273            0 :                         XEN_GUEST_HANDLE_64(xen_domctl_schedparam_vcpu_t) vcpus;
     274              :                         /*
     275              :                          * IN: Number of elements in vcpus array.
     276              :                          * OUT: Number of processed elements of vcpus array.
     277              :                          */
     278            0 :                         uint32_t nr_vcpus;
     279            0 :                         uint32_t padding;
     280            0 :                 } v;
     281            0 :         } u;
     282              : };
     283              : 
     284              : /* XEN_DOMCTL_iomem_permission */
     285            0 : struct xen_domctl_iomem_permission {
     286            0 :         uint64_aligned_t first_mfn;/* first page (physical page number) in range */
     287            0 :         uint64_aligned_t nr_mfns;  /* number of pages in range (>0) */
     288            0 :         uint8_t  allow_access;     /* allow (!0) or deny (0) access to range? */
     289              : };
     290              : 
     291              : /* XEN_DOMCTL_set_address_size */
     292              : /* XEN_DOMCTL_get_address_size */
     293            0 : struct xen_domctl_address_size {
     294            0 :         uint32_t size;
     295              : };
     296              : 
     297              : /* Assign a device to a guest. Sets up IOMMU structures. */
     298              : /* XEN_DOMCTL_assign_device */
     299              : /*
     300              :  * XEN_DOMCTL_test_assign_device: Pass DOMID_INVALID to find out whether the
     301              :  * given device is assigned to any DomU at all. Pass a specific domain ID to
     302              :  * find out whether the given device can be assigned to that domain.
     303              :  */
     304              : /*
     305              :  * XEN_DOMCTL_deassign_device: The behavior of this DOMCTL differs
     306              :  * between the different type of device:
     307              :  *  - PCI device (XEN_DOMCTL_DEV_PCI) will be reassigned to DOM0
     308              :  *  - DT device (XEN_DOMCTL_DEV_DT) will left unassigned. DOM0
     309              :  *  will have to call XEN_DOMCTL_assign_device in order to use the
     310              :  *  device.
     311              :  */
     312            0 : #define XEN_DOMCTL_DEV_PCI      0
     313            0 : #define XEN_DOMCTL_DEV_DT       1
     314            0 : struct xen_domctl_assign_device {
     315              :         /* IN */
     316            0 :         uint32_t dev; /* XEN_DOMCTL_DEV_* */
     317            0 :         uint32_t flags;
     318            0 : #define XEN_DOMCTL_DEV_RDM_RELAXED      1 /* assign only */
     319              :         union {
     320              :                 struct {
     321            0 :                         uint32_t machine_sbdf; /* machine PCI ID of assigned device */
     322            0 :                 } pci;
     323              :                 struct {
     324            0 :                         uint32_t size; /* Length of the path */
     325              : 
     326            0 :                         XEN_GUEST_HANDLE_64(char) path; /* path to the device tree node */
     327            0 :                 } dt;
     328            0 :         } u;
     329              : };
     330              : 
     331              : /* Pass-through interrupts: bind real irq -> hvm devfn. */
     332              : /* XEN_DOMCTL_bind_pt_irq */
     333              : /* XEN_DOMCTL_unbind_pt_irq */
     334            0 : enum pt_irq_type {
     335              :         PT_IRQ_TYPE_PCI,
     336              :         PT_IRQ_TYPE_ISA,
     337              :         PT_IRQ_TYPE_MSI,
     338              :         PT_IRQ_TYPE_MSI_TRANSLATE,
     339              :         PT_IRQ_TYPE_SPI, /* ARM: valid range 32-1019 */
     340              : };
     341            0 : struct xen_domctl_bind_pt_irq {
     342            0 :         uint32_t machine_irq;
     343            0 :         uint32_t irq_type; /* enum pt_irq_type */
     344              : 
     345              :         union {
     346              :                 struct {
     347            0 :                         uint8_t isa_irq;
     348            0 :                 } isa;
     349              :                 struct {
     350            0 :                         uint8_t bus;
     351            0 :                         uint8_t device;
     352            0 :                         uint8_t intx;
     353            0 :                 } pci;
     354              :                 struct {
     355            0 :                         uint8_t gvec;
     356            0 :                         uint32_t gflags;
     357            0 : #define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK        0x0000ff
     358            0 : #define XEN_DOMCTL_VMSI_X86_RH_MASK             0x000100
     359            0 : #define XEN_DOMCTL_VMSI_X86_DM_MASK             0x000200
     360            0 : #define XEN_DOMCTL_VMSI_X86_DELIV_MASK          0x007000
     361            0 : #define XEN_DOMCTL_VMSI_X86_TRIG_MASK           0x008000
     362            0 : #define XEN_DOMCTL_VMSI_X86_UNMASKED            0x010000
     363              : 
     364            0 :                         uint64_aligned_t gtable;
     365            0 :                 } msi;
     366              :                 struct {
     367            0 :                         uint16_t spi;
     368            0 :                 } spi;
     369            0 :         } u;
     370              : };
     371              : 
     372              : 
     373              : /* Bind machine I/O address range -> HVM address range. */
     374              : /* XEN_DOMCTL_memory_mapping */
     375              : /* Returns
     376              :  * - zero     success, everything done
     377              :  * - -E2BIG   passed in nr_mfns value too large for the implementation
     378              :  * - positive partial success for the first <result> page frames (with
     379              :  *          <result> less than nr_mfns), requiring re-invocation by the
     380              :  *          caller after updating inputs
     381              :  * - negative error; other than -E2BIG
     382              :  */
     383            0 : #define DPCI_ADD_MAPPING        1
     384            0 : #define DPCI_REMOVE_MAPPING     0
     385            0 : struct xen_domctl_memory_mapping {
     386            0 :         uint64_aligned_t first_gfn; /* first page (hvm guest phys page) in range */
     387            0 :         uint64_aligned_t first_mfn; /* first page (machine page) in range */
     388            0 :         uint64_aligned_t nr_mfns;   /* number of pages in range (>0) */
     389            0 :         uint32_t add_mapping;       /* add or remove mapping */
     390            0 :         uint32_t padding;           /* padding for 64-bit aligned structure */
     391              : };
     392              : 
     393              : /*
     394              :  * ARM: Clean and invalidate caches associated with given region of
     395              :  * guest memory.
     396              :  */
     397            0 : struct xen_domctl_cacheflush {
     398              :         /* IN: page range to flush. */
     399            0 :         xen_pfn_t start_pfn, nr_pfns;
     400              : };
     401              : 
     402              : /*
     403              :  * XEN_DOMCTL_get_paging_mempool_size / XEN_DOMCTL_set_paging_mempool_size.
     404              :  *
     405              :  * Get or set the paging memory pool size.  The size is in bytes.
     406              :  *
     407              :  * This is a dedicated pool of memory for Xen to use while managing the guest,
     408              :  * typically containing pagetables.  As such, there is an implementation
     409              :  * specific minimum granularity.
     410              :  *
     411              :  * The set operation can fail mid-way through the request (e.g. Xen running
     412              :  * out of memory, no free memory to reclaim from the pool, etc.).
     413              :  */
     414            0 : struct xen_domctl_paging_mempool {
     415            0 :         uint64_aligned_t size; /* Size in bytes. */
     416              : };
     417              : 
     418            0 : struct xen_domctl {
     419            0 :         uint32_t cmd;
     420            0 : #define XEN_DOMCTL_createdomain                 1
     421            0 : #define XEN_DOMCTL_destroydomain                2
     422            0 : #define XEN_DOMCTL_pausedomain                  3
     423            0 : #define XEN_DOMCTL_unpausedomain                4
     424            0 : #define XEN_DOMCTL_getdomaininfo                5
     425            0 : #define XEN_DOMCTL_setvcpuaffinity              9
     426            0 : #define XEN_DOMCTL_shadow_op                    10
     427            0 : #define XEN_DOMCTL_max_mem                      11
     428            0 : #define XEN_DOMCTL_setvcpucontext               12
     429            0 : #define XEN_DOMCTL_getvcpucontext               13
     430            0 : #define XEN_DOMCTL_getvcpuinfo                  14
     431            0 : #define XEN_DOMCTL_max_vcpus                    15
     432            0 : #define XEN_DOMCTL_scheduler_op                 16
     433            0 : #define XEN_DOMCTL_setdomainhandle              17
     434            0 : #define XEN_DOMCTL_setdebugging                 18
     435            0 : #define XEN_DOMCTL_irq_permission               19
     436            0 : #define XEN_DOMCTL_iomem_permission             20
     437            0 : #define XEN_DOMCTL_ioport_permission            21
     438            0 : #define XEN_DOMCTL_hypercall_init               22
     439            0 : #define XEN_DOMCTL_settimeoffset                24
     440            0 : #define XEN_DOMCTL_getvcpuaffinity              25
     441            0 : #define XEN_DOMCTL_real_mode_area               26 /* Obsolete PPC only */
     442            0 : #define XEN_DOMCTL_resumedomain                 27
     443            0 : #define XEN_DOMCTL_sendtrigger                  28
     444            0 : #define XEN_DOMCTL_subscribe                    29
     445            0 : #define XEN_DOMCTL_gethvmcontext                33
     446            0 : #define XEN_DOMCTL_sethvmcontext                34
     447            0 : #define XEN_DOMCTL_set_address_size             35
     448            0 : #define XEN_DOMCTL_get_address_size             36
     449            0 : #define XEN_DOMCTL_assign_device                37
     450            0 : #define XEN_DOMCTL_bind_pt_irq                  38
     451            0 : #define XEN_DOMCTL_memory_mapping               39
     452            0 : #define XEN_DOMCTL_ioport_mapping               40
     453            0 : #define XEN_DOMCTL_set_ext_vcpucontext          42
     454            0 : #define XEN_DOMCTL_get_ext_vcpucontext          43
     455            0 : #define XEN_DOMCTL_set_opt_feature              44 /* Obsolete IA64 only */
     456            0 : #define XEN_DOMCTL_test_assign_device           45
     457            0 : #define XEN_DOMCTL_set_target                   46
     458            0 : #define XEN_DOMCTL_deassign_device              47
     459            0 : #define XEN_DOMCTL_unbind_pt_irq                48
     460            0 : #define XEN_DOMCTL_get_device_group             50
     461            0 : #define XEN_DOMCTL_debug_op                     54
     462            0 : #define XEN_DOMCTL_gethvmcontext_partial        55
     463            0 : #define XEN_DOMCTL_vm_event_op                  56
     464            0 : #define XEN_DOMCTL_mem_sharing_op               57
     465            0 : #define XEN_DOMCTL_gettscinfo                   59
     466            0 : #define XEN_DOMCTL_settscinfo                   60
     467            0 : #define XEN_DOMCTL_getpageframeinfo3            61
     468            0 : #define XEN_DOMCTL_setvcpuextstate              62
     469            0 : #define XEN_DOMCTL_getvcpuextstate              63
     470            0 : #define XEN_DOMCTL_set_access_required          64
     471            0 : #define XEN_DOMCTL_audit_p2m                    65
     472            0 : #define XEN_DOMCTL_set_virq_handler             66
     473            0 : #define XEN_DOMCTL_set_broken_page_p2m          67
     474            0 : #define XEN_DOMCTL_setnodeaffinity              68
     475            0 : #define XEN_DOMCTL_getnodeaffinity              69
     476            0 : #define XEN_DOMCTL_cacheflush                   71
     477            0 : #define XEN_DOMCTL_get_vcpu_msrs                72
     478            0 : #define XEN_DOMCTL_set_vcpu_msrs                73
     479            0 : #define XEN_DOMCTL_setvnumainfo                 74
     480            0 : #define XEN_DOMCTL_psr_cmt_op                   75
     481            0 : #define XEN_DOMCTL_monitor_op                   77
     482            0 : #define XEN_DOMCTL_psr_alloc                    78
     483            0 : #define XEN_DOMCTL_soft_reset                   79
     484            0 : #define XEN_DOMCTL_vuart_op                     81
     485            0 : #define XEN_DOMCTL_get_cpu_policy               82
     486            0 : #define XEN_DOMCTL_set_cpu_policy               83
     487            0 : #define XEN_DOMCTL_vmtrace_op                   84
     488            0 : #define XEN_DOMCTL_get_paging_mempool_size      85
     489            0 : #define XEN_DOMCTL_set_paging_mempool_size      86
     490            0 : #define XEN_DOMCTL_gdbsx_guestmemio             1000
     491            0 : #define XEN_DOMCTL_gdbsx_pausevcpu              1001
     492            0 : #define XEN_DOMCTL_gdbsx_unpausevcpu            1002
     493            0 : #define XEN_DOMCTL_gdbsx_domstatus              1003
     494            0 :         uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
     495            0 :         domid_t  domain;
     496              :         uint16_t _pad[3];
     497              :         union {
     498            0 :                 struct xen_domctl_createdomain createdomain;
     499            0 :                 struct xen_domctl_getdomaininfo getdomaininfo;
     500            0 :                 struct xen_domctl_max_mem max_mem;
     501            0 :                 struct xen_domctl_vcpucontext vcpucontext;
     502            0 :                 struct xen_domctl_max_vcpus max_vcpus;
     503            0 :                 struct xen_domctl_scheduler_op scheduler_op;
     504            0 :                 struct xen_domctl_iomem_permission iomem_permission;
     505            0 :                 struct xen_domctl_address_size address_size;
     506            0 :                 struct xen_domctl_assign_device assign_device;
     507            0 :                 struct xen_domctl_bind_pt_irq bind_pt_irq;
     508            0 :                 struct xen_domctl_memory_mapping memory_mapping;
     509            0 :                 struct xen_domctl_cacheflush cacheflush;
     510            0 :                 struct xen_domctl_paging_mempool paging_mempool;
     511            0 :                 uint8_t pad[128];
     512            0 :         } u;
     513              : };
     514            0 : typedef struct xen_domctl xen_domctl_t;
     515            0 : DEFINE_XEN_GUEST_HANDLE(xen_domctl_t);
     516              : 
     517              : #endif /* __XEN_PUBLIC_DOMCTL_H__ */
        

Generated by: LCOV version 2.0-1