/** @file
Prototype of the DXE VTD Policy Init library.
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _DXE_VTD_POLICY_INIT_LIB_H_
#define _DXE_VTD_POLICY_INIT_LIB_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
extern EFI_GUID gVtdDxeConfigGuid;
/**
This function Load default Vtd DXE policy.
@param[in] ConfigBlockPointer The pointer to add VTD config block
**/
VOID
VtdLoadDefaultDxe (
IN VOID *ConfigBlockPointer
);
/**
This function prints the DXE phase VTD policy.
@param[in] SaPolicy - Instance of SA_POLICY_PROTOCOL
**/
VOID
VtdPrintPolicyDxe (
IN SA_POLICY_PROTOCOL *SaPolicy
);
/**
This function is used to add VTD Config Block.
@param[in] ConfigBlockTableAddress The pointer to add VTD config blocks
@retval EFI_SUCCESS The policy default is initialized.
@retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
**/
EFI_STATUS
EFIAPI
VtdAddConfigBlocksDxe (
IN VOID *ConfigBlockTableAddress
);
/**
Get VTD DXE config block table total size.
@retval Size of VTD DXE config block table
**/
UINT16
EFIAPI
VtdGetConfigBlockTotalSizeDxe (
VOID
);
#endif // _DXE_VTD_POLICY_INIT_LIB_H_