]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/XenBusDxe/GrantTable.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / XenBusDxe / GrantTable.h
1 /** @file
2 Grant Table function declaration.
3
4 Grant Table are used to grant access to certain page of the current
5 VM to an other VM.
6
7 Copyright (C) 2014, Citrix Ltd.
8
9 SPDX-License-Identifier: BSD-2-Clause-Patent
10
11 **/
12
13 #ifndef __GNTTAB_H__
14 #define __GNTTAB_H__
15
16 #include <IndustryStandard/Xen/grant_table.h>
17
18 /**
19 Initialize the Grant Table at the address MmioAddr.
20
21 @param Dev A pointer to XENBUS_DEVICE.
22 @param MmioAddr An address where the grant table can be mapped into
23 the guest.
24 **/
25 VOID
26 XenGrantTableInit (
27 IN XENBUS_DEVICE *Dev
28 );
29
30 /**
31 De-initialize the Grant Table.
32 **/
33 VOID
34 XenGrantTableDeinit (
35 IN XENBUS_DEVICE *Dev
36 );
37
38 /**
39 Grant access to the page Frame to the domain DomainId.
40
41 @param This A pointer to XENBUS_PROTOCOL instance.
42 @param DomainId ID of the domain to grant access to.
43 @param Frame Frame Number of the page to grant access to.
44 @param ReadOnly Provide read-only or read-write access.
45 @param RefPtr Reference number of the grant will be written to this pointer.
46 **/
47 EFI_STATUS
48 EFIAPI
49 XenBusGrantAccess (
50 IN XENBUS_PROTOCOL *This,
51 IN domid_t DomainId,
52 IN UINTN Frame, // MFN
53 IN BOOLEAN ReadOnly,
54 OUT grant_ref_t *RefPtr
55 );
56
57 /**
58 End access to grant Ref, previously return by XenBusGrantAccess.
59
60 @param This A pointer to XENBUS_PROTOCOL instance.
61 @param Ref Reference numeber of a grant previously returned by
62 XenBusGrantAccess.
63 **/
64 EFI_STATUS
65 EFIAPI
66 XenBusGrantEndAccess (
67 IN XENBUS_PROTOCOL *This,
68 IN grant_ref_t Ref
69 );
70
71 #endif /* !__GNTTAB_H__ */