From eaf539d00fbff0a116b72347338c4439bc8afb05 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Mon, 14 Apr 2008 05:39:13 +0000 Subject: [PATCH] Change MAX_PPI_DESCRIPTORS to FixedPcd PcdPeiCoreMaxPpiSupported, the default value is 64. Maybe other platform requires more than 64 Ppi and set this Pcd value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5061 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/Pei/PeiMain.h | 4 +--- MdeModulePkg/Core/Pei/PeiMain.inf | 1 + MdeModulePkg/Core/Pei/Ppi/Ppi.c | 10 +++++----- MdeModulePkg/MdeModulePkg.dec | 1 + 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h index 74d70ac8ff..ca48a51fbd 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.h +++ b/MdeModulePkg/Core/Pei/PeiMain.h @@ -67,15 +67,13 @@ typedef union { VOID *Raw; } PEI_PPI_LIST_POINTERS; -#define MAX_PPI_DESCRIPTORS 64 - typedef struct { INTN PpiListEnd; INTN NotifyListEnd; INTN DispatchListEnd; INTN LastDispatchedInstall; INTN LastDispatchedNotify; - PEI_PPI_LIST_POINTERS PpiListPtrs[MAX_PPI_DESCRIPTORS]; + PEI_PPI_LIST_POINTERS PpiListPtrs[FixedPcdGet32 (PcdPeiCoreMaxPpiSupported)]; } PEI_PPI_DATABASE; diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf b/MdeModulePkg/Core/Pei/PeiMain.inf index e7b89a6802..486ae1fe05 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.inf +++ b/MdeModulePkg/Core/Pei/PeiMain.inf @@ -85,6 +85,7 @@ [FixedPcd.common] gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeimDispatch gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiCoreEntry gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize diff --git a/MdeModulePkg/Core/Pei/Ppi/Ppi.c b/MdeModulePkg/Core/Pei/Ppi/Ppi.c index 1e400225fb..feae0fbb9f 100644 --- a/MdeModulePkg/Core/Pei/Ppi/Ppi.c +++ b/MdeModulePkg/Core/Pei/Ppi/Ppi.c @@ -46,9 +46,9 @@ Returns: --*/ { if (OldCoreData == NULL) { - PrivateData->PpiData.NotifyListEnd = MAX_PPI_DESCRIPTORS-1; - PrivateData->PpiData.DispatchListEnd = MAX_PPI_DESCRIPTORS-1; - PrivateData->PpiData.LastDispatchedNotify = MAX_PPI_DESCRIPTORS-1; + PrivateData->PpiData.NotifyListEnd = FixedPcdGet32 (PcdPeiCoreMaxPpiSupported)-1; + PrivateData->PpiData.DispatchListEnd = FixedPcdGet32 (PcdPeiCoreMaxPpiSupported)-1; + PrivateData->PpiData.LastDispatchedNotify = FixedPcdGet32 (PcdPeiCoreMaxPpiSupported)-1; } return; @@ -87,7 +87,7 @@ Returns: Fixup = (UINTN)NewHandOffHob - OldCheckingBottom; - for (Index = 0; Index < MAX_PPI_DESCRIPTORS; Index++) { + for (Index = 0; Index < FixedPcdGet32 (PcdPeiCoreMaxPpiSupported); Index++) { if (Index < PrivateData->PpiData.PpiListEnd || Index > PrivateData->PpiData.NotifyListEnd) { PpiPointer = &PrivateData->PpiData.PpiListPtrs[Index]; @@ -564,7 +564,7 @@ Returns: EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH, PrivateData->PpiData.LastDispatchedInstall, PrivateData->PpiData.PpiListEnd, - MAX_PPI_DESCRIPTORS-1, + FixedPcdGet32 (PcdPeiCoreMaxPpiSupported)-1, PrivateData->PpiData.DispatchListEnd ); PrivateData->PpiData.LastDispatchedInstall = TempValue; diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 33866c4a9e..44ab3f987b 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -138,6 +138,7 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6|UINT32|0x00010030 gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv|32|UINT32|0x00010031 gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize|0x20000|UINT32|0x00010032 + gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported|64|UINT32|0x00010033 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0|UINT32|0x30000001 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0|UINT32|0x30000002 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x400|UINT32|0x30000003 -- 2.39.2