blob: 0c1e076337e6879b09740788df13fdb3074abf15 [file] [log] [blame]
/** @file
Grant Table function declaration.
Grant Table are used to grant access to certain page of the current
VM to an other VM.
Copyright (C) 2014, Citrix Ltd.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __GNTTAB_H__
#define __GNTTAB_H__
#include <IndustryStandard/Xen/grant_table.h>
/**
Initialize the Grant Table at the address MmioAddr.
@param Dev A pointer to XENBUS_DEVICE.
@param MmioAddr An address where the grant table can be mapped into
the guest.
**/
VOID
XenGrantTableInit (
IN XENBUS_DEVICE *Dev
);
/**
De-initialize the Grant Table.
**/
VOID
XenGrantTableDeinit (
IN XENBUS_DEVICE *Dev
);
/**
Grant access to the page Frame to the domain DomainId.
@param This A pointer to XENBUS_PROTOCOL instance.
@param DomainId ID of the domain to grant access to.
@param Frame Frame Number of the page to grant access to.
@param ReadOnly Provide read-only or read-write access.
@param RefPtr Reference number of the grant will be written to this pointer.
**/
EFI_STATUS
EFIAPI
XenBusGrantAccess (
IN XENBUS_PROTOCOL *This,
IN domid_t DomainId,
IN UINTN Frame, // MFN
IN BOOLEAN ReadOnly,
OUT grant_ref_t *RefPtr
);
/**
End access to grant Ref, previously return by XenBusGrantAccess.
@param This A pointer to XENBUS_PROTOCOL instance.
@param Ref Reference numeber of a grant previously returned by
XenBusGrantAccess.
**/
EFI_STATUS
EFIAPI
XenBusGrantEndAccess (
IN XENBUS_PROTOCOL *This,
IN grant_ref_t Ref
);
#endif /* !__GNTTAB_H__ */