X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FCore%2FPei%2FPeiMain.h;h=023114750d5b4b054ff88605fb25141a28f20f52;hp=7cdcf30a2a32a176923e904ef9f661f57a53bda0;hb=3a63377f2b683e2159a7b9dea04166987d899022;hpb=b61439a709bb961f2f9dff1d1a4112e30a063f51 diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h index 7cdcf30a2a..023114750d 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.h +++ b/MdeModulePkg/Core/Pei/PeiMain.h @@ -48,6 +48,8 @@ Revision History extern EFI_GUID gEfiPeiCorePrivateGuid; +#define PEI_CORE_INTERNAL_FFS_FILE_DISPATCH_TYPE 0xff + // // Pei Core private data structures // @@ -70,6 +72,27 @@ typedef struct { PEI_PPI_LIST_POINTERS PpiListPtrs[MAX_PPI_DESCRIPTORS]; } PEI_PPI_DATABASE; + +#define PEI_CORE_MAX_FV_SUPPORTED 4 +#define PEI_CORE_MAX_PEIM_PER_FV 32 + +// +// PEI_CORE_FV_HANDE.PeimState +// Do not change these values as there is code doing math to change states. +// Look for Private->Fv[FvCount].PeimState[PeimCount]++; +// +#define PEIM_STATE_NOT_DISPATCHED 0x00 +#define PEIM_STATE_DISPATCHED 0x01 +#define PEIM_STATE_REGISITER_FOR_SHADOW 0x02 +#define PEIM_STATE_DONE 0x03 + +typedef struct { + EFI_FIRMWARE_VOLUME_HEADER *FvHeader; + UINT8 PeimState[PEI_CORE_MAX_PEIM_PER_FV]; + EFI_PEI_FILE_HANDLE FvFileHandles[PEI_CORE_MAX_PEIM_PER_FV]; + BOOLEAN ScanFv; +} PEI_CORE_FV_HANDLE; + typedef struct { UINT8 CurrentPeim; UINT8 CurrentFv; @@ -93,6 +116,15 @@ typedef struct{ EFI_PEI_SERVICES *PS; // Point to ServiceTableShadow PEI_PPI_DATABASE PpiData; PEI_CORE_DISPATCH_DATA DispatchData; + UINTN FvCount; + PEI_CORE_FV_HANDLE Fv[PEI_CORE_MAX_FV_SUPPORTED]; + EFI_PEI_FILE_HANDLE CurrentFvFileHandles[PEI_CORE_MAX_PEIM_PER_FV]; + UINTN AprioriCount; + UINTN CurrentPeimFvCount; + UINTN CurrentPeimCount; + EFI_PEI_FILE_HANDLE CurrentFileHandle; + UINTN AllFvCount; + EFI_PEI_FV_HANDLE AllFv[PEI_CORE_MAX_FV_SUPPORTED]; EFI_PEI_HOB_POINTERS HobList; BOOLEAN SwitchStackSignal; BOOLEAN PeiMemoryInstalled;