/** @file This file provides services for DXE VTD policy default initialization Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include /** This function prints the DXE phase VTD policy. @param[in] SaPolicy - Instance of SA_POLICY_PROTOCOL **/ VOID VtdPrintPolicyDxe ( IN SA_POLICY_PROTOCOL *SaPolicy ) { EFI_STATUS Status; VTD_DXE_CONFIG *VtdDxeConfig; // // Get requisite IP Config Blocks which needs to be used here // Status = GetConfigBlock ((VOID *) SaPolicy, &gVtdDxeConfigGuid, (VOID *)&VtdDxeConfig); ASSERT_EFI_ERROR (Status); DEBUG_CODE_BEGIN (); DEBUG ((DEBUG_INFO, "\n------------------------ Vtd Policy (DXE) print BEGIN -----------------\n")); DEBUG ((DEBUG_INFO, " Revision : %d\n", VtdDxeConfig->Header.Revision)); ASSERT (VtdDxeConfig->Header.Revision == VTD_DXE_CONFIG_REVISION); DEBUG ((DEBUG_INFO, "\n------------------------ Vtd Policy (DXE) print END -----------------\n")); DEBUG_CODE_END (); return; } /** This function Load default Vtd DXE policy. @param[in] ConfigBlockPointer The pointer to add VTD config block **/ VOID VtdLoadDefaultDxe ( IN VOID *ConfigBlockPointer ) { VTD_DXE_CONFIG *VtdDxeConfig; VtdDxeConfig = ConfigBlockPointer; DEBUG ((DEBUG_INFO, "VtdDxeConfig->Header.GuidHob.Name = %g\n", &VtdDxeConfig->Header.GuidHob.Name)); DEBUG ((DEBUG_INFO, "VtdDxeConfig->Header.GuidHob.Header.HobLength = 0x%x\n", VtdDxeConfig->Header.GuidHob.Header.HobLength)); } static COMPONENT_BLOCK_ENTRY mVtdDxeIpBlock = { &gVtdDxeConfigGuid, sizeof (VTD_DXE_CONFIG), VTD_DXE_CONFIG_REVISION, VtdLoadDefaultDxe }; /** Get VTD DXE config block table total size. @retval Size of VTD DXE config block table **/ UINT16 EFIAPI VtdGetConfigBlockTotalSizeDxe ( VOID ) { return mVtdDxeIpBlock.Size; } /** VtdAddConfigBlocks add VTD DXE 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 ) { EFI_STATUS Status; Status = AddComponentConfigBlocks (ConfigBlockTableAddress, &mVtdDxeIpBlock, 1); return Status; }