]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - OvmfPkg/Include/Library/XenHypercallLib.h
OvmfPkg: XenHypercallLib: add empty constructor for ARM & AARCH64
[mirror_edk2.git] / OvmfPkg / Include / Library / XenHypercallLib.h
... / ...
CommitLineData
1/** @file\r
2 Functions declarations to make Xen hypercalls.\r
3\r
4 Copyright (C) 2014, Citrix Ltd.\r
5\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#ifndef __XEN_HYPERCALL_LIB_H__\r
17#define __XEN_HYPERCALL_LIB_H__\r
18\r
19/**\r
20 This function will put the two arguments in the right place (registers) and\r
21 invoke the hypercall identified by HypercallID.\r
22\r
23 @param HypercallID The symbolic ID of the hypercall to be invoked\r
24 @param Arg1 First argument.\r
25 @param Arg2 Second argument.\r
26\r
27 @return Return 0 if success otherwise it return an errno.\r
28**/\r
29INTN\r
30EFIAPI\r
31XenHypercall2 (\r
32 IN UINTN HypercallID,\r
33 IN OUT INTN Arg1,\r
34 IN OUT INTN Arg2\r
35 );\r
36\r
37/**\r
38 Return the value of the HVM parameter Index.\r
39\r
40 @param Index The parameter to get, e.g. HVM_PARAM_STORE_EVTCHN.\r
41\r
42 @return The value of the asked parameter or 0 in case of error.\r
43**/\r
44UINT64\r
45XenHypercallHvmGetParam (\r
46 UINT32 Index\r
47 );\r
48\r
49/**\r
50 Hypercall to do different operation on the memory.\r
51\r
52 @param Operation The operation number, e.g. XENMEM_add_to_physmap.\r
53 @param Arguments The arguments associated to the operation.\r
54\r
55 @return Return the return value from the hypercall, 0 in case of success\r
56 otherwise, an error code.\r
57**/\r
58INTN\r
59XenHypercallMemoryOp (\r
60 IN UINTN Operation,\r
61 IN OUT VOID *Arguments\r
62 );\r
63\r
64/**\r
65 Do an operation on the event channels.\r
66\r
67 @param Operation The operation number, e.g. EVTCHNOP_send.\r
68 @param Arguments The argument associated to the operation.\r
69\r
70 @return Return the return value from the hypercall, 0 in case of success\r
71 otherwise, an error code.\r
72**/\r
73INTN\r
74XenHypercallEventChannelOp (\r
75 IN INTN Operation,\r
76 IN OUT VOID *Arguments\r
77 );\r
78\r
79#endif\r