Skip to content

Commit 74b271b

Browse files
firscityfabiobaltieri
authored andcommitted
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 <[email protected]>
1 parent 3581527 commit 74b271b

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

drivers/serial/uart_hvc_xen.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,14 +233,14 @@ int xen_console_init(const struct device *dev)
233233

234234
data->dev = dev;
235235

236-
ret = hvm_get_parameter(HVM_PARAM_CONSOLE_EVTCHN, &data->evtchn);
236+
ret = hvm_get_parameter(HVM_PARAM_CONSOLE_EVTCHN, DOMID_SELF, &data->evtchn);
237237
if (ret) {
238238
LOG_ERR("%s: failed to get Xen console evtchn, ret = %d\n",
239239
__func__, ret);
240240
return ret;
241241
}
242242

243-
ret = hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, &console_pfn);
243+
ret = hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, DOMID_SELF, &console_pfn);
244244
if (ret) {
245245
LOG_ERR("%s: failed to get Xen console PFN, ret = %d\n",
246246
__func__, ret);

drivers/xen/hvm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@
1111

1212
#include <zephyr/kernel.h>
1313

14-
int hvm_set_parameter(int idx, uint64_t value)
14+
int hvm_set_parameter(int idx, int domid, uint64_t value)
1515
{
1616
struct xen_hvm_param xhv;
1717

18-
xhv.domid = DOMID_SELF;
18+
xhv.domid = domid;
1919
xhv.index = idx;
2020
xhv.value = value;
2121

2222
return HYPERVISOR_hvm_op(HVMOP_set_param, &xhv);
2323
}
2424

25-
int hvm_get_parameter(int idx, uint64_t *value)
25+
int hvm_get_parameter(int idx, int domid, uint64_t *value)
2626
{
2727
int ret = 0;
2828
struct xen_hvm_param xhv;
2929

30-
xhv.domid = DOMID_SELF;
30+
xhv.domid = domid;
3131
xhv.index = idx;
3232

3333
ret = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);

include/zephyr/xen/hvm.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#include <zephyr/kernel.h>
1313

14-
int hvm_set_parameter(int idx, uint64_t value);
15-
int hvm_get_parameter(int idx, uint64_t *value);
14+
int hvm_set_parameter(int idx, int domid, uint64_t value);
15+
int hvm_get_parameter(int idx, int domid, uint64_t *value);
1616

1717
#endif /* __XEN_HVM_H__ */

0 commit comments

Comments
 (0)