From 74b271bc2a69d0ea9ce02a44f94cf68b50b39ba8 Mon Sep 17 00:00:00 2001 From: Dmytro Firsov Date: Thu, 2 Feb 2023 14:38:23 +0200 Subject: [PATCH] xen: change HVM functions signature to run it for other domains This commit adds possibility to call hypervisor HVM parameter functions for specified domain (instead of only DOMID_SELF). It is needed for configuring domains, that were created from Zephyr control domain. Signed-off-by: Dmytro Firsov --- drivers/serial/uart_hvc_xen.c | 4 ++-- drivers/xen/hvm.c | 8 ++++---- include/zephyr/xen/hvm.h | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/serial/uart_hvc_xen.c b/drivers/serial/uart_hvc_xen.c index 3911fbfae44..fc26e79f13a 100644 --- a/drivers/serial/uart_hvc_xen.c +++ b/drivers/serial/uart_hvc_xen.c @@ -233,14 +233,14 @@ int xen_console_init(const struct device *dev) data->dev = dev; - ret = hvm_get_parameter(HVM_PARAM_CONSOLE_EVTCHN, &data->evtchn); + ret = hvm_get_parameter(HVM_PARAM_CONSOLE_EVTCHN, DOMID_SELF, &data->evtchn); if (ret) { LOG_ERR("%s: failed to get Xen console evtchn, ret = %d\n", __func__, ret); return ret; } - ret = hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, &console_pfn); + ret = hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, DOMID_SELF, &console_pfn); if (ret) { LOG_ERR("%s: failed to get Xen console PFN, ret = %d\n", __func__, ret); diff --git a/drivers/xen/hvm.c b/drivers/xen/hvm.c index 67c254a8bbc..5244d34d433 100644 --- a/drivers/xen/hvm.c +++ b/drivers/xen/hvm.c @@ -11,23 +11,23 @@ #include -int hvm_set_parameter(int idx, uint64_t value) +int hvm_set_parameter(int idx, int domid, uint64_t value) { struct xen_hvm_param xhv; - xhv.domid = DOMID_SELF; + xhv.domid = domid; xhv.index = idx; xhv.value = value; return HYPERVISOR_hvm_op(HVMOP_set_param, &xhv); } -int hvm_get_parameter(int idx, uint64_t *value) +int hvm_get_parameter(int idx, int domid, uint64_t *value) { int ret = 0; struct xen_hvm_param xhv; - xhv.domid = DOMID_SELF; + xhv.domid = domid; xhv.index = idx; ret = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv); diff --git a/include/zephyr/xen/hvm.h b/include/zephyr/xen/hvm.h index 968abf01c1a..1848705975a 100644 --- a/include/zephyr/xen/hvm.h +++ b/include/zephyr/xen/hvm.h @@ -11,7 +11,7 @@ #include -int hvm_set_parameter(int idx, uint64_t value); -int hvm_get_parameter(int idx, uint64_t *value); +int hvm_set_parameter(int idx, int domid, uint64_t value); +int hvm_get_parameter(int idx, int domid, uint64_t *value); #endif /* __XEN_HVM_H__ */