blob: 80895a84ef909454bac088f964d9a2c84808da83 [file] [log] [blame]
Dmytro Firsovd9a3efb2021-07-02 11:31:56 +03001/*
2 * Copyright (c) 2021 EPAM Systems
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <arch/arm64/hypercall.h>
8#include <xen/hvm.h>
9#include <xen/public/hvm/hvm_op.h>
10#include <xen/public/hvm/params.h>
11
12#include <kernel.h>
13
14int hvm_set_parameter(int idx, uint64_t value)
15{
16 struct xen_hvm_param xhv;
17
18 xhv.domid = DOMID_SELF;
19 xhv.index = idx;
20 xhv.value = value;
21
22 return HYPERVISOR_hvm_op(HVMOP_set_param, &xhv);
23}
24
25int hvm_get_parameter(int idx, uint64_t *value)
26{
27 int ret = 0;
28 struct xen_hvm_param xhv;
29
30 xhv.domid = DOMID_SELF;
31 xhv.index = idx;
32
33 ret = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
34 if (ret < 0)
35 return ret;
36
37 *value = xhv.value;
38 return ret;
39}