11#ifndef __XEN_PUBLIC_DOMCTL_H__
12#define __XEN_PUBLIC_DOMCTL_H__
14#ifndef CONFIG_XEN_DOM0
15#error "domctl operations are intended for use by node control tools only"
23#define XEN_DOMCTL_INTERFACE_VERSION 0x00000015
36#define _XEN_DOMCTL_CDF_hvm 0
37#define XEN_DOMCTL_CDF_hvm (1U << _XEN_DOMCTL_CDF_hvm)
39#define _XEN_DOMCTL_CDF_hap 1
40#define XEN_DOMCTL_CDF_hap (1U << _XEN_DOMCTL_CDF_hap)
42#define _XEN_DOMCTL_CDF_s3_integrity 2
43#define XEN_DOMCTL_CDF_s3_integrity (1U << _XEN_DOMCTL_CDF_s3_integrity)
45#define _XEN_DOMCTL_CDF_oos_off 3
46#define XEN_DOMCTL_CDF_oos_off (1U << _XEN_DOMCTL_CDF_oos_off)
48#define _XEN_DOMCTL_CDF_xs_domain 4
49#define XEN_DOMCTL_CDF_xs_domain (1U << _XEN_DOMCTL_CDF_xs_domain)
51#define _XEN_DOMCTL_CDF_iommu 5
52#define XEN_DOMCTL_CDF_iommu (1U << _XEN_DOMCTL_CDF_iommu)
53#define _XEN_DOMCTL_CDF_nested_virt 6
54#define XEN_DOMCTL_CDF_nested_virt (1U << _XEN_DOMCTL_CDF_nested_virt)
56#define XEN_DOMCTL_CDF_vpmu (1U << 7)
59#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu
63#define _XEN_DOMCTL_IOMMU_no_sharept 0
64#define XEN_DOMCTL_IOMMU_no_sharep (1U << _XEN_DOMCTL_IOMMU_no_sharept)
67#define XEN_DOMCTL_IOMMU_MAX XEN_DOMCTL_IOMMU_no_sharept
83#define XEN_DOMCTL_GRANT_version_mask 0xf
84#define XEN_DOMCTL_GRANT_version(v) ((v) & XEN_DOMCTL_GRANT_version_mask)
94 struct xen_arch_domainconfig
arch;
103#define _XEN_DOMINF_dying 0
104#define XEN_DOMINF_dying (1U << _XEN_DOMINF_dying)
106#define _XEN_DOMINF_hvm_guest 1
107#define XEN_DOMINF_hvm_guest (1U << _XEN_DOMINF_hvm_guest)
109#define _XEN_DOMINF_shutdown 2
110#define XEN_DOMINF_shutdown (1U << _XEN_DOMINF_shutdown)
112#define _XEN_DOMINF_paused 3
113#define XEN_DOMINF_paused (1U << _XEN_DOMINF_paused)
115#define _XEN_DOMINF_blocked 4
116#define XEN_DOMINF_blocked (1U << _XEN_DOMINF_blocked)
118#define _XEN_DOMINF_running 5
119#define XEN_DOMINF_running (1U << _XEN_DOMINF_running)
121#define _XEN_DOMINF_debugged 6
122#define XEN_DOMINF_debugged (1U << _XEN_DOMINF_debugged)
124#define _XEN_DOMINF_xs_domain 7
125#define XEN_DOMINF_xs_domain (1U << _XEN_DOMINF_xs_domain)
127#define _XEN_DOMINF_hap 8
128#define XEN_DOMINF_hap (1U << _XEN_DOMINF_hap)
130#define XEN_DOMINF_shutdownmask 255
131#define XEN_DOMINF_shutdownshift 16
141#define XEN_INVALID_MAX_VCPU_ID (~0U)
159#define XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION 30
160#define XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION 31
195 XEN_GUEST_HANDLE_64(vcpu_guest_context_t)
ctxt;
213#define XEN_SCHEDULER_CREDIT 5
214#define XEN_SCHEDULER_CREDIT2 6
215#define XEN_SCHEDULER_ARINC653 7
216#define XEN_SCHEDULER_RTDS 8
217#define XEN_SCHEDULER_NULL 9
233#define _XEN_DOMCTL_SCHEDRT_extra 0
234#define XEN_DOMCTL_SCHEDRT_extra (1U<<_XEN_DOMCTL_SCHEDRT_extra)
260#define XEN_DOMCTL_SCHEDOP_putinfo 0
261#define XEN_DOMCTL_SCHEDOP_getinfo 1
262#define XEN_DOMCTL_SCHEDOP_putvcpuinfo 2
263#define XEN_DOMCTL_SCHEDOP_getvcpuinfo 3
312#define XEN_DOMCTL_DEV_PCI 0
313#define XEN_DOMCTL_DEV_DT 1
318#define XEN_DOMCTL_DEV_RDM_RELAXED 1
326 XEN_GUEST_HANDLE_64(
char)
path;
357#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
358#define XEN_DOMCTL_VMSI_X86_RH_MASK 0x000100
359#define XEN_DOMCTL_VMSI_X86_DM_MASK 0x000200
360#define XEN_DOMCTL_VMSI_X86_DELIV_MASK 0x007000
361#define XEN_DOMCTL_VMSI_X86_TRIG_MASK 0x008000
362#define XEN_DOMCTL_VMSI_X86_UNMASKED 0x010000
383#define DPCI_ADD_MAPPING 1
384#define DPCI_REMOVE_MAPPING 0
420#define XEN_DOMCTL_createdomain 1
421#define XEN_DOMCTL_destroydomain 2
422#define XEN_DOMCTL_pausedomain 3
423#define XEN_DOMCTL_unpausedomain 4
424#define XEN_DOMCTL_getdomaininfo 5
425#define XEN_DOMCTL_setvcpuaffinity 9
426#define XEN_DOMCTL_shadow_op 10
427#define XEN_DOMCTL_max_mem 11
428#define XEN_DOMCTL_setvcpucontext 12
429#define XEN_DOMCTL_getvcpucontext 13
430#define XEN_DOMCTL_getvcpuinfo 14
431#define XEN_DOMCTL_max_vcpus 15
432#define XEN_DOMCTL_scheduler_op 16
433#define XEN_DOMCTL_setdomainhandle 17
434#define XEN_DOMCTL_setdebugging 18
435#define XEN_DOMCTL_irq_permission 19
436#define XEN_DOMCTL_iomem_permission 20
437#define XEN_DOMCTL_ioport_permission 21
438#define XEN_DOMCTL_hypercall_init 22
439#define XEN_DOMCTL_settimeoffset 24
440#define XEN_DOMCTL_getvcpuaffinity 25
441#define XEN_DOMCTL_real_mode_area 26
442#define XEN_DOMCTL_resumedomain 27
443#define XEN_DOMCTL_sendtrigger 28
444#define XEN_DOMCTL_subscribe 29
445#define XEN_DOMCTL_gethvmcontext 33
446#define XEN_DOMCTL_sethvmcontext 34
447#define XEN_DOMCTL_set_address_size 35
448#define XEN_DOMCTL_get_address_size 36
449#define XEN_DOMCTL_assign_device 37
450#define XEN_DOMCTL_bind_pt_irq 38
451#define XEN_DOMCTL_memory_mapping 39
452#define XEN_DOMCTL_ioport_mapping 40
453#define XEN_DOMCTL_set_ext_vcpucontext 42
454#define XEN_DOMCTL_get_ext_vcpucontext 43
455#define XEN_DOMCTL_set_opt_feature 44
456#define XEN_DOMCTL_test_assign_device 45
457#define XEN_DOMCTL_set_target 46
458#define XEN_DOMCTL_deassign_device 47
459#define XEN_DOMCTL_unbind_pt_irq 48
460#define XEN_DOMCTL_get_device_group 50
461#define XEN_DOMCTL_debug_op 54
462#define XEN_DOMCTL_gethvmcontext_partial 55
463#define XEN_DOMCTL_vm_event_op 56
464#define XEN_DOMCTL_mem_sharing_op 57
465#define XEN_DOMCTL_gettscinfo 59
466#define XEN_DOMCTL_settscinfo 60
467#define XEN_DOMCTL_getpageframeinfo3 61
468#define XEN_DOMCTL_setvcpuextstate 62
469#define XEN_DOMCTL_getvcpuextstate 63
470#define XEN_DOMCTL_set_access_required 64
471#define XEN_DOMCTL_audit_p2m 65
472#define XEN_DOMCTL_set_virq_handler 66
473#define XEN_DOMCTL_set_broken_page_p2m 67
474#define XEN_DOMCTL_setnodeaffinity 68
475#define XEN_DOMCTL_getnodeaffinity 69
476#define XEN_DOMCTL_cacheflush 71
477#define XEN_DOMCTL_get_vcpu_msrs 72
478#define XEN_DOMCTL_set_vcpu_msrs 73
479#define XEN_DOMCTL_setvnumainfo 74
480#define XEN_DOMCTL_psr_cmt_op 75
481#define XEN_DOMCTL_monitor_op 77
482#define XEN_DOMCTL_psr_alloc 78
483#define XEN_DOMCTL_soft_reset 79
484#define XEN_DOMCTL_vuart_op 81
485#define XEN_DOMCTL_get_cpu_policy 82
486#define XEN_DOMCTL_set_cpu_policy 83
487#define XEN_DOMCTL_vmtrace_op 84
488#define XEN_DOMCTL_get_paging_mempool_size 85
489#define XEN_DOMCTL_set_paging_mempool_size 86
490#define XEN_DOMCTL_gdbsx_guestmemio 1000
491#define XEN_DOMCTL_gdbsx_pausevcpu 1001
492#define XEN_DOMCTL_gdbsx_unpausevcpu 1002
493#define XEN_DOMCTL_gdbsx_domstatus 1003
uint64_t xen_pfn_t
Definition: arch-arm.h:204
#define uint64_aligned_t
Definition: arch-arm.h:173
#define DEFINE_XEN_GUEST_HANDLE(name)
Definition: arch-arm.h:192
pt_irq_type
Definition: domctl.h:334
@ PT_IRQ_TYPE_PCI
Definition: domctl.h:335
@ PT_IRQ_TYPE_MSI
Definition: domctl.h:337
@ PT_IRQ_TYPE_ISA
Definition: domctl.h:336
@ PT_IRQ_TYPE_SPI
Definition: domctl.h:339
@ PT_IRQ_TYPE_MSI_TRANSLATE
Definition: domctl.h:338
struct xen_domctl_schedparam_vcpu xen_domctl_schedparam_vcpu_t
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__INT32_TYPE__ int32_t
Definition: stdint.h:74
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
uint32_t size
Definition: domctl.h:294
uint32_t size
Definition: domctl.h:324
path
Definition: domctl.h:326
uint32_t flags
Definition: domctl.h:317
uint32_t machine_sbdf
Definition: domctl.h:321
struct xen_domctl_assign_device::@408::@410 dt
struct xen_domctl_assign_device::@408::@409 pci
union xen_domctl_assign_device::@408 u
uint32_t dev
Definition: domctl.h:316
struct xen_domctl_bind_pt_irq::@411::@413 pci
union xen_domctl_bind_pt_irq::@411 u
uint64_t gtable
Definition: domctl.h:364
uint8_t isa_irq
Definition: domctl.h:347
uint8_t gvec
Definition: domctl.h:355
struct xen_domctl_bind_pt_irq::@411::@414 msi
uint16_t spi
Definition: domctl.h:367
uint8_t device
Definition: domctl.h:351
struct xen_domctl_bind_pt_irq::@411::@412 isa
uint32_t irq_type
Definition: domctl.h:343
uint8_t bus
Definition: domctl.h:350
uint8_t intx
Definition: domctl.h:352
uint32_t gflags
Definition: domctl.h:356
uint32_t machine_irq
Definition: domctl.h:342
xen_pfn_t nr_pfns
Definition: domctl.h:399
xen_pfn_t start_pfn
Definition: domctl.h:399
uint32_t ssidref
Definition: domctl.h:33
uint32_t iommu_opts
Definition: domctl.h:69
uint32_t max_evtchn_port
Definition: domctl.h:78
struct xen_arch_domainconfig arch
Definition: domctl.h:94
uint32_t vmtrace_size
Definition: domctl.h:89
uint32_t grant_opts
Definition: domctl.h:86
uint32_t flags
Definition: domctl.h:61
int32_t max_grant_frames
Definition: domctl.h:79
uint32_t cpupool_id
Definition: domctl.h:92
uint32_t max_vcpus
Definition: domctl.h:77
int32_t max_maptrack_frames
Definition: domctl.h:80
xen_domain_handle_t handle
Definition: domctl.h:34
uint64_t outstanding_pages
Definition: domctl.h:135
uint32_t cpupool
Definition: domctl.h:145
uint64_t tot_pages
Definition: domctl.h:133
uint32_t nr_online_vcpus
Definition: domctl.h:140
uint16_t pad1
Definition: domctl.h:101
uint64_t shared_info_frame
Definition: domctl.h:138
struct xen_arch_domainconfig arch_config
Definition: domctl.h:148
uint8_t gpaddr_bits
Definition: domctl.h:146
domid_t domain
Definition: domctl.h:100
uint8_t pad2[7]
Definition: domctl.h:147
uint64_t shr_pages
Definition: domctl.h:136
uint64_t max_pages
Definition: domctl.h:134
uint64_t paged_pages
Definition: domctl.h:137
uint64_t cpu_time
Definition: domctl.h:139
xen_domain_handle_t handle
Definition: domctl.h:144
uint32_t ssidref
Definition: domctl.h:143
uint32_t max_vcpu_id
Definition: domctl.h:142
uint32_t flags
Definition: domctl.h:132
uint8_t allow_access
Definition: domctl.h:288
uint64_t nr_mfns
Definition: domctl.h:287
uint64_t first_mfn
Definition: domctl.h:286
uint64_t max_memkb
Definition: domctl.h:187
uint32_t max
Definition: domctl.h:207
uint64_t nr_mfns
Definition: domctl.h:388
uint32_t padding
Definition: domctl.h:390
uint32_t add_mapping
Definition: domctl.h:389
uint64_t first_gfn
Definition: domctl.h:386
uint64_t first_mfn
Definition: domctl.h:387
uint64_t size
Definition: domctl.h:415
uint16_t weight
Definition: domctl.h:225
uint16_t cap
Definition: domctl.h:226
uint16_t cap
Definition: domctl.h:221
uint16_t weight
Definition: domctl.h:220
uint32_t period
Definition: domctl.h:230
uint32_t budget
Definition: domctl.h:231
uint32_t flags
Definition: domctl.h:235
uint32_t vcpuid
Definition: domctl.h:244
struct xen_domctl_sched_rtds rtds
Definition: domctl.h:242
struct xen_domctl_sched_credit credit
Definition: domctl.h:240
union xen_domctl_schedparam_vcpu::@405 u
struct xen_domctl_sched_credit2 credit2
Definition: domctl.h:241
struct xen_domctl_sched_rtds rtds
Definition: domctl.h:271
uint32_t cmd
Definition: domctl.h:266
vcpus
Definition: domctl.h:273
struct xen_domctl_scheduler_op::@406::@407 v
uint32_t sched_id
Definition: domctl.h:265
uint32_t nr_vcpus
Definition: domctl.h:278
uint32_t padding
Definition: domctl.h:279
struct xen_domctl_sched_credit credit
Definition: domctl.h:269
union xen_domctl_scheduler_op::@406 u
struct xen_domctl_sched_credit2 credit2
Definition: domctl.h:270
uint32_t fault_count
Definition: domctl.h:163
uint32_t dirty_count
Definition: domctl.h:164
struct xen_domctl_shadow_op_stats stats
Definition: domctl.h:181
uint32_t mode
Definition: domctl.h:173
uint32_t mb
Definition: domctl.h:176
dirty_bitmap
Definition: domctl.h:179
uint64_t pages
Definition: domctl.h:180
uint32_t op
Definition: domctl.h:169
ctxt
Definition: domctl.h:195
uint32_t vcpu
Definition: domctl.h:193
struct xen_domctl_bind_pt_irq bind_pt_irq
Definition: domctl.h:507
struct xen_domctl_createdomain createdomain
Definition: domctl.h:498
struct xen_domctl_memory_mapping memory_mapping
Definition: domctl.h:508
struct xen_domctl_assign_device assign_device
Definition: domctl.h:506
struct xen_domctl_cacheflush cacheflush
Definition: domctl.h:509
domid_t domain
Definition: domctl.h:495
struct xen_domctl_scheduler_op scheduler_op
Definition: domctl.h:503
struct xen_domctl_iomem_permission iomem_permission
Definition: domctl.h:504
uint32_t interface_version
Definition: domctl.h:494
struct xen_domctl_paging_mempool paging_mempool
Definition: domctl.h:510
uint32_t cmd
Definition: domctl.h:419
struct xen_domctl_vcpucontext vcpucontext
Definition: domctl.h:501
struct xen_domctl_getdomaininfo getdomaininfo
Definition: domctl.h:499
struct xen_domctl_max_mem max_mem
Definition: domctl.h:500
struct xen_domctl_max_vcpus max_vcpus
Definition: domctl.h:502
struct xen_domctl_address_size address_size
Definition: domctl.h:505
uint8_t pad[128]
Definition: domctl.h:511
uint16_t domid_t
Definition: xen.h:217
uint8_t xen_domain_handle_t[16]
Definition: xen.h:375