1 /* SPDX-License-Identifier: Apache-2.0 */
2 /*
3  * Copyright (c) 2023 EPAM Systems
4  *
5  */
6 #ifndef __XEN_DOM0_DOMCTL_H__
7 #define __XEN_DOM0_DOMCTL_H__
8 
9 #include <zephyr/xen/generic.h>
10 #include <zephyr/xen/public/domctl.h>
11 #include <zephyr/xen/public/xen.h>
12 
13 #include <zephyr/kernel.h>
14 
15 int xen_domctl_scheduler_op(int domid, struct xen_domctl_scheduler_op *sched_op);
16 int xen_domctl_pausedomain(int domid);
17 int xen_domctl_unpausedomain(int domid);
18 int xen_domctl_resumedomain(int domid);
19 int xen_domctl_getvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt);
20 int xen_domctl_setvcpucontext(int domid, int vcpu, vcpu_guest_context_t *ctxt);
21 int xen_domctl_getdomaininfo(int domid, xen_domctl_getdomaininfo_t *dom_info);
22 int xen_domctl_set_paging_mempool_size(int domid, uint64_t size_mb);
23 int xen_domctl_max_mem(int domid, uint64_t max_memkb);
24 int xen_domctl_set_address_size(int domid, int addr_size);
25 int xen_domctl_iomem_permission(int domid, uint64_t first_mfn,
26 				uint64_t nr_mfns, uint8_t allow_access);
27 int xen_domctl_memory_mapping(int domid, uint64_t first_gfn, uint64_t first_mfn,
28 			      uint64_t nr_mfns, uint32_t add_mapping);
29 int xen_domctl_assign_dt_device(int domid, char *dtdev_path);
30 int xen_domctl_bind_pt_irq(int domid, uint32_t machine_irq, uint8_t irq_type, uint8_t bus,
31 			   uint8_t device, uint8_t intx, uint8_t isa_irq, uint16_t spi);
32 int xen_domctl_max_vcpus(int domid, int max_vcpus);
33 int xen_domctl_createdomain(int domid, struct xen_domctl_createdomain *config);
34 int xen_domctl_cacheflush(int domid,  struct xen_domctl_cacheflush *cacheflush);
35 int xen_domctl_destroydomain(int domid);
36 
37 #endif /* __XEN_DOM0_DOMCTL_H__ */
38