1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_XEN_DOMCTL_H 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_XEN_DOMCTL_H 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * The domctl interface is versioned via the interface_version 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * field. This structures in this header supports domctl interfaces: 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * - 00000007: Xen 4.1 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * - 00000008: Xen 4.2 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * - 00000009: Xen 4.3 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * When adding a new subop be sure to include the variants used by all 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * of the above, both here and in syswrap-xen.c 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * Structs which are identical in all supported versions have no 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * version suffix. Structs which do differ are defined multiple times 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * and use the suffix of the latest version to contain that particular 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * variant. 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_createdomain 1 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_destroydomain 2 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_pausedomain 3 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_unpausedomain 4 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getdomaininfo 5 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getmemlist 6 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getpageframeinfo 7 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getpageframeinfo2 8 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setvcpuaffinity 9 30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_shadow_op 10 31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_max_mem 11 32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setvcpucontext 12 33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getvcpucontext 13 34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getvcpuinfo 14 35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_max_vcpus 15 36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_scheduler_op 16 37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setdomainhandle 17 38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setdebugging 18 39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_irq_permission 19 40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_iomem_permission 20 41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_ioport_permission 21 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_hypercall_init 22 43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_arch_setup 23 44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_settimeoffset 24 45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getvcpuaffinity 25 46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_real_mode_area 26 47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_resumedomain 27 48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_sendtrigger 28 49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_subscribe 29 50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gethvmcontext 33 51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_sethvmcontext 34 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_address_size 35 53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_get_address_size 36 54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_assign_device 37 55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_bind_pt_irq 38 56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_memory_mapping 39 57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_ioport_mapping 40 58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_pin_mem_cacheattr 41 59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_ext_vcpucontext 42 60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_get_ext_vcpucontext 43 61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_opt_feature 44 /*Obsolete IA64 only */ 62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_test_assign_device 45 63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_target 46 64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_deassign_device 47 65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_unbind_pt_irq 48 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_cpuid 49 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_get_device_group 50 68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_machine_address_size 51 69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_get_machine_address_size 52 70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_suppress_spurious_page_faults 53 71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_debug_op 54 72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gethvmcontext_partial 55 73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_mem_event_op 56 74436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_mem_sharing_op 57 75436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_disable_migrate 58 76436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gettscinfo 59 77436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_settscinfo 60 78436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getpageframeinfo3 61 79436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setvcpuextstate 62 80436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getvcpuextstate 63 81436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_access_required 64 82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_audit_p2m 65 83436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_virq_handler 66 84436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_broken_page_p2m 67 85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_setnodeaffinity 68 86436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_getnodeaffinity 69 87436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_set_max_evtchn 70 88eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define VKI_XEN_DOMCTL_cacheflush 71 89436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gdbsx_guestmemio 1000 90436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gdbsx_pausevcpu 1001 91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gdbsx_unpausevcpu 1002 92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_gdbsx_domstatus 1003 93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_createdomain { 95436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* IN parameters */ 96436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ssidref; 97436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domain_handle_t handle; 98436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t flags; 99436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 100436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 101436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_getdomaininfo_00000007 { 102436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* OUT variables. */ 103436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domid_t domain; 104436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t flags; 105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t tot_pages; 106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t max_pages; 107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shr_pages; 108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t paged_pages; 109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shared_info_frame; 110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t cpu_time; 111436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t nr_online_vcpus; 112436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t max_vcpu_id; 113436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ssidref; 114436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domain_handle_t handle; 115436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cpupool; 116436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 117436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_domctl_getdomaininfo_00000007 vki_xen_domctl_getdomaininfo_00000007_t; 118436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_getdomaininfo_00000007_t); 119436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 120436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_getdomaininfo_00000008 { 121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* OUT variables. */ 122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domid_t domain; 123436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t flags; 124436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t tot_pages; 125436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t max_pages; 126436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shr_pages; 127436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t paged_pages; 128436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shared_info_frame; 129436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t cpu_time; 130436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t nr_online_vcpus; 131436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t max_vcpu_id; 132436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ssidref; 133436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domain_handle_t handle; 134436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cpupool; 135436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_domctl_getdomaininfo_00000008 vki_xen_domctl_getdomaininfo_00000008_t; 137436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_getdomaininfo_00000008_t); 138436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 139436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_getdomaininfo_00000009 { 140436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* OUT variables. */ 141436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domid_t domain; 142436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t flags; 143436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t tot_pages; 144436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t max_pages; 145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t outstanding_pages; 146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shr_pages; 147436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t paged_pages; 148436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t shared_info_frame; 149436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t cpu_time; 150436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t nr_online_vcpus; 151436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t max_vcpu_id; 152436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ssidref; 153436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domain_handle_t handle; 154436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cpupool; 155436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 156436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_domctl_getdomaininfo_00000009 vki_xen_domctl_getdomaininfo_00000009_t; 157436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_getdomaininfo_00000009_t); 158436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 159436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Get/set the NUMA node(s) with which the guest has affinity with. */ 160436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* XEN_DOMCTL_setnodeaffinity */ 161436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* XEN_DOMCTL_getnodeaffinity */ 162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_nodeaffinity { 163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xenctl_bitmap nodemap;/* IN */ 164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 165436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_domctl_nodeaffinity vki_xen_domctl_nodeaffinity_t; 166436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_nodeaffinity_t); 167436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 168436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_getpageframeinfo3 { 169436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t num; /* IN */ 170436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_xen_pfn_t) array; /* IN/OUT */ 171436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 172436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 173436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_vcpuaffinity { 174436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t vcpu; /* IN */ 175436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xenctl_bitmap cpumap; /* IN/OUT */ 176436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 177436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_shadow_op_stats { 179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t fault_count; 180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t dirty_count; 181436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 182436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 183436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* vki_xen_domctl_shadow_op.op is an utter mess for compatibily reasons. */ 184436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 185436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_shadow_op { 186436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t op; /* IN */ 187436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 188436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_OFF 0 189436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_ENABLE 32 190436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_CLEAN 11 191436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_PEEK 12 192436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION 30 193436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION 31 194436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 195436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_ENABLE_TEST 1 196436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_ENABLE_LOGDIRTY 2 197436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SHADOW_OP_ENABLE_TRANSLATE 3 198436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 199436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t mode; 200436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 201436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT (1 << 1) 202436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY (1 << 2) 203436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE (1 << 3) 204436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define XEN_DOMCTL_SHADOW_ENABLE_EXTERNAL (1 << 4) 205436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 206436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t mb; 207436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_uint8) dirty_bitmap; 208436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t pages; 209436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_shadow_op_stats stats; 210436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 211436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 212436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_max_mem { 213436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* IN variables. */ 214436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t max_memkb; 215436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 216436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 217436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_vcpucontext { 218436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t vcpu; /* IN */ 219436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_xen_vcpu_guest_context_t) ctxt; /* IN/OUT */ 220436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 221436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 222436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_getvcpuinfo { 223436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* IN variables. */ 224436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t vcpu; 225436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* OUT variables. */ 226436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint8_t online; /* currently online (not hotplugged)? */ 227436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint8_t blocked; /* blocked waiting for an event? */ 228436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint8_t running; /* currently scheduled on its CPU? */ 229436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t cpu_time;/* total cpu time consumed (ns) */ 230436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cpu; /* current mapping */ 231436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 232436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 233436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_scheduler_op { 234436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t sched_id; /* VKI_XEN_SCHEDULER_* */ 235436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_SCHEDULER_SEDF 4 236436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_SCHEDULER_CREDIT 5 237436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_SCHEDULER_CREDIT2 6 238436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_SCHEDULER_ARINC653 7 239436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cmd; /* VKI_XEN_DOMCTL_SCHEDOP_* */ 240436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SCHEDOP_putinfo 0 241436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XEN_DOMCTL_SCHEDOP_getinfo 1 242436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov union { 243436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct xen_domctl_sched_sedf { 244436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t period; 245436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t slice; 246436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t latency; 247436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t extratime; 248436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t weight; 249436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } sedf; 250436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct xen_domctl_sched_credit { 251436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint16_t weight; 252436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint16_t cap; 253436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } credit; 254436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct xen_domctl_sched_credit2 { 255436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint16_t weight; 256436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } credit2; 257436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } u; 258436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 259436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 260436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_max_vcpus { 261436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t max; /* maximum number of vcpus */ 262436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 263436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 264436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_hypercall_init { 265436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t gmfn; /* GMFN to be initialised */ 266436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 267436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstruct vki_xen_domctl_settimeoffset { 269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov vki_int32_t time_offset_seconds; 270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}; 271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov 272436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_cpuid { 273436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t input[2]; 274436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t eax; 275436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ebx; 276436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t ecx; 277436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t edx; 278436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 279436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 280436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_guest_tsc_info { 281436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t tsc_mode; 282436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t gtsc_khz; 283436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t incarnation; 284436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t pad; 285436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t elapsed_nsec; 286436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 287436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_guest_tsc_info vki_xen_guest_tsc_info_t; 288436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_guest_tsc_info_t); 289436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 290436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_hvmcontext { 291436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t size; /* IN/OUT size of buffer */ 292436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_uint8) buffer; /* IN/OUT */ 293436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 294436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct vki_xen_domctl_hvmcontext vki_xen_domctl_hvmcontext_t; 295436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovDEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_domctl_hvmcontext_t); 296436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 297436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_tsc_info { 298436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_xen_guest_tsc_info_t) out_info; /* OUT */ 299436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_guest_tsc_info_t info; /* IN */ 300436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 301436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 302436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_vcpuextstate { 303436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t vcpu; 304436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t xfeature_mask; 305436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_uint64_aligned_t size; 306436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov VKI_XEN_GUEST_HANDLE_64(vki_uint64) buffer; 307436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 308436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 309436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_address_size { 310436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t size; 311436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 312436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 313436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl_set_max_evtchn { 314436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t max_port; 315436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 316436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstruct vki_xen_domctl_cacheflush { 318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov /* IN: page range to flush. */ 319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov vki_xen_pfn_t start_pfn, nr_pfns; 320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}; 321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov 322436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_domctl { 323436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t cmd; 324436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */ 325436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_xen_domid_t domain; 326436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov union { 327436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_createdomain createdomain; 328436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_getdomaininfo_00000007 getdomaininfo_00000007; 329436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_getdomaininfo_00000008 getdomaininfo_00000008; 330436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_getdomaininfo_00000009 getdomaininfo_00000009; 331436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_getmemlist getmemlist; 332436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_getpageframeinfo getpageframeinfo; 333436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_getpageframeinfo2 getpageframeinfo2; 334436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_getpageframeinfo3 getpageframeinfo3; 335436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_nodeaffinity nodeaffinity; 336436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_vcpuaffinity vcpuaffinity; 337436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_shadow_op shadow_op; 338436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_max_mem max_mem; 339436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_vcpucontext vcpucontext; 340436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_getvcpuinfo getvcpuinfo; 341436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_max_vcpus max_vcpus; 342436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_scheduler_op scheduler_op; 343436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_setdomainhandle setdomainhandle; 344436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_setdebugging setdebugging; 345436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_irq_permission irq_permission; 346436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_iomem_permission iomem_permission; 347436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_ioport_permission ioport_permission; 348436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_hypercall_init hypercall_init; 349436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_arch_setup arch_setup; 350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov struct vki_xen_domctl_settimeoffset settimeoffset; 351436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_disable_migrate disable_migrate; 352436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_tsc_info tsc_info; 353436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_real_mode_area real_mode_area; 354436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_hvmcontext hvmcontext; 355436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_hvmcontext_partial hvmcontext_partial; 356436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_address_size address_size; 357436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_sendtrigger sendtrigger; 358436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_get_device_group get_device_group; 359436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_assign_device assign_device; 360436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_bind_pt_irq bind_pt_irq; 361436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_memory_mapping memory_mapping; 362436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_ioport_mapping ioport_mapping; 363436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_pin_mem_cacheattr pin_mem_cacheattr; 364436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_ext_vcpucontext ext_vcpucontext; 365436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_set_target set_target; 366436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_subscribe subscribe; 367436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_debug_op debug_op; 368436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_mem_event_op mem_event_op; 369436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_mem_sharing_op mem_sharing_op; 370436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(__i386__) || defined(__x86_64__) 371436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_cpuid cpuid; 372436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_vcpuextstate vcpuextstate; 373436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 374436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_set_access_required access_required; 375436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_audit_p2m audit_p2m; 376436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_set_virq_handler set_virq_handler; 377436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov struct vki_xen_domctl_set_max_evtchn set_max_evtchn; 378436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_gdbsx_memio gdbsx_guest_memio; 379436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_set_broken_page_p2m set_broken_page_p2m; 380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov struct vki_xen_domctl_cacheflush cacheflush; 381436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_gdbsx_pauseunp_vcpu gdbsx_pauseunp_vcpu; 382436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov //struct vki_xen_domctl_gdbsx_domstatus gdbsx_domstatus; 383436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov vki_uint8_t pad[128]; 384436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov } u; 385436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 386436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 387436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif // __VKI_XEN_DOMCTL_H 388436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 389436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 390436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--- end ---*/ 391436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/ 392