\r
#include "FwVol.h"\r
\r
-EFI_PEI_NOTIFY_DESCRIPTOR mNotifyOnFvInfoList[] = {\r
+EFI_PEI_NOTIFY_DESCRIPTOR mNotifyOnFvInfoList[] = {\r
{\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,\r
&gEfiPeiFirmwareVolumeInfoPpiGuid,\r
}\r
};\r
\r
-PEI_FW_VOL_INSTANCE mPeiFfs2FwVol = {\r
+PEI_FW_VOL_INSTANCE mPeiFfs2FwVol = {\r
PEI_FW_VOL_SIGNATURE,\r
FALSE,\r
{\r
}\r
};\r
\r
-PEI_FW_VOL_INSTANCE mPeiFfs3FwVol = {\r
+PEI_FW_VOL_INSTANCE mPeiFfs3FwVol = {\r
PEI_FW_VOL_SIGNATURE,\r
TRUE,\r
{\r
8 MB 6 1 23\r
16 MB 7 1 24\r
**/\r
-UINT8 mFvAttributes[] = {0, 4, 7, 9, 10, 12, 15, 16};\r
-UINT8 mFvAttributes2[] = {17, 18, 19, 20, 21, 22, 23, 24};\r
+UINT8 mFvAttributes[] = { 0, 4, 7, 9, 10, 12, 15, 16 };\r
+UINT8 mFvAttributes2[] = { 17, 18, 19, 20, 21, 22, 23, 24 };\r
\r
/**\r
Convert the FFS File Attributes to FV File Attributes\r
**/\r
EFI_FV_FILE_ATTRIBUTES\r
FfsAttributes2FvFileAttributes (\r
- IN EFI_FFS_FILE_ATTRIBUTES FfsAttributes\r
+ IN EFI_FFS_FILE_ATTRIBUTES FfsAttributes\r
)\r
{\r
- UINT8 DataAlignment;\r
- EFI_FV_FILE_ATTRIBUTES FileAttribute;\r
+ UINT8 DataAlignment;\r
+ EFI_FV_FILE_ATTRIBUTES FileAttribute;\r
\r
- DataAlignment = (UINT8) ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT) >> 3);\r
+ DataAlignment = (UINT8)((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT) >> 3);\r
ASSERT (DataAlignment < 8);\r
\r
if ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT_2) != 0) {\r
- FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes2[DataAlignment];\r
+ FileAttribute = (EFI_FV_FILE_ATTRIBUTES)mFvAttributes2[DataAlignment];\r
} else {\r
- FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes[DataAlignment];\r
+ FileAttribute = (EFI_FV_FILE_ATTRIBUTES)mFvAttributes[DataAlignment];\r
}\r
\r
if ((FfsAttributes & FFS_ATTRIB_FIXED) == FFS_ATTRIB_FIXED) {\r
in the header State field.\r
**/\r
EFI_FFS_FILE_STATE\r
-GetFileState(\r
+GetFileState (\r
IN UINT8 ErasePolarity,\r
IN EFI_FFS_FILE_HEADER *FfsHeader\r
)\r
FileState = FfsHeader->State;\r
\r
if (ErasePolarity != 0) {\r
- FileState = (EFI_FFS_FILE_STATE)~FileState;\r
+ FileState = (EFI_FFS_FILE_STATE) ~FileState;\r
}\r
\r
//\r
IN EFI_FFS_FILE_HEADER *FileHeader\r
)\r
{\r
- EFI_FFS_FILE_HEADER2 TestFileHeader;\r
+ EFI_FFS_FILE_HEADER2 TestFileHeader;\r
\r
if (IS_FFS_FILE2 (FileHeader)) {\r
CopyMem (&TestFileHeader, FileHeader, sizeof (EFI_FFS_FILE_HEADER2));\r
//\r
// Ignore State and File field in FFS header.\r
//\r
- TestFileHeader.State = 0;\r
+ TestFileHeader.State = 0;\r
TestFileHeader.IntegrityCheck.Checksum.File = 0;\r
\r
- return CalculateSum8 ((CONST UINT8 *) &TestFileHeader, sizeof (EFI_FFS_FILE_HEADER2));\r
+ return CalculateSum8 ((CONST UINT8 *)&TestFileHeader, sizeof (EFI_FFS_FILE_HEADER2));\r
} else {\r
CopyMem (&TestFileHeader, FileHeader, sizeof (EFI_FFS_FILE_HEADER));\r
//\r
// Ignore State and File field in FFS header.\r
//\r
- TestFileHeader.State = 0;\r
+ TestFileHeader.State = 0;\r
TestFileHeader.IntegrityCheck.Checksum.File = 0;\r
\r
- return CalculateSum8 ((CONST UINT8 *) &TestFileHeader, sizeof (EFI_FFS_FILE_HEADER));\r
+ return CalculateSum8 ((CONST UINT8 *)&TestFileHeader, sizeof (EFI_FFS_FILE_HEADER));\r
}\r
}\r
\r
\r
@return Pointer to instance of PEI_CORE_FV_HANDLE.\r
**/\r
-PEI_CORE_FV_HANDLE*\r
+PEI_CORE_FV_HANDLE *\r
FileHandleToVolume (\r
- IN EFI_PEI_FILE_HANDLE FileHandle\r
+ IN EFI_PEI_FILE_HANDLE FileHandle\r
)\r
{\r
UINTN Index;\r
//\r
for (Index = 0; Index < PrivateData->FvCount; Index++) {\r
FwVolHeader = PrivateData->Fv[Index].FvHeader;\r
- if (((UINT64) (UINTN) FileHandle > (UINT64) (UINTN) FwVolHeader ) && \\r
- ((UINT64) (UINTN) FileHandle <= ((UINT64) (UINTN) FwVolHeader + FwVolHeader->FvLength - 1))) {\r
+ if (((UINT64)(UINTN)FileHandle > (UINT64)(UINTN)FwVolHeader) && \\r
+ ((UINT64)(UINTN)FileHandle <= ((UINT64)(UINTN)FwVolHeader + FwVolHeader->FvLength - 1)))\r
+ {\r
if (BestIndex == PrivateData->FvCount) {\r
BestIndex = Index;\r
} else {\r
- if ((UINT64) (UINTN) PrivateData->Fv[BestIndex].FvHeader < (UINT64) (UINTN) FwVolHeader) {\r
+ if ((UINT64)(UINTN)PrivateData->Fv[BestIndex].FvHeader < (UINT64)(UINTN)FwVolHeader) {\r
BestIndex = Index;\r
}\r
}\r
**/\r
EFI_STATUS\r
FindFileEx (\r
- IN CONST EFI_PEI_FV_HANDLE FvHandle,\r
- IN CONST EFI_GUID *FileName OPTIONAL,\r
- IN EFI_FV_FILETYPE SearchType,\r
- IN OUT EFI_PEI_FILE_HANDLE *FileHandle,\r
- IN OUT EFI_PEI_FILE_HANDLE *AprioriFile OPTIONAL\r
+ IN CONST EFI_PEI_FV_HANDLE FvHandle,\r
+ IN CONST EFI_GUID *FileName OPTIONAL,\r
+ IN EFI_FV_FILETYPE SearchType,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle,\r
+ IN OUT EFI_PEI_FILE_HANDLE *AprioriFile OPTIONAL\r
)\r
{\r
- EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
- EFI_FIRMWARE_VOLUME_EXT_HEADER *FwVolExtHeader;\r
- EFI_FFS_FILE_HEADER **FileHeader;\r
- EFI_FFS_FILE_HEADER *FfsFileHeader;\r
- UINT32 FileLength;\r
- UINT32 FileOccupiedSize;\r
- UINT32 FileOffset;\r
- UINT64 FvLength;\r
- UINT8 ErasePolarity;\r
- UINT8 FileState;\r
- UINT8 DataCheckSum;\r
- BOOLEAN IsFfs3Fv;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
+ EFI_FIRMWARE_VOLUME_EXT_HEADER *FwVolExtHeader;\r
+ EFI_FFS_FILE_HEADER **FileHeader;\r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
+ UINT32 FileLength;\r
+ UINT32 FileOccupiedSize;\r
+ UINT32 FileOffset;\r
+ UINT64 FvLength;\r
+ UINT8 ErasePolarity;\r
+ UINT8 FileState;\r
+ UINT8 DataCheckSum;\r
+ BOOLEAN IsFfs3Fv;\r
\r
//\r
// Convert the handle of FV to FV header for memory-mapped firmware volume\r
//\r
- FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *) FvHandle;\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)FvHandle;\r
FileHeader = (EFI_FFS_FILE_HEADER **)FileHandle;\r
\r
IsFfs3Fv = CompareGuid (&FwVolHeader->FileSystemGuid, &gEfiFirmwareFileSystem3Guid);\r
//\r
// Searching for files starts on an 8 byte aligned boundary after the end of the Extended Header if it exists.\r
//\r
- FwVolExtHeader = (EFI_FIRMWARE_VOLUME_EXT_HEADER *) ((UINT8 *) FwVolHeader + FwVolHeader->ExtHeaderOffset);\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FwVolExtHeader + FwVolExtHeader->ExtHeaderSize);\r
+ FwVolExtHeader = (EFI_FIRMWARE_VOLUME_EXT_HEADER *)((UINT8 *)FwVolHeader + FwVolHeader->ExtHeaderOffset);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FwVolExtHeader + FwVolExtHeader->ExtHeaderSize);\r
} else {\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *) FwVolHeader + FwVolHeader->HeaderLength);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FwVolHeader + FwVolHeader->HeaderLength);\r
}\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *) ALIGN_POINTER (FfsFileHeader, 8);\r
+\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)ALIGN_POINTER (FfsFileHeader, 8);\r
} else {\r
if (IS_FFS_FILE2 (*FileHeader)) {\r
if (!IsFfs3Fv) {\r
DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &(*FileHeader)->Name));\r
}\r
+\r
FileLength = FFS_FILE2_SIZE (*FileHeader);\r
ASSERT (FileLength > 0x00FFFFFF);\r
} else {\r
FileLength = FFS_FILE_SIZE (*FileHeader);\r
}\r
+\r
//\r
// FileLength is adjusted to FileOccupiedSize as it is 8 byte aligned.\r
//\r
FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)*FileHeader + FileOccupiedSize);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)*FileHeader + FileOccupiedSize);\r
}\r
\r
- FileOffset = (UINT32) ((UINT8 *)FfsFileHeader - (UINT8 *)FwVolHeader);\r
+ FileOffset = (UINT32)((UINT8 *)FfsFileHeader - (UINT8 *)FwVolHeader);\r
ASSERT (FileOffset <= 0xFFFFFFFF);\r
\r
while (FileOffset < (FvLength - sizeof (EFI_FFS_FILE_HEADER))) {\r
//\r
FileState = GetFileState (ErasePolarity, FfsFileHeader);\r
switch (FileState) {\r
+ case EFI_FILE_HEADER_CONSTRUCTION:\r
+ case EFI_FILE_HEADER_INVALID:\r
+ if (IS_FFS_FILE2 (FfsFileHeader)) {\r
+ if (!IsFfs3Fv) {\r
+ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
+ }\r
\r
- case EFI_FILE_HEADER_CONSTRUCTION:\r
- case EFI_FILE_HEADER_INVALID:\r
- if (IS_FFS_FILE2 (FfsFileHeader)) {\r
- if (!IsFfs3Fv) {\r
- DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
+ FileOffset += sizeof (EFI_FFS_FILE_HEADER2);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2));\r
+ } else {\r
+ FileOffset += sizeof (EFI_FFS_FILE_HEADER);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER));\r
}\r
- FileOffset += sizeof (EFI_FFS_FILE_HEADER2);\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2));\r
- } else {\r
- FileOffset += sizeof (EFI_FFS_FILE_HEADER);\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER));\r
- }\r
- break;\r
\r
- case EFI_FILE_DATA_VALID:\r
- case EFI_FILE_MARKED_FOR_UPDATE:\r
- if (CalculateHeaderChecksum (FfsFileHeader) != 0) {\r
- ASSERT (FALSE);\r
- *FileHeader = NULL;\r
- return EFI_NOT_FOUND;\r
- }\r
+ break;\r
\r
- if (IS_FFS_FILE2 (FfsFileHeader)) {\r
- FileLength = FFS_FILE2_SIZE (FfsFileHeader);\r
- ASSERT (FileLength > 0x00FFFFFF);\r
- FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
- if (!IsFfs3Fv) {\r
- DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
- FileOffset += FileOccupiedSize;\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsFileHeader + FileOccupiedSize);\r
- break;\r
+ case EFI_FILE_DATA_VALID:\r
+ case EFI_FILE_MARKED_FOR_UPDATE:\r
+ if (CalculateHeaderChecksum (FfsFileHeader) != 0) {\r
+ ASSERT (FALSE);\r
+ *FileHeader = NULL;\r
+ return EFI_NOT_FOUND;\r
}\r
- } else {\r
- FileLength = FFS_FILE_SIZE (FfsFileHeader);\r
- FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
- }\r
\r
- DataCheckSum = FFS_FIXED_CHECKSUM;\r
- if ((FfsFileHeader->Attributes & FFS_ATTRIB_CHECKSUM) == FFS_ATTRIB_CHECKSUM) {\r
if (IS_FFS_FILE2 (FfsFileHeader)) {\r
- DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2), FileLength - sizeof(EFI_FFS_FILE_HEADER2));\r
+ FileLength = FFS_FILE2_SIZE (FfsFileHeader);\r
+ ASSERT (FileLength > 0x00FFFFFF);\r
+ FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
+ if (!IsFfs3Fv) {\r
+ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
+ FileOffset += FileOccupiedSize;\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
+ break;\r
+ }\r
} else {\r
- DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER), FileLength - sizeof(EFI_FFS_FILE_HEADER));\r
+ FileLength = FFS_FILE_SIZE (FfsFileHeader);\r
+ FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
}\r
- }\r
- if (FfsFileHeader->IntegrityCheck.Checksum.File != DataCheckSum) {\r
- ASSERT (FALSE);\r
- *FileHeader = NULL;\r
- return EFI_NOT_FOUND;\r
- }\r
\r
- if (FileName != NULL) {\r
- if (CompareGuid (&FfsFileHeader->Name, (EFI_GUID*)FileName)) {\r
- *FileHeader = FfsFileHeader;\r
- return EFI_SUCCESS;\r
+ DataCheckSum = FFS_FIXED_CHECKSUM;\r
+ if ((FfsFileHeader->Attributes & FFS_ATTRIB_CHECKSUM) == FFS_ATTRIB_CHECKSUM) {\r
+ if (IS_FFS_FILE2 (FfsFileHeader)) {\r
+ DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2), FileLength - sizeof (EFI_FFS_FILE_HEADER2));\r
+ } else {\r
+ DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER), FileLength - sizeof (EFI_FFS_FILE_HEADER));\r
+ }\r
}\r
- } else if (SearchType == PEI_CORE_INTERNAL_FFS_FILE_DISPATCH_TYPE) {\r
- if ((FfsFileHeader->Type == EFI_FV_FILETYPE_PEIM) ||\r
- (FfsFileHeader->Type == EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER) ||\r
- (FfsFileHeader->Type == EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE)) {\r
\r
- *FileHeader = FfsFileHeader;\r
- return EFI_SUCCESS;\r
- } else if (AprioriFile != NULL) {\r
- if (FfsFileHeader->Type == EFI_FV_FILETYPE_FREEFORM) {\r
- if (CompareGuid (&FfsFileHeader->Name, &gPeiAprioriFileNameGuid)) {\r
- *AprioriFile = (EFI_PEI_FILE_HANDLE)FfsFileHeader;\r
+ if (FfsFileHeader->IntegrityCheck.Checksum.File != DataCheckSum) {\r
+ ASSERT (FALSE);\r
+ *FileHeader = NULL;\r
+ return EFI_NOT_FOUND;\r
+ }\r
+\r
+ if (FileName != NULL) {\r
+ if (CompareGuid (&FfsFileHeader->Name, (EFI_GUID *)FileName)) {\r
+ *FileHeader = FfsFileHeader;\r
+ return EFI_SUCCESS;\r
+ }\r
+ } else if (SearchType == PEI_CORE_INTERNAL_FFS_FILE_DISPATCH_TYPE) {\r
+ if ((FfsFileHeader->Type == EFI_FV_FILETYPE_PEIM) ||\r
+ (FfsFileHeader->Type == EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER) ||\r
+ (FfsFileHeader->Type == EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE))\r
+ {\r
+ *FileHeader = FfsFileHeader;\r
+ return EFI_SUCCESS;\r
+ } else if (AprioriFile != NULL) {\r
+ if (FfsFileHeader->Type == EFI_FV_FILETYPE_FREEFORM) {\r
+ if (CompareGuid (&FfsFileHeader->Name, &gPeiAprioriFileNameGuid)) {\r
+ *AprioriFile = (EFI_PEI_FILE_HANDLE)FfsFileHeader;\r
+ }\r
}\r
}\r
+ } else if (((SearchType == FfsFileHeader->Type) || (SearchType == EFI_FV_FILETYPE_ALL)) &&\r
+ (FfsFileHeader->Type != EFI_FV_FILETYPE_FFS_PAD))\r
+ {\r
+ *FileHeader = FfsFileHeader;\r
+ return EFI_SUCCESS;\r
}\r
- } else if (((SearchType == FfsFileHeader->Type) || (SearchType == EFI_FV_FILETYPE_ALL)) &&\r
- (FfsFileHeader->Type != EFI_FV_FILETYPE_FFS_PAD)) {\r
- *FileHeader = FfsFileHeader;\r
- return EFI_SUCCESS;\r
- }\r
\r
- FileOffset += FileOccupiedSize;\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
- break;\r
+ FileOffset += FileOccupiedSize;\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
+ break;\r
\r
- case EFI_FILE_DELETED:\r
- if (IS_FFS_FILE2 (FfsFileHeader)) {\r
- if (!IsFfs3Fv) {\r
- DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
+ case EFI_FILE_DELETED:\r
+ if (IS_FFS_FILE2 (FfsFileHeader)) {\r
+ if (!IsFfs3Fv) {\r
+ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
+ }\r
+\r
+ FileLength = FFS_FILE2_SIZE (FfsFileHeader);\r
+ ASSERT (FileLength > 0x00FFFFFF);\r
+ } else {\r
+ FileLength = FFS_FILE_SIZE (FfsFileHeader);\r
}\r
- FileLength = FFS_FILE2_SIZE (FfsFileHeader);\r
- ASSERT (FileLength > 0x00FFFFFF);\r
- } else {\r
- FileLength = FFS_FILE_SIZE (FfsFileHeader);\r
- }\r
- FileOccupiedSize = GET_OCCUPIED_SIZE(FileLength, 8);\r
- FileOffset += FileOccupiedSize;\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
- break;\r
\r
- default:\r
- *FileHeader = NULL;\r
- return EFI_NOT_FOUND;\r
+ FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
+ FileOffset += FileOccupiedSize;\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
+ break;\r
+\r
+ default:\r
+ *FileHeader = NULL;\r
+ return EFI_NOT_FOUND;\r
}\r
}\r
\r
**/\r
VOID\r
PeiInitializeFv (\r
- IN PEI_CORE_INSTANCE *PrivateData,\r
- IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData\r
+ IN PEI_CORE_INSTANCE *PrivateData,\r
+ IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_PEI_FIRMWARE_VOLUME_PPI *FvPpi;\r
- EFI_PEI_FV_HANDLE FvHandle;\r
- EFI_FIRMWARE_VOLUME_HEADER *BfvHeader;\r
+ EFI_STATUS Status;\r
+ EFI_PEI_FIRMWARE_VOLUME_PPI *FvPpi;\r
+ EFI_PEI_FV_HANDLE FvHandle;\r
+ EFI_FIRMWARE_VOLUME_HEADER *BfvHeader;\r
\r
//\r
// Install FV_PPI for FFS2 file system.\r
&BfvHeader->FileSystemGuid,\r
0,\r
NULL,\r
- (VOID**)&FvPpi\r
+ (VOID **)&FvPpi\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
//\r
// Update internal PEI_CORE_FV array.\r
//\r
- PrivateData->Fv[PrivateData->FvCount].FvHeader = BfvHeader;\r
- PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
- PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHeader = BfvHeader;\r
+ PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = 0;\r
DEBUG ((\r
DEBUG_INFO,\r
"The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n",\r
- (UINT32) PrivateData->FvCount,\r
- (VOID *) BfvHeader,\r
- (UINT32) BfvHeader->FvLength,\r
+ (UINT32)PrivateData->FvCount,\r
+ (VOID *)BfvHeader,\r
+ (UINT32)BfvHeader->FvLength,\r
FvHandle\r
));\r
- PrivateData->FvCount ++;\r
+ PrivateData->FvCount++;\r
\r
//\r
// Post a call-back for the FvInfoPPI and FvInfo2PPI services to expose\r
//\r
Status = PeiServicesNotifyPpi (mNotifyOnFvInfoList);\r
ASSERT_EFI_ERROR (Status);\r
-\r
}\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
FirmwareVolumeInfoPpiNotifyCallback (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
- IN VOID *Ppi\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
+ IN VOID *Ppi\r
)\r
{\r
- EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI FvInfo2Ppi;\r
- EFI_PEI_FIRMWARE_VOLUME_PPI *FvPpi;\r
- PEI_CORE_INSTANCE *PrivateData;\r
- EFI_STATUS Status;\r
- EFI_PEI_FV_HANDLE FvHandle;\r
- UINTN FvIndex;\r
- EFI_PEI_FILE_HANDLE FileHandle;\r
- VOID *DepexData;\r
- BOOLEAN IsFvInfo2;\r
- UINTN CurFvCount;\r
- VOID *TempPtr;\r
-\r
- Status = EFI_SUCCESS;\r
- PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
+ EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI FvInfo2Ppi;\r
+ EFI_PEI_FIRMWARE_VOLUME_PPI *FvPpi;\r
+ PEI_CORE_INSTANCE *PrivateData;\r
+ EFI_STATUS Status;\r
+ EFI_PEI_FV_HANDLE FvHandle;\r
+ UINTN FvIndex;\r
+ EFI_PEI_FILE_HANDLE FileHandle;\r
+ VOID *DepexData;\r
+ BOOLEAN IsFvInfo2;\r
+ UINTN CurFvCount;\r
+ VOID *TempPtr;\r
+\r
+ Status = EFI_SUCCESS;\r
+ PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
\r
if (CompareGuid (NotifyDescriptor->Guid, &gEfiPeiFirmwareVolumeInfo2PpiGuid)) {\r
//\r
//\r
CopyMem (&FvInfo2Ppi, Ppi, sizeof (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI));\r
FvInfo2Ppi.AuthenticationStatus = 0;\r
- IsFvInfo2 = FALSE;\r
+ IsFvInfo2 = FALSE;\r
}\r
\r
if (CompareGuid (&FvInfo2Ppi.FvFormat, &gEfiFirmwareFileSystem2Guid)) {\r
// ((EFI_FIRMWARE_VOLUME_HEADER *) FvInfo)->FileSystemGuid can be just used for both\r
// firmware file system 2 and 3 format.\r
//\r
- ASSERT (CompareGuid (&(((EFI_FIRMWARE_VOLUME_HEADER *) FvInfo2Ppi.FvInfo)->FileSystemGuid), &gEfiFirmwareFileSystem2Guid));\r
+ ASSERT (CompareGuid (&(((EFI_FIRMWARE_VOLUME_HEADER *)FvInfo2Ppi.FvInfo)->FileSystemGuid), &gEfiFirmwareFileSystem2Guid));\r
}\r
\r
//\r
&FvInfo2Ppi.FvFormat,\r
0,\r
NULL,\r
- (VOID**)&FvPpi\r
+ (VOID **)&FvPpi\r
);\r
if (!EFI_ERROR (Status)) {\r
//\r
//\r
// Check whether the FV has already been processed.\r
//\r
- for (FvIndex = 0; FvIndex < PrivateData->FvCount; FvIndex ++) {\r
+ for (FvIndex = 0; FvIndex < PrivateData->FvCount; FvIndex++) {\r
if (PrivateData->Fv[FvIndex].FvHandle == FvHandle) {\r
if (IsFvInfo2 && (FvInfo2Ppi.AuthenticationStatus != PrivateData->Fv[FvIndex].AuthenticationStatus)) {\r
PrivateData->Fv[FvIndex].AuthenticationStatus = FvInfo2Ppi.AuthenticationStatus;\r
DEBUG ((DEBUG_INFO, "Update AuthenticationStatus of the %dth FV to 0x%x!\n", FvIndex, FvInfo2Ppi.AuthenticationStatus));\r
}\r
+\r
DEBUG ((DEBUG_INFO, "The FV %p has already been processed!\n", FvInfo2Ppi.FvInfo));\r
return EFI_SUCCESS;\r
}\r
PrivateData->Fv,\r
sizeof (PEI_CORE_FV_HANDLE) * PrivateData->MaxFvCount\r
);\r
- PrivateData->Fv = TempPtr;\r
+ PrivateData->Fv = TempPtr;\r
PrivateData->MaxFvCount = PrivateData->MaxFvCount + FV_GROWTH_STEP;\r
}\r
\r
//\r
// Update internal PEI_CORE_FV array.\r
//\r
- PrivateData->Fv[PrivateData->FvCount].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*) FvInfo2Ppi.FvInfo;\r
- PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
- PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)FvInfo2Ppi.FvInfo;\r
+ PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = FvInfo2Ppi.AuthenticationStatus;\r
- CurFvCount = PrivateData->FvCount;\r
+ CurFvCount = PrivateData->FvCount;\r
DEBUG ((\r
DEBUG_INFO,\r
"The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n",\r
- (UINT32) CurFvCount,\r
- (VOID *) FvInfo2Ppi.FvInfo,\r
+ (UINT32)CurFvCount,\r
+ (VOID *)FvInfo2Ppi.FvInfo,\r
FvInfo2Ppi.FvInfoSize,\r
FvHandle\r
));\r
- PrivateData->FvCount ++;\r
+ PrivateData->FvCount++;\r
\r
//\r
// Scan and process the new discovered FV for EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE\r
EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE,\r
FvHandle,\r
&FileHandle\r
- );\r
+ );\r
if (!EFI_ERROR (Status)) {\r
Status = FvPpi->FindSectionByType (\r
FvPpi,\r
EFI_SECTION_PEI_DEPEX,\r
FileHandle,\r
- (VOID**)&DepexData\r
+ (VOID **)&DepexData\r
);\r
if (!EFI_ERROR (Status)) {\r
if (!PeimDispatchReadiness (PeiServices, DepexData)) {\r
**/\r
BOOLEAN\r
VerifyGuidedSectionGuid (\r
- IN EFI_GUID *GuidedSectionGuid,\r
- OUT EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI **GuidedSectionExtraction\r
+ IN EFI_GUID *GuidedSectionGuid,\r
+ OUT EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI **GuidedSectionExtraction\r
)\r
{\r
EFI_PEI_HOB_POINTERS Hob;\r
//\r
Hob.Raw = GetFirstGuidHob (GuidedSectionGuid);\r
if (Hob.Raw != NULL) {\r
- GuidRecorded = (EFI_GUID *) GET_GUID_HOB_DATA (Hob);\r
+ GuidRecorded = (EFI_GUID *)GET_GUID_HOB_DATA (Hob);\r
if (CompareGuid (GuidRecorded, GuidedSectionGuid)) {\r
//\r
// Found the recorded GuidedSectionGuid.\r
//\r
- Status = PeiServicesLocatePpi (GuidedSectionGuid, 0, NULL, (VOID **) &Interface);\r
- if (!EFI_ERROR (Status) && Interface != NULL) {\r
+ Status = PeiServicesLocatePpi (GuidedSectionGuid, 0, NULL, (VOID **)&Interface);\r
+ if (!EFI_ERROR (Status) && (Interface != NULL)) {\r
//\r
// Found the supported Guided Section Extraction Ppi for the Guided Section.\r
//\r
- *GuidedSectionExtraction = (EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *) Interface;\r
+ *GuidedSectionExtraction = (EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *)Interface;\r
return TRUE;\r
}\r
+\r
return FALSE;\r
}\r
}\r
IN BOOLEAN IsFfs3Fv\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 SectionLength;\r
- UINT32 ParsedLength;\r
- EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *GuidSectionPpi;\r
- EFI_PEI_DECOMPRESS_PPI *DecompressPpi;\r
- VOID *PpiOutput;\r
- UINTN PpiOutputSize;\r
- UINTN Index;\r
- UINT32 Authentication;\r
- PEI_CORE_INSTANCE *PrivateData;\r
- EFI_GUID *SectionDefinitionGuid;\r
- BOOLEAN SectionCached;\r
- VOID *TempOutputBuffer;\r
- UINT32 TempAuthenticationStatus;\r
- UINT16 GuidedSectionAttributes;\r
+ EFI_STATUS Status;\r
+ UINT32 SectionLength;\r
+ UINT32 ParsedLength;\r
+ EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *GuidSectionPpi;\r
+ EFI_PEI_DECOMPRESS_PPI *DecompressPpi;\r
+ VOID *PpiOutput;\r
+ UINTN PpiOutputSize;\r
+ UINTN Index;\r
+ UINT32 Authentication;\r
+ PEI_CORE_INSTANCE *PrivateData;\r
+ EFI_GUID *SectionDefinitionGuid;\r
+ BOOLEAN SectionCached;\r
+ VOID *TempOutputBuffer;\r
+ UINT32 TempAuthenticationStatus;\r
+ UINT16 GuidedSectionAttributes;\r
\r
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
*OutputBuffer = NULL;\r
PpiOutput = NULL;\r
PpiOutputSize = 0;\r
while (ParsedLength < SectionSize) {\r
-\r
if (IS_SECTION2 (Section)) {\r
ASSERT (SECTION2_SIZE (Section) > 0x00FFFFFF);\r
if (!IsFfs3Fv) {\r
SectionLength = GET_OCCUPIED_SIZE (SectionLength, 4);\r
ASSERT (SectionLength != 0);\r
ParsedLength += SectionLength;\r
- Section = (EFI_COMMON_SECTION_HEADER *) ((UINT8 *) Section + SectionLength);\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
continue;\r
}\r
}\r
// Got it!\r
//\r
if (IS_SECTION2 (Section)) {\r
- *OutputBuffer = (VOID *)((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER2));\r
+ *OutputBuffer = (VOID *)((UINT8 *)Section + sizeof (EFI_COMMON_SECTION_HEADER2));\r
} else {\r
- *OutputBuffer = (VOID *)((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER));\r
+ *OutputBuffer = (VOID *)((UINT8 *)Section + sizeof (EFI_COMMON_SECTION_HEADER));\r
}\r
+\r
return EFI_SUCCESS;\r
} else {\r
if (IS_SECTION2 (Section)) {\r
} else {\r
SectionLength = SECTION_SIZE (Section);\r
}\r
+\r
//\r
// SectionLength is adjusted it is 4 byte aligned.\r
// Go to the next section\r
SectionLength = GET_OCCUPIED_SIZE (SectionLength, 4);\r
ASSERT (SectionLength != 0);\r
ParsedLength += SectionLength;\r
- Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
continue;\r
}\r
} else if ((Section->Type == EFI_SECTION_GUID_DEFINED) || (Section->Type == EFI_SECTION_COMPRESSION)) {\r
// Check the encapsulated section is extracted into the cache data.\r
//\r
SectionCached = FALSE;\r
- for (Index = 0; Index < PrivateData->CacheSection.AllSectionCount; Index ++) {\r
+ for (Index = 0; Index < PrivateData->CacheSection.AllSectionCount; Index++) {\r
if (Section == PrivateData->CacheSection.Section[Index]) {\r
- SectionCached = TRUE;\r
- PpiOutput = PrivateData->CacheSection.SectionData[Index];\r
- PpiOutputSize = PrivateData->CacheSection.SectionSize[Index];\r
+ SectionCached = TRUE;\r
+ PpiOutput = PrivateData->CacheSection.SectionData[Index];\r
+ PpiOutputSize = PrivateData->CacheSection.SectionSize[Index];\r
Authentication = PrivateData->CacheSection.AuthenticationStatus[Index];\r
//\r
// Search section directly from the cache data.\r
//\r
TempAuthenticationStatus = 0;\r
- Status = ProcessSection (\r
- PeiServices,\r
- SectionType,\r
- SectionInstance,\r
- PpiOutput,\r
- PpiOutputSize,\r
- &TempOutputBuffer,\r
- &TempAuthenticationStatus,\r
- IsFfs3Fv\r
- );\r
+ Status = ProcessSection (\r
+ PeiServices,\r
+ SectionType,\r
+ SectionInstance,\r
+ PpiOutput,\r
+ PpiOutputSize,\r
+ &TempOutputBuffer,\r
+ &TempAuthenticationStatus,\r
+ IsFfs3Fv\r
+ );\r
if (!EFI_ERROR (Status)) {\r
- *OutputBuffer = TempOutputBuffer;\r
+ *OutputBuffer = TempOutputBuffer;\r
*AuthenticationStatus = TempAuthenticationStatus | Authentication;\r
return EFI_SUCCESS;\r
}\r
// If SectionCached is TRUE, the section data has been cached and scanned.\r
//\r
if (!SectionCached) {\r
- Status = EFI_NOT_FOUND;\r
+ Status = EFI_NOT_FOUND;\r
Authentication = 0;\r
if (Section->Type == EFI_SECTION_GUID_DEFINED) {\r
if (IS_SECTION2 (Section)) {\r
SectionDefinitionGuid = &((EFI_GUID_DEFINED_SECTION *)Section)->SectionDefinitionGuid;\r
GuidedSectionAttributes = ((EFI_GUID_DEFINED_SECTION *)Section)->Attributes;\r
}\r
+\r
if (VerifyGuidedSectionGuid (SectionDefinitionGuid, &GuidSectionPpi)) {\r
Status = GuidSectionPpi->ExtractSection (\r
GuidSectionPpi,\r
if ((GuidedSectionAttributes & EFI_GUIDED_SECTION_AUTH_STATUS_VALID) == EFI_GUIDED_SECTION_AUTH_STATUS_VALID) {\r
Authentication |= EFI_AUTH_STATUS_IMAGE_SIGNED | EFI_AUTH_STATUS_NOT_TESTED;\r
}\r
+\r
if (IS_SECTION2 (Section)) {\r
- PpiOutputSize = SECTION2_SIZE (Section) - ((EFI_GUID_DEFINED_SECTION2 *) Section)->DataOffset;\r
- PpiOutput = (UINT8 *) Section + ((EFI_GUID_DEFINED_SECTION2 *) Section)->DataOffset;\r
+ PpiOutputSize = SECTION2_SIZE (Section) - ((EFI_GUID_DEFINED_SECTION2 *)Section)->DataOffset;\r
+ PpiOutput = (UINT8 *)Section + ((EFI_GUID_DEFINED_SECTION2 *)Section)->DataOffset;\r
} else {\r
- PpiOutputSize = SECTION_SIZE (Section) - ((EFI_GUID_DEFINED_SECTION *) Section)->DataOffset;\r
- PpiOutput = (UINT8 *) Section + ((EFI_GUID_DEFINED_SECTION *) Section)->DataOffset;\r
+ PpiOutputSize = SECTION_SIZE (Section) - ((EFI_GUID_DEFINED_SECTION *)Section)->DataOffset;\r
+ PpiOutput = (UINT8 *)Section + ((EFI_GUID_DEFINED_SECTION *)Section)->DataOffset;\r
}\r
}\r
} else if (Section->Type == EFI_SECTION_COMPRESSION) {\r
- Status = PeiServicesLocatePpi (&gEfiPeiDecompressPpiGuid, 0, NULL, (VOID **) &DecompressPpi);\r
+ Status = PeiServicesLocatePpi (&gEfiPeiDecompressPpiGuid, 0, NULL, (VOID **)&DecompressPpi);\r
if (!EFI_ERROR (Status)) {\r
Status = DecompressPpi->Decompress (\r
DecompressPpi,\r
- (CONST EFI_COMPRESSION_SECTION*) Section,\r
+ (CONST EFI_COMPRESSION_SECTION *)Section,\r
&PpiOutput,\r
&PpiOutputSize\r
);\r
// Update cache section data.\r
//\r
if (PrivateData->CacheSection.AllSectionCount < CACHE_SETION_MAX_NUMBER) {\r
- PrivateData->CacheSection.AllSectionCount ++;\r
+ PrivateData->CacheSection.AllSectionCount++;\r
}\r
- PrivateData->CacheSection.Section [PrivateData->CacheSection.SectionIndex] = Section;\r
- PrivateData->CacheSection.SectionData [PrivateData->CacheSection.SectionIndex] = PpiOutput;\r
- PrivateData->CacheSection.SectionSize [PrivateData->CacheSection.SectionIndex] = PpiOutputSize;\r
- PrivateData->CacheSection.AuthenticationStatus [PrivateData->CacheSection.SectionIndex] = Authentication;\r
- PrivateData->CacheSection.SectionIndex = (PrivateData->CacheSection.SectionIndex + 1)%CACHE_SETION_MAX_NUMBER;\r
+\r
+ PrivateData->CacheSection.Section[PrivateData->CacheSection.SectionIndex] = Section;\r
+ PrivateData->CacheSection.SectionData[PrivateData->CacheSection.SectionIndex] = PpiOutput;\r
+ PrivateData->CacheSection.SectionSize[PrivateData->CacheSection.SectionIndex] = PpiOutputSize;\r
+ PrivateData->CacheSection.AuthenticationStatus[PrivateData->CacheSection.SectionIndex] = Authentication;\r
+ PrivateData->CacheSection.SectionIndex = (PrivateData->CacheSection.SectionIndex + 1)%CACHE_SETION_MAX_NUMBER;\r
}\r
\r
TempAuthenticationStatus = 0;\r
- Status = ProcessSection (\r
- PeiServices,\r
- SectionType,\r
- SectionInstance,\r
- PpiOutput,\r
- PpiOutputSize,\r
- &TempOutputBuffer,\r
- &TempAuthenticationStatus,\r
- IsFfs3Fv\r
- );\r
+ Status = ProcessSection (\r
+ PeiServices,\r
+ SectionType,\r
+ SectionInstance,\r
+ PpiOutput,\r
+ PpiOutputSize,\r
+ &TempOutputBuffer,\r
+ &TempAuthenticationStatus,\r
+ IsFfs3Fv\r
+ );\r
if (!EFI_ERROR (Status)) {\r
- *OutputBuffer = TempOutputBuffer;\r
+ *OutputBuffer = TempOutputBuffer;\r
*AuthenticationStatus = TempAuthenticationStatus | Authentication;\r
return EFI_SUCCESS;\r
}\r
} else {\r
SectionLength = SECTION_SIZE (Section);\r
}\r
+\r
//\r
// SectionLength is adjusted it is 4 byte aligned.\r
// Go to the next section\r
SectionLength = GET_OCCUPIED_SIZE (SectionLength, 4);\r
ASSERT (SectionLength != 0);\r
ParsedLength += SectionLength;\r
- Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
}\r
\r
return EFI_NOT_FOUND;\r
}\r
\r
-\r
/**\r
Searches for the next matching section within the specified file.\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindSectionData (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_SECTION_TYPE SectionType,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT VOID **SectionData\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
CoreFvHandle = FileHandleToVolume (FileHandle);\r
if ((CoreFvHandle == NULL) || (CoreFvHandle->FvPpi == NULL)) {\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindSectionData3 (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_SECTION_TYPE SectionType,\r
- IN UINTN SectionInstance,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT VOID **SectionData,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
CoreFvHandle = FileHandleToVolume (FileHandle);\r
if ((CoreFvHandle == NULL) || (CoreFvHandle->FvPpi == NULL)) {\r
}\r
\r
if ((CoreFvHandle->FvPpi->Signature == EFI_PEI_FIRMWARE_VOLUME_PPI_SIGNATURE) &&\r
- (CoreFvHandle->FvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION)) {\r
+ (CoreFvHandle->FvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION))\r
+ {\r
return CoreFvHandle->FvPpi->FindSectionByType2 (CoreFvHandle->FvPpi, SectionType, SectionInstance, FileHandle, SectionData, AuthenticationStatus);\r
}\r
+\r
//\r
// The old FvPpi doesn't support to find section by section instance\r
// and return authentication status, so return EFI_UNSUPPORTED.\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindNextFile (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN UINT8 SearchType,\r
- IN EFI_PEI_FV_HANDLE FvHandle,\r
- IN OUT EFI_PEI_FILE_HANDLE *FileHandle\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN UINT8 SearchType,\r
+ IN EFI_PEI_FV_HANDLE FvHandle,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
CoreFvHandle = FvHandleToCoreHandle (FvHandle);\r
\r
- if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {\r
+ if ((CoreFvHandle == NULL) || (CoreFvHandle->FvPpi == NULL)) {\r
return EFI_NOT_FOUND;\r
}\r
\r
return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi, SearchType, FvHandle, FileHandle);\r
}\r
\r
-\r
/**\r
Search the firmware volumes by index\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindNextVolume (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN UINTN Instance,\r
- IN OUT EFI_PEI_FV_HANDLE *VolumeHandle\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN UINTN Instance,\r
+ IN OUT EFI_PEI_FV_HANDLE *VolumeHandle\r
)\r
{\r
- PEI_CORE_INSTANCE *Private;\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_INSTANCE *Private;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
if (VolumeHandle == NULL) {\r
return EFI_INVALID_PARAMETER;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Find a file within a volume by its name.\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindFileByName (\r
- IN CONST EFI_GUID *FileName,\r
- IN EFI_PEI_FV_HANDLE VolumeHandle,\r
- OUT EFI_PEI_FILE_HANDLE *FileHandle\r
+ IN CONST EFI_GUID *FileName,\r
+ IN EFI_PEI_FV_HANDLE VolumeHandle,\r
+ OUT EFI_PEI_FILE_HANDLE *FileHandle\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
if ((VolumeHandle == NULL) || (FileName == NULL) || (FileHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
OUT EFI_FV_FILE_INFO *FileInfo\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
if ((FileHandle == NULL) || (FileInfo == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
OUT EFI_FV_FILE_INFO2 *FileInfo\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
if ((FileHandle == NULL) || (FileInfo == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if ((CoreFvHandle->FvPpi->Signature == EFI_PEI_FIRMWARE_VOLUME_PPI_SIGNATURE) &&\r
- (CoreFvHandle->FvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION)) {\r
+ (CoreFvHandle->FvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION))\r
+ {\r
return CoreFvHandle->FvPpi->GetFileInfo2 (CoreFvHandle->FvPpi, FileHandle, FileInfo);\r
}\r
+\r
//\r
// The old FvPpi doesn't support to return file info with authentication status,\r
// so return EFI_UNSUPPORTED.\r
OUT EFI_FV_INFO *VolumeInfo\r
)\r
{\r
- PEI_CORE_FV_HANDLE *CoreHandle;\r
+ PEI_CORE_FV_HANDLE *CoreHandle;\r
\r
if ((VolumeInfo == NULL) || (VolumeHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
**/\r
BOOLEAN\r
GetFvUsedSize (\r
- IN EFI_FIRMWARE_VOLUME_HEADER *FvHeader,\r
- OUT UINT32 *FvUsedSize,\r
- OUT UINT8 *EraseByte\r
+ IN EFI_FIRMWARE_VOLUME_HEADER *FvHeader,\r
+ OUT UINT32 *FvUsedSize,\r
+ OUT UINT8 *EraseByte\r
)\r
{\r
UINT16 ExtHeaderOffset;\r
\r
ExtHeaderOffset = ReadUnaligned16 (&FvHeader->ExtHeaderOffset);\r
if (ExtHeaderOffset != 0) {\r
- ExtHeader = (EFI_FIRMWARE_VOLUME_EXT_HEADER *) ((UINT8 *) FvHeader + ExtHeaderOffset);\r
- ExtEntryList = (EFI_FIRMWARE_VOLUME_EXT_ENTRY *) (ExtHeader + 1);\r
- while ((UINTN) ExtEntryList < ((UINTN) ExtHeader + ReadUnaligned32 (&ExtHeader->ExtHeaderSize))) {\r
+ ExtHeader = (EFI_FIRMWARE_VOLUME_EXT_HEADER *)((UINT8 *)FvHeader + ExtHeaderOffset);\r
+ ExtEntryList = (EFI_FIRMWARE_VOLUME_EXT_ENTRY *)(ExtHeader + 1);\r
+ while ((UINTN)ExtEntryList < ((UINTN)ExtHeader + ReadUnaligned32 (&ExtHeader->ExtHeaderSize))) {\r
if (ReadUnaligned16 (&ExtEntryList->ExtEntryType) == EFI_FV_EXT_TYPE_USED_SIZE_TYPE) {\r
//\r
// USED_SIZE FV_EXT_TYPE entry is found.\r
//\r
- ExtEntryUsedSize = (EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE *) ExtEntryList;\r
- *FvUsedSize = ReadUnaligned32 (&ExtEntryUsedSize->UsedSize);\r
+ ExtEntryUsedSize = (EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE *)ExtEntryList;\r
+ *FvUsedSize = ReadUnaligned32 (&ExtEntryUsedSize->UsedSize);\r
if ((ReadUnaligned32 (&FvHeader->Attributes) & EFI_FVB2_ERASE_POLARITY) != 0) {\r
*EraseByte = 0xFF;\r
} else {\r
*EraseByte = 0;\r
}\r
+\r
DEBUG ((\r
DEBUG_INFO,\r
"FV at 0x%x has 0x%x used size, and erase byte is 0x%02x\n",\r
));\r
return TRUE;\r
}\r
+\r
ExtEntryList = (EFI_FIRMWARE_VOLUME_EXT_ENTRY *)\r
- ((UINT8 *) ExtEntryList + ReadUnaligned16 (&ExtEntryList->ExtEntrySize));\r
+ ((UINT8 *)ExtEntryList + ReadUnaligned16 (&ExtEntryList->ExtEntrySize));\r
}\r
}\r
\r
**/\r
EFI_STATUS\r
ProcessFvFile (\r
- IN PEI_CORE_INSTANCE *PrivateData,\r
- IN PEI_CORE_FV_HANDLE *ParentFvCoreHandle,\r
- IN EFI_PEI_FILE_HANDLE ParentFvFileHandle\r
+ IN PEI_CORE_INSTANCE *PrivateData,\r
+ IN PEI_CORE_FV_HANDLE *ParentFvCoreHandle,\r
+ IN EFI_PEI_FILE_HANDLE ParentFvFileHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FV_INFO ParentFvImageInfo;\r
- UINT32 FvAlignment;\r
- VOID *NewFvBuffer;\r
- EFI_PEI_HOB_POINTERS HobPtr;\r
- EFI_PEI_FIRMWARE_VOLUME_PPI *ParentFvPpi;\r
- EFI_PEI_FV_HANDLE ParentFvHandle;\r
- EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
- EFI_FV_FILE_INFO FileInfo;\r
- UINT64 FvLength;\r
- UINT32 AuthenticationStatus;\r
- UINT32 FvUsedSize;\r
- UINT8 EraseByte;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ EFI_FV_INFO ParentFvImageInfo;\r
+ UINT32 FvAlignment;\r
+ VOID *NewFvBuffer;\r
+ EFI_PEI_HOB_POINTERS HobPtr;\r
+ EFI_PEI_FIRMWARE_VOLUME_PPI *ParentFvPpi;\r
+ EFI_PEI_FV_HANDLE ParentFvHandle;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
+ EFI_FV_FILE_INFO FileInfo;\r
+ UINT64 FvLength;\r
+ UINT32 AuthenticationStatus;\r
+ UINT32 FvUsedSize;\r
+ UINT8 EraseByte;\r
+ UINTN Index;\r
\r
//\r
// Check if this EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE file has already\r
DEBUG ((DEBUG_INFO, "FV file %p has been dispatched!\r\n", ParentFvFileHandle));\r
return EFI_SUCCESS;\r
}\r
+\r
HobPtr.Raw = GET_NEXT_HOB (HobPtr);\r
}\r
\r
do {\r
AuthenticationStatus = 0;\r
if ((ParentFvPpi->Signature == EFI_PEI_FIRMWARE_VOLUME_PPI_SIGNATURE) &&\r
- (ParentFvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION)) {\r
+ (ParentFvPpi->Revision == EFI_PEI_FIRMWARE_VOLUME_PPI_REVISION))\r
+ {\r
Status = ParentFvPpi->FindSectionByType2 (\r
ParentFvPpi,\r
EFI_SECTION_FIRMWARE_VOLUME_IMAGE,\r
if (Index > 0) {\r
break;\r
}\r
+\r
Status = ParentFvPpi->FindSectionByType (\r
ParentFvPpi,\r
EFI_SECTION_FIRMWARE_VOLUME_IMAGE,\r
(VOID **)&FvHeader\r
);\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
//\r
// Check FvImage alignment.\r
//\r
- if ((UINTN) FvHeader % FvAlignment != 0) {\r
+ if ((UINTN)FvHeader % FvAlignment != 0) {\r
FvLength = ReadUnaligned64 (&FvHeader->FvLength);\r
- NewFvBuffer = AllocateAlignedPages (EFI_SIZE_TO_PAGES ((UINT32) FvLength), FvAlignment);\r
+ NewFvBuffer = AllocateAlignedPages (EFI_SIZE_TO_PAGES ((UINT32)FvLength), FvAlignment);\r
if (NewFvBuffer == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
break;\r
}\r
+\r
if (GetFvUsedSize (FvHeader, &FvUsedSize, &EraseByte)) {\r
//\r
// Copy the used bytes and fill the rest with the erase value.\r
//\r
- CopyMem (NewFvBuffer, FvHeader, (UINTN) FvUsedSize);\r
+ CopyMem (NewFvBuffer, FvHeader, (UINTN)FvUsedSize);\r
SetMem (\r
- (UINT8 *) NewFvBuffer + FvUsedSize,\r
- (UINTN) (FvLength - FvUsedSize),\r
+ (UINT8 *)NewFvBuffer + FvUsedSize,\r
+ (UINTN)(FvLength - FvUsedSize),\r
EraseByte\r
);\r
} else {\r
- CopyMem (NewFvBuffer, FvHeader, (UINTN) FvLength);\r
+ CopyMem (NewFvBuffer, FvHeader, (UINTN)FvLength);\r
}\r
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*) NewFvBuffer;\r
+\r
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)NewFvBuffer;\r
}\r
}\r
\r
// NOTE: FvInfo2 must be installed before FvInfo so that recursive processing of encapsulated\r
// FVs inherit the proper AuthenticationStatus.\r
//\r
- PeiServicesInstallFvInfo2Ppi(\r
+ PeiServicesInstallFvInfo2Ppi (\r
&FvHeader->FileSystemGuid,\r
- (VOID**)FvHeader,\r
+ (VOID **)FvHeader,\r
(UINT32)FvHeader->FvLength,\r
&ParentFvImageInfo.FvName,\r
&FileInfo.FileName,\r
\r
PeiServicesInstallFvInfoPpi (\r
&FvHeader->FileSystemGuid,\r
- (VOID**) FvHeader,\r
- (UINT32) FvHeader->FvLength,\r
+ (VOID **)FvHeader,\r
+ (UINT32)FvHeader->FvLength,\r
&ParentFvImageInfo.FvName,\r
&FileInfo.FileName\r
);\r
// Expose the extracted FvImage to the FV HOB consumer phase, i.e. DXE phase\r
//\r
BuildFvHob (\r
- (EFI_PHYSICAL_ADDRESS) (UINTN) FvHeader,\r
+ (EFI_PHYSICAL_ADDRESS)(UINTN)FvHeader,\r
FvHeader->FvLength\r
);\r
\r
// encapsulated file again.\r
//\r
BuildFv2Hob (\r
- (EFI_PHYSICAL_ADDRESS) (UINTN) FvHeader,\r
+ (EFI_PHYSICAL_ADDRESS)(UINTN)FvHeader,\r
FvHeader->FvLength,\r
&ParentFvImageInfo.FvName,\r
&FileInfo.FileName\r
// Build FV3 HOB with authentication status to be propagated to DXE.\r
//\r
BuildFv3Hob (\r
- (EFI_PHYSICAL_ADDRESS) (UINTN) FvHeader,\r
+ (EFI_PHYSICAL_ADDRESS)(UINTN)FvHeader,\r
FvHeader->FvLength,\r
AuthenticationStatus,\r
TRUE,\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiProcessVolume (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize,\r
- OUT EFI_PEI_FV_HANDLE *FvHandle\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize,\r
+ OUT EFI_PEI_FV_HANDLE *FvHandle\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
ASSERT (FvHandle != NULL);\r
\r
// The build-in EFI_PEI_FIRMWARE_VOLUME_PPI for FFS2/FFS3 support memory-mapped\r
// FV image and the handle is pointed to FV image's buffer.\r
//\r
- *FvHandle = (EFI_PEI_FV_HANDLE) Buffer;\r
+ *FvHandle = (EFI_PEI_FV_HANDLE)Buffer;\r
\r
//\r
// Do verify for given FV buffer.\r
//\r
- Status = VerifyFv ((EFI_FIRMWARE_VOLUME_HEADER*) Buffer);\r
- if (EFI_ERROR(Status)) {\r
+ Status = VerifyFv ((EFI_FIRMWARE_VOLUME_HEADER *)Buffer);\r
+ if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "Fail to verify FV which address is 0x%11p", Buffer));\r
return EFI_VOLUME_CORRUPTED;\r
}\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiFindFileByType (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_FV_FILETYPE SearchType,\r
- IN EFI_PEI_FV_HANDLE FvHandle,\r
- IN OUT EFI_PEI_FILE_HANDLE *FileHandle\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_FV_FILETYPE SearchType,\r
+ IN EFI_PEI_FV_HANDLE FvHandle,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle\r
)\r
{\r
return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiFindFileByName (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN CONST EFI_GUID *FileName,\r
- IN EFI_PEI_FV_HANDLE *FvHandle,\r
- OUT EFI_PEI_FILE_HANDLE *FileHandle\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN CONST EFI_GUID *FileName,\r
+ IN EFI_PEI_FV_HANDLE *FvHandle,\r
+ OUT EFI_PEI_FILE_HANDLE *FileHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- PEI_CORE_INSTANCE *PrivateData;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ PEI_CORE_INSTANCE *PrivateData;\r
+ UINTN Index;\r
\r
if ((FvHandle == NULL) || (FileName == NULL) || (FileHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
//\r
Status = EFI_NOT_FOUND;\r
\r
- PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer());\r
- for (Index = 0; Index < PrivateData->FvCount; Index ++) {\r
+ PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer ());\r
+ for (Index = 0; Index < PrivateData->FvCount; Index++) {\r
//\r
// Only search the FV which is associated with a EFI_PEI_FIRMWARE_VOLUME_PPI instance.\r
//\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiGetFileInfo (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT EFI_FV_FILE_INFO *FileInfo\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT EFI_FV_FILE_INFO *FileInfo\r
)\r
{\r
- UINT8 FileState;\r
- UINT8 ErasePolarity;\r
- EFI_FFS_FILE_HEADER *FileHeader;\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
- PEI_FW_VOL_INSTANCE *FwVolInstance;\r
+ UINT8 FileState;\r
+ UINT8 ErasePolarity;\r
+ EFI_FFS_FILE_HEADER *FileHeader;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ PEI_FW_VOL_INSTANCE *FwVolInstance;\r
\r
if ((FileHandle == NULL) || (FileInfo == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
//\r
// Get FileState which is the highest bit of the State\r
//\r
- FileState = GetFileState (ErasePolarity, (EFI_FFS_FILE_HEADER*)FileHandle);\r
+ FileState = GetFileState (ErasePolarity, (EFI_FFS_FILE_HEADER *)FileHandle);\r
\r
switch (FileState) {\r
case EFI_FILE_DATA_VALID:\r
break;\r
default:\r
return EFI_INVALID_PARAMETER;\r
- }\r
+ }\r
\r
FileHeader = (EFI_FFS_FILE_HEADER *)FileHandle;\r
if (IS_FFS_FILE2 (FileHeader)) {\r
DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FileHeader->Name));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
FileInfo->BufferSize = FFS_FILE2_SIZE (FileHeader) - sizeof (EFI_FFS_FILE_HEADER2);\r
- FileInfo->Buffer = (UINT8 *) FileHeader + sizeof (EFI_FFS_FILE_HEADER2);\r
+ FileInfo->Buffer = (UINT8 *)FileHeader + sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
FileInfo->BufferSize = FFS_FILE_SIZE (FileHeader) - sizeof (EFI_FFS_FILE_HEADER);\r
- FileInfo->Buffer = (UINT8 *) FileHeader + sizeof (EFI_FFS_FILE_HEADER);\r
+ FileInfo->Buffer = (UINT8 *)FileHeader + sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- CopyMem (&FileInfo->FileName, &FileHeader->Name, sizeof(EFI_GUID));\r
- FileInfo->FileType = FileHeader->Type;\r
+\r
+ CopyMem (&FileInfo->FileName, &FileHeader->Name, sizeof (EFI_GUID));\r
+ FileInfo->FileType = FileHeader->Type;\r
FileInfo->FileAttributes = FfsAttributes2FvFileAttributes (FileHeader->Attributes);\r
if ((CoreFvHandle->FvHeader->Attributes & EFI_FVB2_MEMORY_MAPPED) == EFI_FVB2_MEMORY_MAPPED) {\r
FileInfo->FileAttributes |= EFI_FV_FILE_ATTRIB_MEMORY_MAPPED;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiGetFileInfo2 (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT EFI_FV_FILE_INFO2 *FileInfo\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT EFI_FV_FILE_INFO2 *FileInfo\r
)\r
{\r
- EFI_STATUS Status;\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ EFI_STATUS Status;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
\r
if ((FileHandle == NULL) || (FileInfo == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = PeiFfsFvPpiGetFileInfo (This, FileHandle, (EFI_FV_FILE_INFO *) FileInfo);\r
+ Status = PeiFfsFvPpiGetFileInfo (This, FileHandle, (EFI_FV_FILE_INFO *)FileInfo);\r
if (!EFI_ERROR (Status)) {\r
FileInfo->AuthenticationStatus = CoreFvHandle->AuthenticationStatus;\r
}\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiGetVolumeInfo (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_PEI_FV_HANDLE FvHandle,\r
- OUT EFI_FV_INFO *VolumeInfo\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_PEI_FV_HANDLE FvHandle,\r
+ OUT EFI_FV_INFO *VolumeInfo\r
)\r
{\r
- EFI_FIRMWARE_VOLUME_HEADER FwVolHeader;\r
- EFI_FIRMWARE_VOLUME_EXT_HEADER *FwVolExHeaderInfo;\r
+ EFI_FIRMWARE_VOLUME_HEADER FwVolHeader;\r
+ EFI_FIRMWARE_VOLUME_EXT_HEADER *FwVolExHeaderInfo;\r
\r
if ((VolumeInfo == NULL) || (FvHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
ZeroMem (VolumeInfo, sizeof (EFI_FV_INFO));\r
- VolumeInfo->FvAttributes = FwVolHeader.Attributes;\r
- VolumeInfo->FvStart = (VOID *) FvHandle;\r
- VolumeInfo->FvSize = FwVolHeader.FvLength;\r
- CopyMem (&VolumeInfo->FvFormat, &FwVolHeader.FileSystemGuid, sizeof(EFI_GUID));\r
+ VolumeInfo->FvAttributes = FwVolHeader.Attributes;\r
+ VolumeInfo->FvStart = (VOID *)FvHandle;\r
+ VolumeInfo->FvSize = FwVolHeader.FvLength;\r
+ CopyMem (&VolumeInfo->FvFormat, &FwVolHeader.FileSystemGuid, sizeof (EFI_GUID));\r
\r
if (FwVolHeader.ExtHeaderOffset != 0) {\r
- FwVolExHeaderInfo = (EFI_FIRMWARE_VOLUME_EXT_HEADER*)(((UINT8 *)FvHandle) + FwVolHeader.ExtHeaderOffset);\r
- CopyMem (&VolumeInfo->FvName, &FwVolExHeaderInfo->FvName, sizeof(EFI_GUID));\r
+ FwVolExHeaderInfo = (EFI_FIRMWARE_VOLUME_EXT_HEADER *)(((UINT8 *)FvHandle) + FwVolHeader.ExtHeaderOffset);\r
+ CopyMem (&VolumeInfo->FvName, &FwVolExHeaderInfo->FvName, sizeof (EFI_GUID));\r
}\r
\r
return EFI_SUCCESS;\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiFindSectionByType (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_SECTION_TYPE SearchType,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT VOID **SectionData\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_SECTION_TYPE SearchType,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData\r
)\r
{\r
- UINT32 AuthenticationStatus;\r
+ UINT32 AuthenticationStatus;\r
+\r
return PeiFfsFvPpiFindSectionByType2 (This, SearchType, 0, FileHandle, SectionData, &AuthenticationStatus);\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFvPpiFindSectionByType2 (\r
- IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
- IN EFI_SECTION_TYPE SearchType,\r
- IN UINTN SearchInstance,\r
- IN EFI_PEI_FILE_HANDLE FileHandle,\r
- OUT VOID **SectionData,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,\r
+ IN EFI_SECTION_TYPE SearchType,\r
+ IN UINTN SearchInstance,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FFS_FILE_HEADER *FfsFileHeader;\r
- UINT32 FileSize;\r
- EFI_COMMON_SECTION_HEADER *Section;\r
- PEI_FW_VOL_INSTANCE *FwVolInstance;\r
- PEI_CORE_FV_HANDLE *CoreFvHandle;\r
- UINTN Instance;\r
- UINT32 ExtractedAuthenticationStatus;\r
+ EFI_STATUS Status;\r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
+ UINT32 FileSize;\r
+ EFI_COMMON_SECTION_HEADER *Section;\r
+ PEI_FW_VOL_INSTANCE *FwVolInstance;\r
+ PEI_CORE_FV_HANDLE *CoreFvHandle;\r
+ UINTN Instance;\r
+ UINT32 ExtractedAuthenticationStatus;\r
\r
if (SectionData == NULL) {\r
return EFI_NOT_FOUND;\r
DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name));\r
return EFI_NOT_FOUND;\r
}\r
- Section = (EFI_COMMON_SECTION_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2));\r
+\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2));\r
FileSize = FFS_FILE2_SIZE (FfsFileHeader) - sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
- Section = (EFI_COMMON_SECTION_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER));\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER));\r
FileSize = FFS_FILE_SIZE (FfsFileHeader) - sizeof (EFI_FFS_FILE_HEADER);\r
}\r
\r
- Instance = SearchInstance + 1;\r
+ Instance = SearchInstance + 1;\r
ExtractedAuthenticationStatus = 0;\r
- Status = ProcessSection (\r
- GetPeiServicesTablePointer (),\r
- SearchType,\r
- &Instance,\r
- Section,\r
- FileSize,\r
- SectionData,\r
- &ExtractedAuthenticationStatus,\r
- FwVolInstance->IsFfs3Fv\r
- );\r
+ Status = ProcessSection (\r
+ GetPeiServicesTablePointer (),\r
+ SearchType,\r
+ &Instance,\r
+ Section,\r
+ FileSize,\r
+ SectionData,\r
+ &ExtractedAuthenticationStatus,\r
+ FwVolInstance->IsFfs3Fv\r
+ );\r
if (!EFI_ERROR (Status)) {\r
//\r
// Inherit the authentication status.\r
//\r
*AuthenticationStatus = ExtractedAuthenticationStatus | CoreFvHandle->AuthenticationStatus;\r
}\r
+\r
return Status;\r
}\r
\r
IN EFI_PEI_FV_HANDLE FvHandle\r
)\r
{\r
- UINTN Index;\r
- PEI_CORE_INSTANCE *PrivateData;\r
+ UINTN Index;\r
+ PEI_CORE_INSTANCE *PrivateData;\r
\r
- PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer());\r
- for (Index = 0; Index < PrivateData->FvCount; Index ++) {\r
+ PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer ());\r
+ for (Index = 0; Index < PrivateData->FvCount; Index++) {\r
if (FvHandle == PrivateData->Fv[Index].FvHandle) {\r
return &PrivateData->Fv[Index];\r
}\r
**/\r
VOID\r
PeiReinitializeFv (\r
- IN PEI_CORE_INSTANCE *PrivateData\r
+ IN PEI_CORE_INSTANCE *PrivateData\r
)\r
{\r
VOID *OldFfsFvPpi;\r
// in flash.\r
//\r
Status = PeiServicesLocatePpi (\r
- &gEfiFirmwareFileSystem2Guid,\r
- 0,\r
- &OldDescriptor,\r
- &OldFfsFvPpi\r
- );\r
+ &gEfiFirmwareFileSystem2Guid,\r
+ 0,\r
+ &OldDescriptor,\r
+ &OldFfsFvPpi\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
\r
//\r
//\r
// Fixup all FvPpi pointers for the implementation in flash to permanent memory.\r
//\r
- for (Index = 0; Index < PrivateData->FvCount; Index ++) {\r
+ for (Index = 0; Index < PrivateData->FvCount; Index++) {\r
if (PrivateData->Fv[Index].FvPpi == OldFfsFvPpi) {\r
PrivateData->Fv[Index].FvPpi = &mPeiFfs2FwVol.Fv;\r
}\r
//\r
// Fixup all FvPpi pointers for the implementation in flash to permanent memory.\r
//\r
- for (Index = 0; Index < PrivateData->FvCount; Index ++) {\r
+ for (Index = 0; Index < PrivateData->FvCount; Index++) {\r
if (PrivateData->Fv[Index].FvPpi == OldFfsFvPpi) {\r
PrivateData->Fv[Index].FvPpi = &mPeiFfs3FwVol.Fv;\r
}\r
IN EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI *FvInfo2Ppi\r
)\r
{\r
- PEI_CORE_UNKNOW_FORMAT_FV_INFO *NewUnknownFv;\r
- VOID *TempPtr;\r
+ PEI_CORE_UNKNOW_FORMAT_FV_INFO *NewUnknownFv;\r
+ VOID *TempPtr;\r
\r
if (PrivateData->UnknownFvInfoCount >= PrivateData->MaxUnknownFvInfoCount) {\r
//\r
PrivateData->UnknownFvInfo,\r
sizeof (PEI_CORE_UNKNOW_FORMAT_FV_INFO) * PrivateData->MaxUnknownFvInfoCount\r
);\r
- PrivateData->UnknownFvInfo = TempPtr;\r
+ PrivateData->UnknownFvInfo = TempPtr;\r
PrivateData->MaxUnknownFvInfoCount = PrivateData->MaxUnknownFvInfoCount + FV_GROWTH_STEP;\r
}\r
\r
NewUnknownFv = &PrivateData->UnknownFvInfo[PrivateData->UnknownFvInfoCount];\r
- PrivateData->UnknownFvInfoCount ++;\r
+ PrivateData->UnknownFvInfoCount++;\r
\r
CopyGuid (&NewUnknownFv->FvFormat, &FvInfo2Ppi->FvFormat);\r
- NewUnknownFv->FvInfo = FvInfo2Ppi->FvInfo;\r
- NewUnknownFv->FvInfoSize = FvInfo2Ppi->FvInfoSize;\r
- NewUnknownFv->AuthenticationStatus = FvInfo2Ppi->AuthenticationStatus;\r
+ NewUnknownFv->FvInfo = FvInfo2Ppi->FvInfo;\r
+ NewUnknownFv->FvInfoSize = FvInfo2Ppi->FvInfoSize;\r
+ NewUnknownFv->AuthenticationStatus = FvInfo2Ppi->AuthenticationStatus;\r
NewUnknownFv->NotifyDescriptor.Flags = (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST);\r
NewUnknownFv->NotifyDescriptor.Guid = &NewUnknownFv->FvFormat;\r
NewUnknownFv->NotifyDescriptor.Notify = ThirdPartyFvPpiNotifyCallback;\r
**/\r
EFI_STATUS\r
FindUnknownFormatFvInfo (\r
- IN PEI_CORE_INSTANCE *PrivateData,\r
- IN EFI_GUID *Format,\r
- OUT VOID **FvInfo,\r
- OUT UINT32 *FvInfoSize,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN PEI_CORE_INSTANCE *PrivateData,\r
+ IN EFI_GUID *Format,\r
+ OUT VOID **FvInfo,\r
+ OUT UINT32 *FvInfoSize,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
{\r
- UINTN Index;\r
- UINTN Index2;\r
+ UINTN Index;\r
+ UINTN Index2;\r
\r
Index = 0;\r
- for (; Index < PrivateData->UnknownFvInfoCount; Index ++) {\r
+ for ( ; Index < PrivateData->UnknownFvInfoCount; Index++) {\r
if (CompareGuid (Format, &PrivateData->UnknownFvInfo[Index].FvFormat)) {\r
break;\r
}\r
return EFI_NOT_FOUND;\r
}\r
\r
- *FvInfo = PrivateData->UnknownFvInfo[Index].FvInfo;\r
- *FvInfoSize = PrivateData->UnknownFvInfo[Index].FvInfoSize;\r
+ *FvInfo = PrivateData->UnknownFvInfo[Index].FvInfo;\r
+ *FvInfoSize = PrivateData->UnknownFvInfo[Index].FvInfoSize;\r
*AuthenticationStatus = PrivateData->UnknownFvInfo[Index].AuthenticationStatus;\r
\r
//\r
// Remove an entry from UnknownFvInfo array.\r
//\r
Index2 = Index + 1;\r
- for (;Index2 < PrivateData->UnknownFvInfoCount; Index2 ++, Index ++) {\r
+ for ( ; Index2 < PrivateData->UnknownFvInfoCount; Index2++, Index++) {\r
CopyMem (&PrivateData->UnknownFvInfo[Index], &PrivateData->UnknownFvInfo[Index2], sizeof (PEI_CORE_UNKNOW_FORMAT_FV_INFO));\r
}\r
- PrivateData->UnknownFvInfoCount --;\r
+\r
+ PrivateData->UnknownFvInfoCount--;\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
ThirdPartyFvPpiNotifyCallback (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
- IN VOID *Ppi\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
+ IN VOID *Ppi\r
)\r
{\r
PEI_CORE_INSTANCE *PrivateData;\r
UINTN CurFvCount;\r
VOID *TempPtr;\r
\r
- PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
- FvPpi = (EFI_PEI_FIRMWARE_VOLUME_PPI*) Ppi;\r
+ PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
+ FvPpi = (EFI_PEI_FIRMWARE_VOLUME_PPI *)Ppi;\r
\r
do {\r
Status = FindUnknownFormatFvInfo (PrivateData, NotifyDescriptor->Guid, &FvInfo, &FvInfoSize, &AuthenticationStatus);\r
// Check whether the FV has already been processed.\r
//\r
IsProcessed = FALSE;\r
- for (FvIndex = 0; FvIndex < PrivateData->FvCount; FvIndex ++) {\r
+ for (FvIndex = 0; FvIndex < PrivateData->FvCount; FvIndex++) {\r
if (PrivateData->Fv[FvIndex].FvHandle == FvHandle) {\r
DEBUG ((DEBUG_INFO, "The FV %p has already been processed!\n", FvInfo));\r
IsProcessed = TRUE;\r
PrivateData->Fv,\r
sizeof (PEI_CORE_FV_HANDLE) * PrivateData->MaxFvCount\r
);\r
- PrivateData->Fv = TempPtr;\r
+ PrivateData->Fv = TempPtr;\r
PrivateData->MaxFvCount = PrivateData->MaxFvCount + FV_GROWTH_STEP;\r
}\r
\r
//\r
// Update internal PEI_CORE_FV array.\r
//\r
- PrivateData->Fv[PrivateData->FvCount].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*) FvInfo;\r
- PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
- PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)FvInfo;\r
+ PrivateData->Fv[PrivateData->FvCount].FvPpi = FvPpi;\r
+ PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle;\r
PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = AuthenticationStatus;\r
- CurFvCount = PrivateData->FvCount;\r
+ CurFvCount = PrivateData->FvCount;\r
DEBUG ((\r
DEBUG_INFO,\r
"The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n",\r
- (UINT32) CurFvCount,\r
- (VOID *) FvInfo,\r
+ (UINT32)CurFvCount,\r
+ (VOID *)FvInfo,\r
FvInfoSize,\r
FvHandle\r
));\r
- PrivateData->FvCount ++;\r
+ PrivateData->FvCount++;\r
\r
//\r
// Scan and process the new discovered FV for EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE\r
EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE,\r
FvHandle,\r
&FileHandle\r
- );\r
+ );\r
if (!EFI_ERROR (Status)) {\r
Status = FvPpi->FindSectionByType (\r
FvPpi,\r
EFI_SECTION_PEI_DEPEX,\r
FileHandle,\r
- (VOID**)&DepexData\r
+ (VOID **)&DepexData\r
);\r
if (!EFI_ERROR (Status)) {\r
if (!PeimDispatchReadiness (PeiServices, DepexData)) {\r