From c8b28293ec010709611824a85b9f3f6a3a6d61dd Mon Sep 17 00:00:00 2001 From: Mikhail Krichanov Date: Thu, 6 Feb 2025 12:18:17 +0300 Subject: [PATCH] MdeModulePkg: Added PcdMaxMemoryType. --- MdeModulePkg/Core/Dxe/DxeUserSpace/DxeUserSpace.inf | 3 +++ MdeModulePkg/Include/Library/MemoryPoolLib.h | 2 +- MdeModulePkg/Library/MemoryPoolLib/MemoryPoolLib.inf | 1 + MdeModulePkg/MdeModulePkg.dec | 6 ++++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Core/Dxe/DxeUserSpace/DxeUserSpace.inf b/MdeModulePkg/Core/Dxe/DxeUserSpace/DxeUserSpace.inf index f008d37436..e359cdd05e 100644 --- a/MdeModulePkg/Core/Dxe/DxeUserSpace/DxeUserSpace.inf +++ b/MdeModulePkg/Core/Dxe/DxeUserSpace/DxeUserSpace.inf @@ -62,5 +62,8 @@ gEfiDevicePathProtocolGuid ## SOMETIMES_CONSUMES gEfiUnicodeCollationProtocolGuid ## SOMETIMES_CONSUMES +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxMemoryType ## CONSUMES + [Depex] TRUE diff --git a/MdeModulePkg/Include/Library/MemoryPoolLib.h b/MdeModulePkg/Include/Library/MemoryPoolLib.h index bf459cdb13..c3ae05ba4c 100644 --- a/MdeModulePkg/Include/Library/MemoryPoolLib.h +++ b/MdeModulePkg/Include/Library/MemoryPoolLib.h @@ -36,7 +36,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define GUARD_HEAP_TYPE_ALL \ (GUARD_HEAP_TYPE_PAGE|GUARD_HEAP_TYPE_POOL|GUARD_HEAP_TYPE_FREED) -#define MAX_MEMORY_TYPE 100 +#define MAX_MEMORY_TYPE FixedPcdGet32 (PcdMaxMemoryType) /** Called to initialize the pool. diff --git a/MdeModulePkg/Library/MemoryPoolLib/MemoryPoolLib.inf b/MdeModulePkg/Library/MemoryPoolLib/MemoryPoolLib.inf index 4943e6242b..b082b3d0d6 100644 --- a/MdeModulePkg/Library/MemoryPoolLib/MemoryPoolLib.inf +++ b/MdeModulePkg/Library/MemoryPoolLib/MemoryPoolLib.inf @@ -38,3 +38,4 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPageType ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPoolType ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxMemoryType ## CONSUMES diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 31c5096eab..b91226d478 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -1162,6 +1162,12 @@ # @Prompt Enable User Space. gEfiMdeModulePkgTokenSpaceGuid.PcdEnableUserSpace|FALSE|BOOLEAN|0x30001061 + ## Sets the size of mPoolHead array in MemoryPoolLib. It must be greater than EfiMaxMemoryType. + # In DxeMain this array manages Pools of different memory types. + # In DxeUserSpace this array manages Pools in different User address spaces. + # @Prompt Max number of memory types (or User address spaces). + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxMemoryType|100|UINT32|0x30001062 + [PcdsFixedAtBuild, PcdsPatchableInModule] ## Dynamic type PCD can be registered callback function for Pcd setting action. # PcdMaxPeiPcdCallBackNumberPerPcdEntry indicates the maximum number of callback function