Add Xen domctl API implementation for Zephyr as control domain. Previously Zephyr OS was used as unprivileged Xen domain (Domain-U), but it also can be used as lightweight Xen control domain (Domain-0). To implement such fuctionality additional Xen interfaces are needed. One of them is Xen domain controls (domctls) - it allows to create, configure and manage Xen domains. Also, used it as a possibility to update files copyright and licenses identifiers in touched files. Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
30 lines
630 B
ArmAsm
30 lines
630 B
ArmAsm
/* SPDX-License-Identifier: Apache-2.0 */
|
|
/*
|
|
* Copyright (c) 2021-2023 EPAM Systems
|
|
*/
|
|
|
|
#include <zephyr/toolchain.h>
|
|
#include <zephyr/linker/sections.h>
|
|
#include <zephyr/xen/public/arch-arm.h>
|
|
#include <zephyr/xen/public/xen.h>
|
|
|
|
#define HYPERCALL(hypercall) \
|
|
GTEXT(HYPERVISOR_##hypercall); \
|
|
SECTION_FUNC(TEXT, HYPERVISOR_##hypercall) \
|
|
mov x16, #__HYPERVISOR_##hypercall; \
|
|
hvc XEN_HYPERCALL_TAG; \
|
|
ret;
|
|
|
|
_ASM_FILE_PROLOGUE
|
|
|
|
HYPERCALL(console_io);
|
|
HYPERCALL(grant_table_op);
|
|
HYPERCALL(sched_op);
|
|
HYPERCALL(event_channel_op);
|
|
HYPERCALL(hvm_op);
|
|
HYPERCALL(memory_op);
|
|
|
|
#ifdef CONFIG_XEN_DOM0
|
|
HYPERCALL(domctl);
|
|
#endif
|