Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
domctl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Apache-2.0 */
2/*
3 * Copyright (c) 2023 EPAM Systems
4 *
5 */
6
12
13#ifndef __XEN_DOM0_DOMCTL_H__
14#define __XEN_DOM0_DOMCTL_H__
15
16#include <xen/public/xen.h>
17#include <xen/public/domctl.h>
18
19#include <zephyr/xen/generic.h>
20
21#include <zephyr/kernel.h>
22
29
41int xen_domctl_scheduler_op(int domid, struct xen_domctl_scheduler_op *sched_op);
42
53
64
77
90int xen_domctl_getvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt);
91
103int xen_domctl_setvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt);
104
116int xen_domctl_getdomaininfo(int domid, xen_domctl_getdomaininfo_t *dom_info);
117
129
141
152int xen_domctl_max_mem(int domid, uint64_t max_memkb);
153
164int xen_domctl_set_address_size(int domid, int addr_size);
165
178int xen_domctl_iomem_permission(int domid, uint64_t first_mfn,
179 uint64_t nr_mfns, uint8_t allow_access);
180
197int xen_domctl_memory_mapping(int domid, uint64_t first_gfn, uint64_t first_mfn,
198 uint64_t nr_mfns, uint32_t add_mapping);
199
213int xen_domctl_assign_dt_device(int domid, char *dtdev_path);
214
225int xen_domctl_deassign_dt_device(int domid, char *dtdev_path);
226
246
266int xen_domctl_bind_pt_irq(int domid, uint32_t machine_irq, uint8_t irq_type, uint8_t bus,
267 uint8_t device, uint8_t intx, uint8_t isa_irq, uint16_t spi);
268
283int xen_domctl_unbind_pt_irq(int domid, const struct xen_domctl_pt_irq *irq);
284
300int xen_domctl_max_vcpus(int domid, int max_vcpus);
301
317int xen_domctl_createdomain(int *domid, struct xen_domctl_createdomain *config);
318
329int xen_domctl_cacheflush(int domid, struct xen_domctl_cacheflush *cacheflush);
330
341
353int xen_domctl_getvcpu(int domid, uint32_t vcpu, struct xen_domctl_getvcpuinfo *info);
354
356
357#endif /* __XEN_DOM0_DOMCTL_H__ */
Internal Xen support helpers.
int xen_domctl_get_paging_mempool_size(int domid, uint64_t *size)
Get the paging mempool size for a domain.
int xen_domctl_iomem_permission(int domid, uint64_t first_mfn, uint64_t nr_mfns, uint8_t allow_access)
Allow or deny I/O-memory access for a domain.
int xen_domctl_getdomaininfo(int domid, xen_domctl_getdomaininfo_t *dom_info)
Get summary information for a domain.
int xen_domctl_deassign_dt_device(int domid, char *dtdev_path)
Remove a devicetree-described device assignment from a guest domain.
int xen_domctl_resumedomain(int domid)
Resumes a domain.
int xen_domctl_setvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt)
Set the guest context of a domain vCPU.
int xen_domctl_createdomain(int *domid, struct xen_domctl_createdomain *config)
Create a new domain.
int xen_domctl_scheduler_op(int domid, struct xen_domctl_scheduler_op *sched_op)
Perform a scheduler operation on a specified domain.
int xen_domctl_unpausedomain(int domid)
Unpause a domain in the Xen hypervisor.
int xen_domctl_set_address_size(int domid, int addr_size)
Set the address size used by a domain.
int xen_domctl_max_vcpus(int domid, int max_vcpus)
Set the maximum number of vCPUs available to a domain.
int xen_domctl_getvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt)
Get the guest context of a domain vCPU.
int xen_domctl_getvcpu(int domid, uint32_t vcpu, struct xen_domctl_getvcpuinfo *info)
Query runtime information for one domain vCPU.
int xen_domctl_set_paging_mempool_size(int domid, uint64_t size)
Set the paging mempool size for a domain.
int xen_domctl_destroydomain(int domid)
Destroy a domain.
int xen_domctl_memory_mapping(int domid, uint64_t first_gfn, uint64_t first_mfn, uint64_t nr_mfns, uint32_t add_mapping)
Map or unmap a machine-memory range into a guest frame range.
int xen_domctl_max_mem(int domid, uint64_t max_memkb)
Set the maximum memory assigned to a domain.
int xen_domctl_bind_pt_irq(int domid, uint32_t machine_irq, uint8_t irq_type, uint8_t bus, uint8_t device, uint8_t intx, uint8_t isa_irq, uint16_t spi)
Bind a physical interrupt to a guest domain.
int xen_domctl_cacheflush(int domid, struct xen_domctl_cacheflush *cacheflush)
Clean and invalidate caches for a guest memory range.
int xen_domctl_unbind_pt_irq(int domid, const struct xen_domctl_pt_irq *irq)
Unbind a physical interrupt from a guest domain.
int xen_domctl_assign_dt_device(int domid, char *dtdev_path)
Assign a devicetree-described device to a guest domain.
int xen_domctl_pausedomain(int domid)
Pause a domain in the Xen hypervisor.
Public kernel APIs.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Physical interrupt passthrough descriptor.
Definition domctl.h:230
uint8_t irq_type
Xen passthrough IRQ type.
Definition domctl.h:234
uint8_t isa_irq
ISA IRQ number for ISA passthrough modes.
Definition domctl.h:242
uint8_t bus
PCI bus number for PCI passthrough modes.
Definition domctl.h:236
uint8_t device
PCI device number for PCI passthrough modes.
Definition domctl.h:238
uint8_t intx
PCI INTx line for PCI passthrough modes.
Definition domctl.h:240
uint16_t spi
SPI number used with PT_IRQ_TYPE_SPI.
Definition domctl.h:244
uint32_t machine_irq
Machine IRQ number to bind or unbind.
Definition domctl.h:232