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"
34#define _XEN_DOMCTL_CDF_hvm 0
35#define XEN_DOMCTL_CDF_hvm (1U << _XEN_DOMCTL_CDF_hvm)
37#define _XEN_DOMCTL_CDF_hap 1
38#define XEN_DOMCTL_CDF_hap (1U << _XEN_DOMCTL_CDF_hap)
40#define _XEN_DOMCTL_CDF_s3_integrity 2
41#define XEN_DOMCTL_CDF_s3_integrity (1U << _XEN_DOMCTL_CDF_s3_integrity)
43#define _XEN_DOMCTL_CDF_oos_off 3
44#define XEN_DOMCTL_CDF_oos_off (1U << _XEN_DOMCTL_CDF_oos_off)
46#define _XEN_DOMCTL_CDF_xs_domain 4
47#define XEN_DOMCTL_CDF_xs_domain (1U << _XEN_DOMCTL_CDF_xs_domain)
49#define _XEN_DOMCTL_CDF_iommu 5
50#define XEN_DOMCTL_CDF_iommu (1U << _XEN_DOMCTL_CDF_iommu)
51#define _XEN_DOMCTL_CDF_nested_virt 6
52#define XEN_DOMCTL_CDF_nested_virt (1U << _XEN_DOMCTL_CDF_nested_virt)
54#define XEN_DOMCTL_CDF_vpmu (1U << 7)
57#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu
61#define _XEN_DOMCTL_IOMMU_no_sharept 0
62#define XEN_DOMCTL_IOMMU_no_sharep (1U << _XEN_DOMCTL_IOMMU_no_sharept)
65#define XEN_DOMCTL_IOMMU_MAX XEN_DOMCTL_IOMMU_no_sharept
81#define XEN_DOMCTL_GRANT_version_mask 0xf
82#define XEN_DOMCTL_GRANT_version(v) ((v) & XEN_DOMCTL_GRANT_version_mask)
92 struct xen_arch_domainconfig
arch;
101#define _XEN_DOMINF_dying 0
102#define XEN_DOMINF_dying (1U << _XEN_DOMINF_dying)
104#define _XEN_DOMINF_hvm_guest 1
105#define XEN_DOMINF_hvm_guest (1U << _XEN_DOMINF_hvm_guest)
107#define _XEN_DOMINF_shutdown 2
108#define XEN_DOMINF_shutdown (1U << _XEN_DOMINF_shutdown)
110#define _XEN_DOMINF_paused 3
111#define XEN_DOMINF_paused (1U << _XEN_DOMINF_paused)
113#define _XEN_DOMINF_blocked 4
114#define XEN_DOMINF_blocked (1U << _XEN_DOMINF_blocked)
116#define _XEN_DOMINF_running 5
117#define XEN_DOMINF_running (1U << _XEN_DOMINF_running)
119#define _XEN_DOMINF_debugged 6
120#define XEN_DOMINF_debugged (1U << _XEN_DOMINF_debugged)
122#define _XEN_DOMINF_xs_domain 7
123#define XEN_DOMINF_xs_domain (1U << _XEN_DOMINF_xs_domain)
125#define _XEN_DOMINF_hap 8
126#define XEN_DOMINF_hap (1U << _XEN_DOMINF_hap)
128#define XEN_DOMINF_shutdownmask 255
129#define XEN_DOMINF_shutdownshift 16
139#define XEN_INVALID_MAX_VCPU_ID (~0U)
157#define XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION 30
158#define XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION 31
193 XEN_GUEST_HANDLE_64(vcpu_guest_context_t)
ctxt;
223#define XEN_SCHEDULER_CREDIT 5
224#define XEN_SCHEDULER_CREDIT2 6
225#define XEN_SCHEDULER_ARINC653 7
226#define XEN_SCHEDULER_RTDS 8
227#define XEN_SCHEDULER_NULL 9
243#define _XEN_DOMCTL_SCHEDRT_extra 0
244#define XEN_DOMCTL_SCHEDRT_extra (1U<<_XEN_DOMCTL_SCHEDRT_extra)
270#define XEN_DOMCTL_SCHEDOP_putinfo 0
271#define XEN_DOMCTL_SCHEDOP_getinfo 1
272#define XEN_DOMCTL_SCHEDOP_putvcpuinfo 2
273#define XEN_DOMCTL_SCHEDOP_getvcpuinfo 3
322#define XEN_DOMCTL_DEV_PCI 0
323#define XEN_DOMCTL_DEV_DT 1
328#define XEN_DOMCTL_DEV_RDM_RELAXED 1
336 XEN_GUEST_HANDLE_64(
char)
path;
367#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
368#define XEN_DOMCTL_VMSI_X86_RH_MASK 0x000100
369#define XEN_DOMCTL_VMSI_X86_DM_MASK 0x000200
370#define XEN_DOMCTL_VMSI_X86_DELIV_MASK 0x007000
371#define XEN_DOMCTL_VMSI_X86_TRIG_MASK 0x008000
372#define XEN_DOMCTL_VMSI_X86_UNMASKED 0x010000
393#define DPCI_ADD_MAPPING 1
394#define DPCI_REMOVE_MAPPING 0
412#if CONFIG_XEN_DOMCTL_INTERFACE_VERSION >= 0x00000016
425struct xen_domctl_paging_mempool {
432#define XEN_DOMCTL_createdomain 1
433#define XEN_DOMCTL_destroydomain 2
434#define XEN_DOMCTL_pausedomain 3
435#define XEN_DOMCTL_unpausedomain 4
436#define XEN_DOMCTL_getdomaininfo 5
437#define XEN_DOMCTL_setvcpuaffinity 9
438#define XEN_DOMCTL_shadow_op 10
439#define XEN_DOMCTL_max_mem 11
440#define XEN_DOMCTL_setvcpucontext 12
441#define XEN_DOMCTL_getvcpucontext 13
442#define XEN_DOMCTL_getvcpuinfo 14
443#define XEN_DOMCTL_max_vcpus 15
444#define XEN_DOMCTL_scheduler_op 16
445#define XEN_DOMCTL_setdomainhandle 17
446#define XEN_DOMCTL_setdebugging 18
447#define XEN_DOMCTL_irq_permission 19
448#define XEN_DOMCTL_iomem_permission 20
449#define XEN_DOMCTL_ioport_permission 21
450#define XEN_DOMCTL_hypercall_init 22
451#define XEN_DOMCTL_settimeoffset 24
452#define XEN_DOMCTL_getvcpuaffinity 25
453#define XEN_DOMCTL_real_mode_area 26
454#define XEN_DOMCTL_resumedomain 27
455#define XEN_DOMCTL_sendtrigger 28
456#define XEN_DOMCTL_subscribe 29
457#define XEN_DOMCTL_gethvmcontext 33
458#define XEN_DOMCTL_sethvmcontext 34
459#define XEN_DOMCTL_set_address_size 35
460#define XEN_DOMCTL_get_address_size 36
461#define XEN_DOMCTL_assign_device 37
462#define XEN_DOMCTL_bind_pt_irq 38
463#define XEN_DOMCTL_memory_mapping 39
464#define XEN_DOMCTL_ioport_mapping 40
465#define XEN_DOMCTL_set_ext_vcpucontext 42
466#define XEN_DOMCTL_get_ext_vcpucontext 43
467#define XEN_DOMCTL_set_opt_feature 44
468#define XEN_DOMCTL_test_assign_device 45
469#define XEN_DOMCTL_set_target 46
470#define XEN_DOMCTL_deassign_device 47
471#define XEN_DOMCTL_unbind_pt_irq 48
472#define XEN_DOMCTL_get_device_group 50
473#define XEN_DOMCTL_debug_op 54
474#define XEN_DOMCTL_gethvmcontext_partial 55
475#define XEN_DOMCTL_vm_event_op 56
476#define XEN_DOMCTL_mem_sharing_op 57
477#define XEN_DOMCTL_gettscinfo 59
478#define XEN_DOMCTL_settscinfo 60
479#define XEN_DOMCTL_getpageframeinfo3 61
480#define XEN_DOMCTL_setvcpuextstate 62
481#define XEN_DOMCTL_getvcpuextstate 63
482#define XEN_DOMCTL_set_access_required 64
483#define XEN_DOMCTL_audit_p2m 65
484#define XEN_DOMCTL_set_virq_handler 66
485#define XEN_DOMCTL_set_broken_page_p2m 67
486#define XEN_DOMCTL_setnodeaffinity 68
487#define XEN_DOMCTL_getnodeaffinity 69
488#define XEN_DOMCTL_cacheflush 71
489#define XEN_DOMCTL_get_vcpu_msrs 72
490#define XEN_DOMCTL_set_vcpu_msrs 73
491#define XEN_DOMCTL_setvnumainfo 74
492#define XEN_DOMCTL_psr_cmt_op 75
493#define XEN_DOMCTL_monitor_op 77
494#define XEN_DOMCTL_psr_alloc 78
495#define XEN_DOMCTL_soft_reset 79
496#define XEN_DOMCTL_vuart_op 81
497#define XEN_DOMCTL_get_cpu_policy 82
498#define XEN_DOMCTL_set_cpu_policy 83
499#define XEN_DOMCTL_vmtrace_op 84
500#if CONFIG_XEN_DOMCTL_INTERFACE_VERSION >= 0x00000016
501#define XEN_DOMCTL_get_paging_mempool_size 85
502#define XEN_DOMCTL_set_paging_mempool_size 86
504#define XEN_DOMCTL_gdbsx_guestmemio 1000
505#define XEN_DOMCTL_gdbsx_pausevcpu 1001
506#define XEN_DOMCTL_gdbsx_unpausevcpu 1002
507#define XEN_DOMCTL_gdbsx_domstatus 1003
525#if CONFIG_XEN_DOMCTL_INTERFACE_VERSION >= 0x00000016
526 struct xen_domctl_paging_mempool paging_mempool;
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
struct xen_domctl xen_domctl_t
Definition domctl.h:531
struct xen_domctl_getdomaininfo xen_domctl_getdomaininfo_t
Definition domctl.h:148
pt_irq_type
Definition domctl.h:344
@ PT_IRQ_TYPE_PCI
Definition domctl.h:345
@ PT_IRQ_TYPE_MSI
Definition domctl.h:347
@ PT_IRQ_TYPE_ISA
Definition domctl.h:346
@ PT_IRQ_TYPE_SPI
Definition domctl.h:349
@ PT_IRQ_TYPE_MSI_TRANSLATE
Definition domctl.h:348
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:304
uint32_t size
Definition domctl.h:334
struct xen_domctl_assign_device::@346070346101205137164003321227267235055010101065::@126306216020237363006234226214302063046257022100 pci
path
Definition domctl.h:336
uint32_t flags
Definition domctl.h:327
struct xen_domctl_assign_device::@346070346101205137164003321227267235055010101065::@225251342002247351377134134211157327114300011025 dt
union xen_domctl_assign_device::@346070346101205137164003321227267235055010101065 u
uint32_t machine_sbdf
Definition domctl.h:331
uint32_t dev
Definition domctl.h:326
uint64_t gtable
Definition domctl.h:374
struct xen_domctl_bind_pt_irq::@007272240376006057315255007155165227336027147126::@326164326227067320141270032376355136317070171305 isa
uint8_t isa_irq
Definition domctl.h:357
uint8_t gvec
Definition domctl.h:365
union xen_domctl_bind_pt_irq::@007272240376006057315255007155165227336027147126 u
uint16_t spi
Definition domctl.h:377
uint8_t device
Definition domctl.h:361
uint32_t irq_type
Definition domctl.h:353
struct xen_domctl_bind_pt_irq::@007272240376006057315255007155165227336027147126::@335203000171206223004156057337274142062375234221 msi
uint8_t bus
Definition domctl.h:360
uint8_t intx
Definition domctl.h:362
uint32_t gflags
Definition domctl.h:366
uint32_t machine_irq
Definition domctl.h:352
struct xen_domctl_bind_pt_irq::@007272240376006057315255007155165227336027147126::@273140227232217216356207073012252101356335062255 pci
xen_pfn_t nr_pfns
Definition domctl.h:409
xen_pfn_t start_pfn
Definition domctl.h:409
uint32_t ssidref
Definition domctl.h:31
uint32_t iommu_opts
Definition domctl.h:67
uint32_t max_evtchn_port
Definition domctl.h:76
struct xen_arch_domainconfig arch
Definition domctl.h:92
uint32_t vmtrace_size
Definition domctl.h:87
uint32_t grant_opts
Definition domctl.h:84
uint32_t flags
Definition domctl.h:59
int32_t max_grant_frames
Definition domctl.h:77
uint32_t cpupool_id
Definition domctl.h:90
uint32_t max_vcpus
Definition domctl.h:75
int32_t max_maptrack_frames
Definition domctl.h:78
xen_domain_handle_t handle
Definition domctl.h:32
uint64_t outstanding_pages
Definition domctl.h:133
uint32_t cpupool
Definition domctl.h:143
uint64_t tot_pages
Definition domctl.h:131
uint32_t nr_online_vcpus
Definition domctl.h:138
uint16_t pad1
Definition domctl.h:99
uint64_t shared_info_frame
Definition domctl.h:136
struct xen_arch_domainconfig arch_config
Definition domctl.h:146
uint8_t gpaddr_bits
Definition domctl.h:144
domid_t domain
Definition domctl.h:98
uint8_t pad2[7]
Definition domctl.h:145
uint64_t shr_pages
Definition domctl.h:134
uint64_t max_pages
Definition domctl.h:132
uint64_t paged_pages
Definition domctl.h:135
uint64_t cpu_time
Definition domctl.h:137
xen_domain_handle_t handle
Definition domctl.h:142
uint32_t ssidref
Definition domctl.h:141
uint32_t max_vcpu_id
Definition domctl.h:140
uint32_t flags
Definition domctl.h:130
uint8_t blocked
Definition domctl.h:202
uint32_t vcpu
Definition domctl.h:199
uint32_t cpu
Definition domctl.h:205
uint8_t online
Definition domctl.h:201
uint64_t cpu_time
Definition domctl.h:204
uint8_t running
Definition domctl.h:203
uint8_t allow_access
Definition domctl.h:298
uint64_t nr_mfns
Definition domctl.h:297
uint64_t first_mfn
Definition domctl.h:296
uint64_t max_memkb
Definition domctl.h:185
uint32_t max
Definition domctl.h:217
uint64_t nr_mfns
Definition domctl.h:398
uint32_t padding
Definition domctl.h:400
uint32_t add_mapping
Definition domctl.h:399
uint64_t first_gfn
Definition domctl.h:396
uint64_t first_mfn
Definition domctl.h:397
uint16_t weight
Definition domctl.h:235
uint16_t cap
Definition domctl.h:236
uint16_t cap
Definition domctl.h:231
uint16_t weight
Definition domctl.h:230
uint32_t period
Definition domctl.h:240
uint32_t budget
Definition domctl.h:241
uint32_t flags
Definition domctl.h:245
uint32_t vcpuid
Definition domctl.h:254
union xen_domctl_schedparam_vcpu::@026172365210266001352130004276145310050375341003 u
struct xen_domctl_sched_rtds rtds
Definition domctl.h:252
struct xen_domctl_sched_credit credit
Definition domctl.h:250
struct xen_domctl_sched_credit2 credit2
Definition domctl.h:251
struct xen_domctl_sched_rtds rtds
Definition domctl.h:281
struct xen_domctl_scheduler_op::@204215365231351031025307062051006224145075020352::@204304235224270141042144334000147051234133015251 v
uint32_t cmd
Definition domctl.h:276
vcpus
Definition domctl.h:283
union xen_domctl_scheduler_op::@204215365231351031025307062051006224145075020352 u
uint32_t sched_id
Definition domctl.h:275
uint32_t nr_vcpus
Definition domctl.h:288
uint32_t padding
Definition domctl.h:289
struct xen_domctl_sched_credit credit
Definition domctl.h:279
struct xen_domctl_sched_credit2 credit2
Definition domctl.h:280
uint32_t fault_count
Definition domctl.h:161
uint32_t dirty_count
Definition domctl.h:162
struct xen_domctl_shadow_op_stats stats
Definition domctl.h:179
uint32_t mode
Definition domctl.h:171
uint32_t mb
Definition domctl.h:174
dirty_bitmap
Definition domctl.h:177
uint64_t pages
Definition domctl.h:178
uint32_t op
Definition domctl.h:167
ctxt
Definition domctl.h:193
uint32_t vcpu
Definition domctl.h:191
struct xen_domctl_bind_pt_irq bind_pt_irq
Definition domctl.h:522
struct xen_domctl_createdomain createdomain
Definition domctl.h:512
struct xen_domctl_memory_mapping memory_mapping
Definition domctl.h:523
struct xen_domctl_assign_device assign_device
Definition domctl.h:521
struct xen_domctl_cacheflush cacheflush
Definition domctl.h:524
domid_t domain
Definition domctl.h:509
struct xen_domctl_scheduler_op scheduler_op
Definition domctl.h:518
struct xen_domctl_iomem_permission iomem_permission
Definition domctl.h:519
uint32_t interface_version
Definition domctl.h:508
uint32_t cmd
Definition domctl.h:431
struct xen_domctl_vcpucontext vcpucontext
Definition domctl.h:515
struct xen_domctl_getdomaininfo getdomaininfo
Definition domctl.h:513
struct xen_domctl_getvcpuinfo getvcpuinfo
Definition domctl.h:516
struct xen_domctl_max_mem max_mem
Definition domctl.h:514
struct xen_domctl_max_vcpus max_vcpus
Definition domctl.h:517
struct xen_domctl_address_size address_size
Definition domctl.h:520
uint8_t pad[128]
Definition domctl.h:528
union xen_domctl::@271012046276317112147345010275114207367142241034 u
uint16_t domid_t
Definition xen.h:217
uint8_t xen_domain_handle_t[16]
Definition xen.h:375