\r
**/\r
\r
-\r
#ifndef __EDKII_SYSTEM_FMP_CAPSULE_GUID_H__\r
#define __EDKII_SYSTEM_FMP_CAPSULE_GUID_H__\r
\r
\r
#pragma pack(1)\r
typedef struct {\r
- UINT32 Signature;\r
- UINT32 HeaderLength; // Length of EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR, excluding NameString\r
- UINT32 Length; // Length of the data structure, including NameString\r
+ UINT32 Signature;\r
+ UINT32 HeaderLength; // Length of EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR, excluding NameString\r
+ UINT32 Length; // Length of the data structure, including NameString\r
// Below structure is similar as UEFI EFI_FIRMWARE_MANAGEMENT_PROTOCOL.GetPackageInfo()\r
- UINT32 PackageVersion;\r
- UINT32 PackageVersionNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
+ UINT32 PackageVersion;\r
+ UINT32 PackageVersionNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
// Below structure is similar as UEFI EFI_FIRMWARE_IMAGE_DESCRIPTOR\r
- UINT8 ImageIndex;\r
- UINT8 Reserved[3];\r
- EFI_GUID ImageTypeId;\r
- UINT64 ImageId;\r
- UINT32 ImageIdNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
- UINT32 Version;\r
- UINT32 VersionNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
- UINT8 Reserved2[4];\r
- UINT64 Size;\r
- UINT64 AttributesSupported;\r
- UINT64 AttributesSetting;\r
- UINT64 Compatibilities;\r
- UINT32 LowestSupportedImageVersion;\r
- UINT32 LastAttemptVersion;\r
- UINT32 LastAttemptStatus;\r
- UINT8 Reserved3[4];\r
- UINT64 HardwareInstance;\r
+ UINT8 ImageIndex;\r
+ UINT8 Reserved[3];\r
+ EFI_GUID ImageTypeId;\r
+ UINT64 ImageId;\r
+ UINT32 ImageIdNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
+ UINT32 Version;\r
+ UINT32 VersionNameStringOffset; // Offset from head, CHAR16 string including NULL terminate char\r
+ UINT8 Reserved2[4];\r
+ UINT64 Size;\r
+ UINT64 AttributesSupported;\r
+ UINT64 AttributesSetting;\r
+ UINT64 Compatibilities;\r
+ UINT32 LowestSupportedImageVersion;\r
+ UINT32 LastAttemptVersion;\r
+ UINT32 LastAttemptStatus;\r
+ UINT8 Reserved3[4];\r
+ UINT64 HardwareInstance;\r
// real string data\r
-//CHAR16 ImageIdNameStr[]; // CHAR16 string including NULL terminate char\r
-//CHAR16 VersionNameStr[]; // CHAR16 string including NULL terminate char\r
-//CHAR16 PackageVersionNameStr[]; // CHAR16 string including NULL terminate char\r
+ // CHAR16 ImageIdNameStr[]; // CHAR16 string including NULL terminate char\r
+ // CHAR16 VersionNameStr[]; // CHAR16 string including NULL terminate char\r
+ // CHAR16 PackageVersionNameStr[]; // CHAR16 string including NULL terminate char\r
} EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR;\r
#pragma pack()\r
\r
+----------------------+\r
**/\r
\r
-extern EFI_GUID gEdkiiSystemFirmwareImageDescriptorFileGuid;\r
-extern EFI_GUID gEdkiiSystemFmpCapsuleConfigFileGuid;\r
-extern EFI_GUID gEdkiiSystemFmpCapsuleDriverFvFileGuid;\r
+extern EFI_GUID gEdkiiSystemFirmwareImageDescriptorFileGuid;\r
+extern EFI_GUID gEdkiiSystemFmpCapsuleConfigFileGuid;\r
+extern EFI_GUID gEdkiiSystemFmpCapsuleDriverFvFileGuid;\r
\r
#endif\r
\r
**/\r
\r
-\r
#ifndef __EDKII_SYSTEM_CAPSULE_LIB_H__\r
#define __EDKII_SYSTEM_CAPSULE_LIB_H__\r
\r
BOOLEAN\r
EFIAPI\r
ExtractSystemFirmwareImageFmpInfo (\r
- IN VOID *SystemFirmwareImage,\r
- IN UINTN SystemFirmwareImageSize,\r
- OUT EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR **ImageFmpInfo,\r
- OUT UINTN *ImageFmpInfoSize\r
+ IN VOID *SystemFirmwareImage,\r
+ IN UINTN SystemFirmwareImageSize,\r
+ OUT EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR **ImageFmpInfo,\r
+ OUT UINTN *ImageFmpInfoSize\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
ExtractDriverFvImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **DriverFvImage,\r
- OUT UINTN *DriverFvImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **DriverFvImage,\r
+ OUT UINTN *DriverFvImageSize\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
ExtractConfigImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **ConfigImage,\r
- OUT UINTN *ConfigImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **ConfigImage,\r
+ OUT UINTN *ConfigImageSize\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
ExtractSystemFirmwareImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **SystemFirmwareImage,\r
- OUT UINTN *SystemFirmwareImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **SystemFirmwareImage,\r
+ OUT UINTN *SystemFirmwareImageSize\r
);\r
\r
/**\r
BOOLEAN\r
EFIAPI\r
ExtractAuthenticatedImage (\r
- IN VOID *Image,\r
- IN UINTN ImageSize,\r
- OUT UINT32 *LastAttemptStatus,\r
- OUT VOID **AuthenticatedImage,\r
- OUT UINTN *AuthenticatedImageSize\r
+ IN VOID *Image,\r
+ IN UINTN ImageSize,\r
+ OUT UINT32 *LastAttemptStatus,\r
+ OUT VOID **AuthenticatedImage,\r
+ OUT UINTN *AuthenticatedImageSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
CapsuleAuthenticateSystemFirmware (\r
- IN VOID *Image,\r
- IN UINTN ImageSize,\r
- IN BOOLEAN ForceVersionMatch,\r
- OUT UINT32 *LastAttemptVersion,\r
- OUT UINT32 *LastAttemptStatus,\r
- OUT VOID **AuthenticatedImage,\r
- OUT UINTN *AuthenticatedImageSize\r
+ IN VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN BOOLEAN ForceVersionMatch,\r
+ OUT UINT32 *LastAttemptVersion,\r
+ OUT UINT32 *LastAttemptStatus,\r
+ OUT VOID **AuthenticatedImage,\r
+ OUT UINTN *AuthenticatedImageSize\r
);\r
\r
#endif\r
-\r
\r
**/\r
\r
-\r
#ifndef __INI_PARSING_LIB_H__\r
#define __INI_PARSING_LIB_H__\r
\r
VOID *\r
EFIAPI\r
OpenIniFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GetStringFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT CHAR8 **EntryValue\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT CHAR8 **EntryValue\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GetGuidFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT EFI_GUID *Guid\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT EFI_GUID *Guid\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GetDecimalUintnFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINTN *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINTN *Data\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GetHexUintnFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINTN *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINTN *Data\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
GetHexUint64FromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINT64 *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINT64 *Data\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
CloseIniFile (\r
- IN VOID *Context\r
+ IN VOID *Context\r
);\r
\r
#endif\r
-\r
\r
**/\r
\r
-\r
#ifndef __PLATFORM_FLASH_ACCESS_LIB_H__\r
#define __PLATFORM_FLASH_ACCESS_LIB_H__\r
\r
EFI_STATUS\r
EFIAPI\r
PerformFlashWrite (\r
- IN PLATFORM_FIRMWARE_TYPE FirmwareType,\r
- IN EFI_PHYSICAL_ADDRESS FlashAddress,\r
- IN FLASH_ADDRESS_TYPE FlashAddressType,\r
- IN VOID *Buffer,\r
- IN UINTN Length\r
+ IN PLATFORM_FIRMWARE_TYPE FirmwareType,\r
+ IN EFI_PHYSICAL_ADDRESS FlashAddress,\r
+ IN FLASH_ADDRESS_TYPE FlashAddressType,\r
+ IN VOID *Buffer,\r
+ IN UINTN Length\r
);\r
\r
/**\r
\r
#include <Protocol/FirmwareManagement.h>\r
\r
-EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *mImageFmpInfo;\r
-UINTN mImageFmpInfoSize;\r
-EFI_GUID mEdkiiSystemFirmwareFileGuid;\r
+EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *mImageFmpInfo;\r
+UINTN mImageFmpInfoSize;\r
+EFI_GUID mEdkiiSystemFirmwareFileGuid;\r
\r
/**\r
Check if a block of buffer is erased.\r
**/\r
BOOLEAN\r
IsBufferErased (\r
- IN UINT8 ErasePolarity,\r
- IN VOID *InBuffer,\r
- IN UINTN BufferSize\r
+ IN UINT8 ErasePolarity,\r
+ IN VOID *InBuffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
- UINTN Count;\r
- UINT8 EraseByte;\r
- UINT8 *Buffer;\r
+ UINTN Count;\r
+ UINT8 EraseByte;\r
+ UINT8 *Buffer;\r
\r
- if(ErasePolarity == 1) {\r
+ if (ErasePolarity == 1) {\r
EraseByte = 0xFF;\r
} else {\r
EraseByte = 0;\r
**/\r
BOOLEAN\r
GetSectionByType (\r
- IN VOID *SectionBuffer,\r
- IN UINT32 SectionBufferSize,\r
- IN EFI_SECTION_TYPE SectionType,\r
- IN UINTN SectionInstance,\r
- OUT VOID **OutSectionBuffer,\r
- OUT UINTN *OutSectionSize\r
+ IN VOID *SectionBuffer,\r
+ IN UINT32 SectionBufferSize,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ OUT VOID **OutSectionBuffer,\r
+ OUT UINTN *OutSectionSize\r
)\r
{\r
- EFI_COMMON_SECTION_HEADER *SectionHeader;\r
- UINTN SectionSize;\r
- UINTN Instance;\r
+ EFI_COMMON_SECTION_HEADER *SectionHeader;\r
+ UINTN SectionSize;\r
+ UINTN Instance;\r
\r
DEBUG ((DEBUG_INFO, "GetSectionByType - Buffer: 0x%08x - 0x%08x\n", SectionBuffer, SectionBufferSize));\r
\r
Instance = 0;\r
while ((UINTN)SectionHeader < (UINTN)SectionBuffer + SectionBufferSize) {\r
DEBUG ((DEBUG_INFO, "GetSectionByType - Section: 0x%08x\n", SectionHeader));\r
- if (IS_SECTION2(SectionHeader)) {\r
- SectionSize = SECTION2_SIZE(SectionHeader);\r
+ if (IS_SECTION2 (SectionHeader)) {\r
+ SectionSize = SECTION2_SIZE (SectionHeader);\r
} else {\r
- SectionSize = SECTION_SIZE(SectionHeader);\r
+ SectionSize = SECTION_SIZE (SectionHeader);\r
}\r
\r
if (SectionHeader->Type == SectionType) {\r
if (Instance == SectionInstance) {\r
*OutSectionBuffer = (UINT8 *)SectionHeader;\r
- *OutSectionSize = SectionSize;\r
- DEBUG((DEBUG_INFO, "GetSectionByType - 0x%x - 0x%x\n", *OutSectionBuffer, *OutSectionSize));\r
+ *OutSectionSize = SectionSize;\r
+ DEBUG ((DEBUG_INFO, "GetSectionByType - 0x%x - 0x%x\n", *OutSectionBuffer, *OutSectionSize));\r
return TRUE;\r
} else {\r
- DEBUG((DEBUG_INFO, "GetSectionByType - find section instance %x\n", Instance));\r
+ DEBUG ((DEBUG_INFO, "GetSectionByType - find section instance %x\n", Instance));\r
Instance++;\r
}\r
} else {\r
//\r
// Next Section\r
//\r
- SectionHeader = (EFI_COMMON_SECTION_HEADER *)((UINTN)SectionHeader + ALIGN_VALUE(SectionSize, 4));\r
+ SectionHeader = (EFI_COMMON_SECTION_HEADER *)((UINTN)SectionHeader + ALIGN_VALUE (SectionSize, 4));\r
}\r
\r
return FALSE;\r
**/\r
BOOLEAN\r
GetFfsByName (\r
- IN VOID *FdStart,\r
- IN UINTN FdSize,\r
- IN EFI_GUID *FileName,\r
- IN EFI_FV_FILETYPE Type,\r
- OUT VOID **OutFfsBuffer,\r
- OUT UINTN *OutFfsBufferSize\r
+ IN VOID *FdStart,\r
+ IN UINTN FdSize,\r
+ IN EFI_GUID *FileName,\r
+ IN EFI_FV_FILETYPE Type,\r
+ OUT VOID **OutFfsBuffer,\r
+ OUT UINTN *OutFfsBufferSize\r
)\r
{\r
- UINTN FvSize;\r
- EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
- EFI_FIRMWARE_VOLUME_EXT_HEADER *FvExtHeader;\r
- EFI_FFS_FILE_HEADER *FfsHeader;\r
- UINT32 FfsSize;\r
- UINTN TestLength;\r
- BOOLEAN FvFound;\r
+ UINTN FvSize;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
+ EFI_FIRMWARE_VOLUME_EXT_HEADER *FvExtHeader;\r
+ EFI_FFS_FILE_HEADER *FfsHeader;\r
+ UINT32 FfsSize;\r
+ UINTN TestLength;\r
+ BOOLEAN FvFound;\r
\r
DEBUG ((DEBUG_INFO, "GetFfsByName - FV: 0x%08x - 0x%08x\n", (UINTN)FdStart, (UINTN)FdSize));\r
\r
- FvFound = FALSE;\r
+ FvFound = FALSE;\r
FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)FdStart;\r
while ((UINTN)FvHeader < (UINTN)FdStart + FdSize - 1) {\r
FvSize = (UINTN)FdStart + FdSize - (UINTN)FvHeader;\r
FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)((UINTN)FvHeader + SIZE_4KB);\r
continue;\r
}\r
- DEBUG((DEBUG_INFO, "checking FV....0x%08x - 0x%x\n", FvHeader, FvHeader->FvLength));\r
+\r
+ DEBUG ((DEBUG_INFO, "checking FV....0x%08x - 0x%x\n", FvHeader, FvHeader->FvLength));\r
FvFound = TRUE;\r
if (FvHeader->FvLength > FvSize) {\r
- DEBUG((DEBUG_ERROR, "GetFfsByName - FvSize: 0x%08x, MaxSize - 0x%08x\n", (UINTN)FvHeader->FvLength, (UINTN)FvSize));\r
+ DEBUG ((DEBUG_ERROR, "GetFfsByName - FvSize: 0x%08x, MaxSize - 0x%08x\n", (UINTN)FvHeader->FvLength, (UINTN)FvSize));\r
return FALSE;\r
}\r
+\r
FvSize = (UINTN)FvHeader->FvLength;\r
\r
//\r
//\r
if (FvHeader->ExtHeaderOffset != 0) {\r
FvExtHeader = (EFI_FIRMWARE_VOLUME_EXT_HEADER *)((UINT8 *)FvHeader + FvHeader->ExtHeaderOffset);\r
- FfsHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FvExtHeader + FvExtHeader->ExtHeaderSize);\r
+ FfsHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FvExtHeader + FvExtHeader->ExtHeaderSize);\r
} else {\r
FfsHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FvHeader + FvHeader->HeaderLength);\r
}\r
- FfsHeader = (EFI_FFS_FILE_HEADER *)((UINTN)FvHeader + ALIGN_VALUE((UINTN)FfsHeader - (UINTN)FvHeader, 8));\r
+\r
+ FfsHeader = (EFI_FFS_FILE_HEADER *)((UINTN)FvHeader + ALIGN_VALUE ((UINTN)FfsHeader - (UINTN)FvHeader, 8));\r
\r
while ((UINTN)FfsHeader < (UINTN)FvHeader + FvSize - 1) {\r
- DEBUG((DEBUG_INFO, "GetFfsByName - FFS: 0x%08x\n", FfsHeader));\r
+ DEBUG ((DEBUG_INFO, "GetFfsByName - FFS: 0x%08x\n", FfsHeader));\r
TestLength = (UINTN)((UINTN)FvHeader + FvSize - (UINTN)FfsHeader);\r
- if (TestLength > sizeof(EFI_FFS_FILE_HEADER)) {\r
- TestLength = sizeof(EFI_FFS_FILE_HEADER);\r
+ if (TestLength > sizeof (EFI_FFS_FILE_HEADER)) {\r
+ TestLength = sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- if (IsBufferErased(1, FfsHeader, TestLength)) {\r
+\r
+ if (IsBufferErased (1, FfsHeader, TestLength)) {\r
break;\r
}\r
\r
- if (IS_FFS_FILE2(FfsHeader)) {\r
- FfsSize = FFS_FILE2_SIZE(FfsHeader);\r
+ if (IS_FFS_FILE2 (FfsHeader)) {\r
+ FfsSize = FFS_FILE2_SIZE (FfsHeader);\r
} else {\r
- FfsSize = FFS_FILE_SIZE(FfsHeader);\r
+ FfsSize = FFS_FILE_SIZE (FfsHeader);\r
}\r
\r
- if (CompareGuid(FileName, &FfsHeader->Name) &&\r
- ((Type == EFI_FV_FILETYPE_ALL) || (FfsHeader->Type == Type))) {\r
- *OutFfsBuffer = FfsHeader;\r
+ if (CompareGuid (FileName, &FfsHeader->Name) &&\r
+ ((Type == EFI_FV_FILETYPE_ALL) || (FfsHeader->Type == Type)))\r
+ {\r
+ *OutFfsBuffer = FfsHeader;\r
*OutFfsBufferSize = FfsSize;\r
return TRUE;\r
} else {\r
//\r
// Any other type is not allowed\r
//\r
- DEBUG((DEBUG_INFO, "GetFfsByName - other FFS type 0x%x, name %g\n", FfsHeader->Type, &FfsHeader->Name));\r
+ DEBUG ((DEBUG_INFO, "GetFfsByName - other FFS type 0x%x, name %g\n", FfsHeader->Type, &FfsHeader->Name));\r
}\r
\r
//\r
// Next File\r
//\r
- FfsHeader = (EFI_FFS_FILE_HEADER *)((UINTN)FfsHeader + ALIGN_VALUE(FfsSize, 8));\r
+ FfsHeader = (EFI_FFS_FILE_HEADER *)((UINTN)FfsHeader + ALIGN_VALUE (FfsSize, 8));\r
}\r
\r
//\r
}\r
\r
if (!FvFound) {\r
- DEBUG((DEBUG_ERROR, "GetFfsByName - NO FV Found\n"));\r
+ DEBUG ((DEBUG_ERROR, "GetFfsByName - NO FV Found\n"));\r
}\r
+\r
return FALSE;\r
}\r
\r
BOOLEAN\r
EFIAPI\r
ExtractDriverFvImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **DriverFvImage,\r
- OUT UINTN *DriverFvImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **DriverFvImage,\r
+ OUT UINTN *DriverFvImageSize\r
)\r
{\r
- BOOLEAN Result;\r
- UINT32 FileHeaderSize;\r
+ BOOLEAN Result;\r
+ UINT32 FileHeaderSize;\r
\r
- *DriverFvImage = NULL;\r
+ *DriverFvImage = NULL;\r
*DriverFvImageSize = 0;\r
\r
- Result = GetFfsByName(AuthenticatedImage, AuthenticatedImageSize, &gEdkiiSystemFmpCapsuleDriverFvFileGuid, EFI_FV_FILETYPE_RAW, DriverFvImage, DriverFvImageSize);\r
+ Result = GetFfsByName (AuthenticatedImage, AuthenticatedImageSize, &gEdkiiSystemFmpCapsuleDriverFvFileGuid, EFI_FV_FILETYPE_RAW, DriverFvImage, DriverFvImageSize);\r
if (!Result) {\r
return FALSE;\r
}\r
\r
- if (IS_FFS_FILE2(*DriverFvImage)) {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER2);\r
+ if (IS_FFS_FILE2 (*DriverFvImage)) {\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- *DriverFvImage = (UINT8 *)*DriverFvImage + FileHeaderSize;\r
+\r
+ *DriverFvImage = (UINT8 *)*DriverFvImage + FileHeaderSize;\r
*DriverFvImageSize = *DriverFvImageSize - FileHeaderSize;\r
\r
return Result;\r
BOOLEAN\r
EFIAPI\r
ExtractConfigImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **ConfigImage,\r
- OUT UINTN *ConfigImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **ConfigImage,\r
+ OUT UINTN *ConfigImageSize\r
)\r
{\r
- BOOLEAN Result;\r
- UINT32 FileHeaderSize;\r
+ BOOLEAN Result;\r
+ UINT32 FileHeaderSize;\r
\r
- *ConfigImage = NULL;\r
+ *ConfigImage = NULL;\r
*ConfigImageSize = 0;\r
\r
- Result = GetFfsByName(AuthenticatedImage, AuthenticatedImageSize, &gEdkiiSystemFmpCapsuleConfigFileGuid, EFI_FV_FILETYPE_RAW, ConfigImage, ConfigImageSize);\r
+ Result = GetFfsByName (AuthenticatedImage, AuthenticatedImageSize, &gEdkiiSystemFmpCapsuleConfigFileGuid, EFI_FV_FILETYPE_RAW, ConfigImage, ConfigImageSize);\r
if (!Result) {\r
return FALSE;\r
}\r
\r
- if (IS_FFS_FILE2(*ConfigImage)) {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER2);\r
+ if (IS_FFS_FILE2 (*ConfigImage)) {\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- *ConfigImage = (UINT8 *)*ConfigImage + FileHeaderSize;\r
+\r
+ *ConfigImage = (UINT8 *)*ConfigImage + FileHeaderSize;\r
*ConfigImageSize = *ConfigImageSize - FileHeaderSize;\r
\r
return Result;\r
BOOLEAN\r
EFIAPI\r
ExtractAuthenticatedImage (\r
- IN VOID *Image,\r
- IN UINTN ImageSize,\r
- OUT UINT32 *LastAttemptStatus,\r
- OUT VOID **AuthenticatedImage,\r
- OUT UINTN *AuthenticatedImageSize\r
+ IN VOID *Image,\r
+ IN UINTN ImageSize,\r
+ OUT UINT32 *LastAttemptStatus,\r
+ OUT VOID **AuthenticatedImage,\r
+ OUT UINTN *AuthenticatedImageSize\r
)\r
{\r
- EFI_FIRMWARE_IMAGE_AUTHENTICATION *ImageAuth;\r
- EFI_STATUS Status;\r
- GUID *CertType;\r
- VOID *PublicKeyData;\r
- UINTN PublicKeyDataLength;\r
+ EFI_FIRMWARE_IMAGE_AUTHENTICATION *ImageAuth;\r
+ EFI_STATUS Status;\r
+ GUID *CertType;\r
+ VOID *PublicKeyData;\r
+ UINTN PublicKeyDataLength;\r
\r
- DEBUG((DEBUG_INFO, "ExtractAuthenticatedImage - Image: 0x%08x - 0x%08x\n", (UINTN)Image, (UINTN)ImageSize));\r
+ DEBUG ((DEBUG_INFO, "ExtractAuthenticatedImage - Image: 0x%08x - 0x%08x\n", (UINTN)Image, (UINTN)ImageSize));\r
\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
if ((Image == NULL) || (ImageSize == 0)) {\r
}\r
\r
ImageAuth = (EFI_FIRMWARE_IMAGE_AUTHENTICATION *)Image;\r
- if (ImageSize < sizeof(EFI_FIRMWARE_IMAGE_AUTHENTICATION)) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - ImageSize too small\n"));\r
+ if (ImageSize < sizeof (EFI_FIRMWARE_IMAGE_AUTHENTICATION)) {\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - ImageSize too small\n"));\r
return FALSE;\r
}\r
- if (ImageAuth->AuthInfo.Hdr.dwLength <= OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, CertData)) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - dwLength too small\n"));\r
+\r
+ if (ImageAuth->AuthInfo.Hdr.dwLength <= OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) {\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - dwLength too small\n"));\r
return FALSE;\r
}\r
- if ((UINTN) ImageAuth->AuthInfo.Hdr.dwLength > MAX_UINTN - sizeof(UINT64)) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - dwLength too big\n"));\r
+\r
+ if ((UINTN)ImageAuth->AuthInfo.Hdr.dwLength > MAX_UINTN - sizeof (UINT64)) {\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - dwLength too big\n"));\r
return FALSE;\r
}\r
- if (ImageSize <= sizeof(ImageAuth->MonotonicCount) + ImageAuth->AuthInfo.Hdr.dwLength) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - ImageSize too small\n"));\r
+\r
+ if (ImageSize <= sizeof (ImageAuth->MonotonicCount) + ImageAuth->AuthInfo.Hdr.dwLength) {\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - ImageSize too small\n"));\r
return FALSE;\r
}\r
+\r
if (ImageAuth->AuthInfo.Hdr.wRevision != 0x0200) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - wRevision: 0x%02x, expect - 0x%02x\n", (UINTN)ImageAuth->AuthInfo.Hdr.wRevision, (UINTN)0x0200));\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - wRevision: 0x%02x, expect - 0x%02x\n", (UINTN)ImageAuth->AuthInfo.Hdr.wRevision, (UINTN)0x0200));\r
return FALSE;\r
}\r
+\r
if (ImageAuth->AuthInfo.Hdr.wCertificateType != WIN_CERT_TYPE_EFI_GUID) {\r
- DEBUG((DEBUG_ERROR, "ExtractAuthenticatedImage - wCertificateType: 0x%02x, expect - 0x%02x\n", (UINTN)ImageAuth->AuthInfo.Hdr.wCertificateType, (UINTN)WIN_CERT_TYPE_EFI_GUID));\r
+ DEBUG ((DEBUG_ERROR, "ExtractAuthenticatedImage - wCertificateType: 0x%02x, expect - 0x%02x\n", (UINTN)ImageAuth->AuthInfo.Hdr.wCertificateType, (UINTN)WIN_CERT_TYPE_EFI_GUID));\r
return FALSE;\r
}\r
\r
CertType = &ImageAuth->AuthInfo.CertType;\r
- DEBUG((DEBUG_INFO, "ExtractAuthenticatedImage - CertType: %g\n", CertType));\r
-\r
- if (CompareGuid(&gEfiCertPkcs7Guid, CertType)) {\r
- PublicKeyData = PcdGetPtr(PcdPkcs7CertBuffer);\r
- PublicKeyDataLength = PcdGetSize(PcdPkcs7CertBuffer);\r
- } else if (CompareGuid(&gEfiCertTypeRsa2048Sha256Guid, CertType)) {\r
- PublicKeyData = PcdGetPtr(PcdRsa2048Sha256PublicKeyBuffer);\r
- PublicKeyDataLength = PcdGetSize(PcdRsa2048Sha256PublicKeyBuffer);\r
+ DEBUG ((DEBUG_INFO, "ExtractAuthenticatedImage - CertType: %g\n", CertType));\r
+\r
+ if (CompareGuid (&gEfiCertPkcs7Guid, CertType)) {\r
+ PublicKeyData = PcdGetPtr (PcdPkcs7CertBuffer);\r
+ PublicKeyDataLength = PcdGetSize (PcdPkcs7CertBuffer);\r
+ } else if (CompareGuid (&gEfiCertTypeRsa2048Sha256Guid, CertType)) {\r
+ PublicKeyData = PcdGetPtr (PcdRsa2048Sha256PublicKeyBuffer);\r
+ PublicKeyDataLength = PcdGetSize (PcdRsa2048Sha256PublicKeyBuffer);\r
} else {\r
return FALSE;\r
}\r
+\r
ASSERT (PublicKeyData != NULL);\r
ASSERT (PublicKeyDataLength != 0);\r
\r
- Status = AuthenticateFmpImage(\r
+ Status = AuthenticateFmpImage (\r
ImageAuth,\r
ImageSize,\r
PublicKeyData,\r
PublicKeyDataLength\r
);\r
switch (Status) {\r
- case RETURN_SUCCESS:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
- break;\r
- case RETURN_SECURITY_VIOLATION:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_AUTH_ERROR;\r
- break;\r
- case RETURN_INVALID_PARAMETER:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- break;\r
- case RETURN_UNSUPPORTED:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- break;\r
- case RETURN_OUT_OF_RESOURCES:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INSUFFICIENT_RESOURCES;\r
- break;\r
- default:\r
- *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;\r
- break;\r
- }\r
- if (EFI_ERROR(Status)) {\r
+ case RETURN_SUCCESS:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
+ break;\r
+ case RETURN_SECURITY_VIOLATION:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_AUTH_ERROR;\r
+ break;\r
+ case RETURN_INVALID_PARAMETER:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
+ break;\r
+ case RETURN_UNSUPPORTED:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
+ break;\r
+ case RETURN_OUT_OF_RESOURCES:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INSUFFICIENT_RESOURCES;\r
+ break;\r
+ default:\r
+ *LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;\r
+ break;\r
+ }\r
+\r
+ if (EFI_ERROR (Status)) {\r
return FALSE;\r
}\r
\r
if (AuthenticatedImage != NULL) {\r
- *AuthenticatedImage = (UINT8 *)ImageAuth + ImageAuth->AuthInfo.Hdr.dwLength + sizeof(ImageAuth->MonotonicCount);\r
+ *AuthenticatedImage = (UINT8 *)ImageAuth + ImageAuth->AuthInfo.Hdr.dwLength + sizeof (ImageAuth->MonotonicCount);\r
}\r
+\r
if (AuthenticatedImageSize != NULL) {\r
- *AuthenticatedImageSize = ImageSize - ImageAuth->AuthInfo.Hdr.dwLength - sizeof(ImageAuth->MonotonicCount);\r
+ *AuthenticatedImageSize = ImageSize - ImageAuth->AuthInfo.Hdr.dwLength - sizeof (ImageAuth->MonotonicCount);\r
}\r
+\r
return TRUE;\r
}\r
\r
BOOLEAN\r
EFIAPI\r
ExtractSystemFirmwareImageFmpInfo (\r
- IN VOID *SystemFirmwareImage,\r
- IN UINTN SystemFirmwareImageSize,\r
- OUT EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR **ImageFmpInfo,\r
- OUT UINTN *ImageFmpInfoSize\r
+ IN VOID *SystemFirmwareImage,\r
+ IN UINTN SystemFirmwareImageSize,\r
+ OUT EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR **ImageFmpInfo,\r
+ OUT UINTN *ImageFmpInfoSize\r
)\r
{\r
- BOOLEAN Result;\r
- UINT32 SectionHeaderSize;\r
- UINT32 FileHeaderSize;\r
+ BOOLEAN Result;\r
+ UINT32 SectionHeaderSize;\r
+ UINT32 FileHeaderSize;\r
\r
- *ImageFmpInfo = NULL;\r
+ *ImageFmpInfo = NULL;\r
*ImageFmpInfoSize = 0;\r
\r
- Result = GetFfsByName(SystemFirmwareImage, SystemFirmwareImageSize, &gEdkiiSystemFirmwareImageDescriptorFileGuid, EFI_FV_FILETYPE_ALL, (VOID **)ImageFmpInfo, ImageFmpInfoSize);\r
+ Result = GetFfsByName (SystemFirmwareImage, SystemFirmwareImageSize, &gEdkiiSystemFirmwareImageDescriptorFileGuid, EFI_FV_FILETYPE_ALL, (VOID **)ImageFmpInfo, ImageFmpInfoSize);\r
if (!Result) {\r
return FALSE;\r
}\r
+\r
if (IS_FFS_FILE2 (*ImageFmpInfo)) {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER2);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- *ImageFmpInfo = (VOID *)((UINT8 *)*ImageFmpInfo + FileHeaderSize);\r
+\r
+ *ImageFmpInfo = (VOID *)((UINT8 *)*ImageFmpInfo + FileHeaderSize);\r
*ImageFmpInfoSize = *ImageFmpInfoSize - FileHeaderSize;\r
\r
- Result = GetSectionByType(*ImageFmpInfo, (UINT32)*ImageFmpInfoSize, EFI_SECTION_RAW, 0, (VOID **)ImageFmpInfo, ImageFmpInfoSize);\r
+ Result = GetSectionByType (*ImageFmpInfo, (UINT32)*ImageFmpInfoSize, EFI_SECTION_RAW, 0, (VOID **)ImageFmpInfo, ImageFmpInfoSize);\r
if (!Result) {\r
return FALSE;\r
}\r
- if (IS_SECTION2(*ImageFmpInfo)) {\r
- SectionHeaderSize = sizeof(EFI_RAW_SECTION2);\r
+\r
+ if (IS_SECTION2 (*ImageFmpInfo)) {\r
+ SectionHeaderSize = sizeof (EFI_RAW_SECTION2);\r
} else {\r
- SectionHeaderSize = sizeof(EFI_RAW_SECTION);\r
+ SectionHeaderSize = sizeof (EFI_RAW_SECTION);\r
}\r
- *ImageFmpInfo = (VOID *)((UINT8 *)*ImageFmpInfo + SectionHeaderSize);\r
+\r
+ *ImageFmpInfo = (VOID *)((UINT8 *)*ImageFmpInfo + SectionHeaderSize);\r
*ImageFmpInfoSize = *ImageFmpInfoSize - SectionHeaderSize;\r
\r
return TRUE;\r
BOOLEAN\r
EFIAPI\r
ExtractSystemFirmwareImage (\r
- IN VOID *AuthenticatedImage,\r
- IN UINTN AuthenticatedImageSize,\r
- OUT VOID **SystemFirmwareImage,\r
- OUT UINTN *SystemFirmwareImageSize\r
+ IN VOID *AuthenticatedImage,\r
+ IN UINTN AuthenticatedImageSize,\r
+ OUT VOID **SystemFirmwareImage,\r
+ OUT UINTN *SystemFirmwareImageSize\r
)\r
{\r
- BOOLEAN Result;\r
- UINT32 FileHeaderSize;\r
+ BOOLEAN Result;\r
+ UINT32 FileHeaderSize;\r
\r
- *SystemFirmwareImage = NULL;\r
+ *SystemFirmwareImage = NULL;\r
*SystemFirmwareImageSize = 0;\r
\r
- Result = GetFfsByName(AuthenticatedImage, AuthenticatedImageSize, &mEdkiiSystemFirmwareFileGuid, EFI_FV_FILETYPE_RAW, SystemFirmwareImage, SystemFirmwareImageSize);\r
+ Result = GetFfsByName (AuthenticatedImage, AuthenticatedImageSize, &mEdkiiSystemFirmwareFileGuid, EFI_FV_FILETYPE_RAW, SystemFirmwareImage, SystemFirmwareImageSize);\r
if (!Result) {\r
// no nested FV, just return all data.\r
- *SystemFirmwareImage = AuthenticatedImage;\r
+ *SystemFirmwareImage = AuthenticatedImage;\r
*SystemFirmwareImageSize = AuthenticatedImageSize;\r
\r
return TRUE;\r
}\r
+\r
if (IS_FFS_FILE2 (*SystemFirmwareImage)) {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER2);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER2);\r
} else {\r
- FileHeaderSize = sizeof(EFI_FFS_FILE_HEADER);\r
+ FileHeaderSize = sizeof (EFI_FFS_FILE_HEADER);\r
}\r
- *SystemFirmwareImage = (UINT8 *)*SystemFirmwareImage + FileHeaderSize;\r
+\r
+ *SystemFirmwareImage = (UINT8 *)*SystemFirmwareImage + FileHeaderSize;\r
*SystemFirmwareImageSize = *SystemFirmwareImageSize - FileHeaderSize;\r
\r
return Result;\r
EFI_STATUS\r
EFIAPI\r
CapsuleAuthenticateSystemFirmware (\r
- IN VOID *Image,\r
- IN UINTN ImageSize,\r
- IN BOOLEAN ForceVersionMatch,\r
- OUT UINT32 *LastAttemptVersion,\r
- OUT UINT32 *LastAttemptStatus,\r
- OUT VOID **AuthenticatedImage,\r
- OUT UINTN *AuthenticatedImageSize\r
+ IN VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN BOOLEAN ForceVersionMatch,\r
+ OUT UINT32 *LastAttemptVersion,\r
+ OUT UINT32 *LastAttemptStatus,\r
+ OUT VOID **AuthenticatedImage,\r
+ OUT UINTN *AuthenticatedImageSize\r
)\r
{\r
- BOOLEAN Result;\r
- EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageFmpInfo;\r
- UINTN ImageFmpInfoSize;\r
- EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *CurrentImageFmpInfo;\r
- UINTN CurrentImageFmpInfoSize;\r
- VOID *SystemFirmwareImage;\r
- UINTN SystemFirmwareImageSize;\r
+ BOOLEAN Result;\r
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageFmpInfo;\r
+ UINTN ImageFmpInfoSize;\r
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *CurrentImageFmpInfo;\r
+ UINTN CurrentImageFmpInfoSize;\r
+ VOID *SystemFirmwareImage;\r
+ UINTN SystemFirmwareImageSize;\r
\r
*LastAttemptVersion = 0;\r
\r
// Do not touch FMP protocol and its private structure.\r
//\r
if (mImageFmpInfo == NULL) {\r
- DEBUG((DEBUG_INFO, "ImageFmpInfo is not set\n"));\r
+ DEBUG ((DEBUG_INFO, "ImageFmpInfo is not set\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
\r
- Result = ExtractAuthenticatedImage((VOID *)Image, ImageSize, LastAttemptStatus, AuthenticatedImage, AuthenticatedImageSize);\r
+ Result = ExtractAuthenticatedImage ((VOID *)Image, ImageSize, LastAttemptStatus, AuthenticatedImage, AuthenticatedImageSize);\r
if (!Result) {\r
- DEBUG((DEBUG_INFO, "ExtractAuthenticatedImage - fail\n"));\r
+ DEBUG ((DEBUG_INFO, "ExtractAuthenticatedImage - fail\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
\r
- DEBUG((DEBUG_INFO, "AuthenticatedImage - 0x%x - 0x%x\n", *AuthenticatedImage, *AuthenticatedImageSize));\r
+ DEBUG ((DEBUG_INFO, "AuthenticatedImage - 0x%x - 0x%x\n", *AuthenticatedImage, *AuthenticatedImageSize));\r
\r
- Result = ExtractSystemFirmwareImage(*AuthenticatedImage, *AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
+ Result = ExtractSystemFirmwareImage (*AuthenticatedImage, *AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
if (!Result) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- DEBUG((DEBUG_INFO, "ExtractSystemFirmwareImage - fail\n"));\r
+ DEBUG ((DEBUG_INFO, "ExtractSystemFirmwareImage - fail\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
- DEBUG((DEBUG_INFO, "SystemFirmwareImage - 0x%x - 0x%x\n", SystemFirmwareImage, SystemFirmwareImageSize));\r
\r
- Result = ExtractSystemFirmwareImageFmpInfo(SystemFirmwareImage, SystemFirmwareImageSize, &ImageFmpInfo, &ImageFmpInfoSize);\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareImage - 0x%x - 0x%x\n", SystemFirmwareImage, SystemFirmwareImageSize));\r
+\r
+ Result = ExtractSystemFirmwareImageFmpInfo (SystemFirmwareImage, SystemFirmwareImageSize, &ImageFmpInfo, &ImageFmpInfoSize);\r
if (!Result) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- DEBUG((DEBUG_INFO, "ExtractSystemFirmwareImageFmpInfo - fail\n"));\r
+ DEBUG ((DEBUG_INFO, "ExtractSystemFirmwareImageFmpInfo - fail\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
\r
*LastAttemptVersion = ImageFmpInfo->Version;\r
- DEBUG((DEBUG_INFO, "ImageFmpInfo - 0x%x - 0x%x\n", ImageFmpInfo, ImageFmpInfoSize));\r
- DEBUG((DEBUG_INFO, "NewImage Version - 0x%x\n", ImageFmpInfo->Version));\r
- DEBUG((DEBUG_INFO, "NewImage LowestSupportedImageVersion - 0x%x\n", ImageFmpInfo->LowestSupportedImageVersion));\r
+ DEBUG ((DEBUG_INFO, "ImageFmpInfo - 0x%x - 0x%x\n", ImageFmpInfo, ImageFmpInfoSize));\r
+ DEBUG ((DEBUG_INFO, "NewImage Version - 0x%x\n", ImageFmpInfo->Version));\r
+ DEBUG ((DEBUG_INFO, "NewImage LowestSupportedImageVersion - 0x%x\n", ImageFmpInfo->LowestSupportedImageVersion));\r
\r
- CurrentImageFmpInfo = mImageFmpInfo;\r
+ CurrentImageFmpInfo = mImageFmpInfo;\r
CurrentImageFmpInfoSize = mImageFmpInfoSize;\r
\r
- DEBUG((DEBUG_INFO, "ImageFmpInfo - 0x%x - 0x%x\n", CurrentImageFmpInfo, CurrentImageFmpInfoSize));\r
- DEBUG((DEBUG_INFO, "Current Version - 0x%x\n", CurrentImageFmpInfo->Version));\r
- DEBUG((DEBUG_INFO, "Current LowestSupportedImageVersion - 0x%x\n", CurrentImageFmpInfo->LowestSupportedImageVersion));\r
+ DEBUG ((DEBUG_INFO, "ImageFmpInfo - 0x%x - 0x%x\n", CurrentImageFmpInfo, CurrentImageFmpInfoSize));\r
+ DEBUG ((DEBUG_INFO, "Current Version - 0x%x\n", CurrentImageFmpInfo->Version));\r
+ DEBUG ((DEBUG_INFO, "Current LowestSupportedImageVersion - 0x%x\n", CurrentImageFmpInfo->LowestSupportedImageVersion));\r
\r
if (ForceVersionMatch) {\r
if (CurrentImageFmpInfo->Version != ImageFmpInfo->Version) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INCORRECT_VERSION;\r
- DEBUG((DEBUG_INFO, "ForceVersionMatch check - fail\n"));\r
+ DEBUG ((DEBUG_INFO, "ForceVersionMatch check - fail\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
} else {\r
if (ImageFmpInfo->Version < CurrentImageFmpInfo->LowestSupportedImageVersion) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INCORRECT_VERSION;\r
- DEBUG((DEBUG_INFO, "LowestSupportedImageVersion check - fail\n"));\r
+ DEBUG ((DEBUG_INFO, "LowestSupportedImageVersion check - fail\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
}\r
VOID\r
EFIAPI\r
EdkiiSystemCapsuleLibPcdCallBack (\r
- IN CONST GUID *CallBackGuid OPTIONAL,\r
- IN UINTN CallBackToken,\r
- IN OUT VOID *TokenData,\r
- IN UINTN TokenDataSize\r
+ IN CONST GUID *CallBackGuid OPTIONAL,\r
+ IN UINTN CallBackToken,\r
+ IN OUT VOID *TokenData,\r
+ IN UINTN TokenDataSize\r
)\r
{\r
if (CompareGuid (CallBackGuid, &gEfiSignedCapsulePkgTokenSpaceGuid) &&\r
- CallBackToken == PcdToken (PcdEdkiiSystemFirmwareImageDescriptor)) {\r
+ (CallBackToken == PcdToken (PcdEdkiiSystemFirmwareImageDescriptor)))\r
+ {\r
mImageFmpInfoSize = TokenDataSize;\r
- mImageFmpInfo = AllocateCopyPool (mImageFmpInfoSize, TokenData);\r
- ASSERT(mImageFmpInfo != NULL);\r
+ mImageFmpInfo = AllocateCopyPool (mImageFmpInfoSize, TokenData);\r
+ ASSERT (mImageFmpInfo != NULL);\r
//\r
// Cancel Callback after get the real set value\r
//\r
}\r
\r
if (CompareGuid (CallBackGuid, &gEfiSignedCapsulePkgTokenSpaceGuid) &&\r
- CallBackToken == PcdToken (PcdEdkiiSystemFirmwareFileGuid)) {\r
- CopyGuid(&mEdkiiSystemFirmwareFileGuid, TokenData);\r
+ (CallBackToken == PcdToken (PcdEdkiiSystemFirmwareFileGuid)))\r
+ {\r
+ CopyGuid (&mEdkiiSystemFirmwareFileGuid, TokenData);\r
//\r
// Cancel Callback after get the real set value\r
//\r
VOID\r
)\r
{\r
- mImageFmpInfoSize = PcdGetSize(PcdEdkiiSystemFirmwareImageDescriptor);\r
- mImageFmpInfo = PcdGetPtr(PcdEdkiiSystemFirmwareImageDescriptor);\r
+ mImageFmpInfoSize = PcdGetSize (PcdEdkiiSystemFirmwareImageDescriptor);\r
+ mImageFmpInfo = PcdGetPtr (PcdEdkiiSystemFirmwareImageDescriptor);\r
//\r
// Verify Firmware Image Descriptor first\r
//\r
- if (mImageFmpInfoSize < sizeof (EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR) ||\r
- mImageFmpInfo->Signature != EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE) {\r
+ if ((mImageFmpInfoSize < sizeof (EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR)) ||\r
+ (mImageFmpInfo->Signature != EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR_SIGNATURE))\r
+ {\r
//\r
// SystemFirmwareImageDescriptor is not set.\r
// Register PCD set callback to hook PCD value set.\r
);\r
} else {\r
mImageFmpInfo = AllocateCopyPool (mImageFmpInfoSize, mImageFmpInfo);\r
- ASSERT(mImageFmpInfo != NULL);\r
+ ASSERT (mImageFmpInfo != NULL);\r
}\r
\r
- CopyGuid(&mEdkiiSystemFirmwareFileGuid, PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid));\r
+ CopyGuid (&mEdkiiSystemFirmwareFileGuid, PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid));\r
//\r
// Verify GUID value first\r
//\r
EdkiiSystemCapsuleLibPcdCallBack\r
);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
#include <Library/DebugLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
\r
-#define IS_HYPHEN(a) ((a) == '-')\r
-#define IS_NULL(a) ((a) == '\0')\r
+#define IS_HYPHEN(a) ((a) == '-')\r
+#define IS_NULL(a) ((a) == '\0')\r
\r
// This is default allocation. Reallocation will happen if it is not enough.\r
-#define MAX_LINE_LENGTH 512\r
+#define MAX_LINE_LENGTH 512\r
\r
typedef struct _INI_SECTION_ITEM SECTION_ITEM;\r
struct _INI_SECTION_ITEM {\r
- CHAR8 *PtrSection;\r
- UINTN SecNameLen;\r
- CHAR8 *PtrEntry;\r
- CHAR8 *PtrValue;\r
- SECTION_ITEM *PtrNext;\r
+ CHAR8 *PtrSection;\r
+ UINTN SecNameLen;\r
+ CHAR8 *PtrEntry;\r
+ CHAR8 *PtrValue;\r
+ SECTION_ITEM *PtrNext;\r
};\r
\r
typedef struct _INI_COMMENT_LINE COMMENT_LINE;\r
struct _INI_COMMENT_LINE {\r
- CHAR8 *PtrComment;\r
- COMMENT_LINE *PtrNext;\r
+ CHAR8 *PtrComment;\r
+ COMMENT_LINE *PtrNext;\r
};\r
\r
typedef struct {\r
- SECTION_ITEM *SectionHead;\r
- COMMENT_LINE *CommentHead;\r
+ SECTION_ITEM *SectionHead;\r
+ COMMENT_LINE *CommentHead;\r
} INI_PARSING_LIB_CONTEXT;\r
\r
/**\r
IN BOOLEAN IncludeHex\r
)\r
{\r
- if (DigitalChar >= '0' && DigitalChar <= '9') {\r
+ if ((DigitalChar >= '0') && (DigitalChar <= '9')) {\r
return TRUE;\r
}\r
+\r
if (IncludeHex) {\r
- if (DigitalChar >= 'a' && DigitalChar <= 'f') {\r
+ if ((DigitalChar >= 'a') && (DigitalChar <= 'f')) {\r
return TRUE;\r
}\r
- if (DigitalChar >= 'A' && DigitalChar <= 'F') {\r
+\r
+ if ((DigitalChar >= 'A') && (DigitalChar <= 'F')) {\r
return TRUE;\r
}\r
}\r
+\r
return FALSE;\r
}\r
\r
IN CHAR8 NameChar\r
)\r
{\r
- if (NameChar >= 'a' && NameChar <= 'z') {\r
+ if ((NameChar >= 'a') && (NameChar <= 'z')) {\r
return TRUE;\r
}\r
- if (NameChar >= 'A' && NameChar <= 'Z') {\r
+\r
+ if ((NameChar >= 'A') && (NameChar <= 'Z')) {\r
return TRUE;\r
}\r
- if (NameChar >= '0' && NameChar <= '9') {\r
+\r
+ if ((NameChar >= '0') && (NameChar <= '9')) {\r
return TRUE;\r
}\r
+\r
if (NameChar == '_') {\r
return TRUE;\r
}\r
+\r
return FALSE;\r
}\r
\r
)\r
{\r
UINTN Index;\r
+\r
for (Index = 0; Index < Length; Index++) {\r
- if (!IsValidDigitalChar(Digital[Index], IncludeHex)) {\r
+ if (!IsValidDigitalChar (Digital[Index], IncludeHex)) {\r
return FALSE;\r
}\r
}\r
+\r
return TRUE;\r
}\r
\r
IN UINTN Length\r
)\r
{\r
- return IsValidDigital(Decimal, Length, FALSE);\r
+ return IsValidDigital (Decimal, Length, FALSE);\r
}\r
\r
/**\r
if (Length <= 2) {\r
return FALSE;\r
}\r
+\r
if (Hex[0] != '0') {\r
return FALSE;\r
}\r
- if (Hex[1] != 'x' && Hex[1] != 'X') {\r
+\r
+ if ((Hex[1] != 'x') && (Hex[1] != 'X')) {\r
return FALSE;\r
}\r
- return IsValidDigital(&Hex[2], Length - 2, TRUE);\r
+\r
+ return IsValidDigital (&Hex[2], Length - 2, TRUE);\r
}\r
\r
/**\r
)\r
{\r
UINTN Index;\r
+\r
for (Index = 0; Index < Length; Index++) {\r
- if (!IsValidNameChar(Name[Index])) {\r
+ if (!IsValidNameChar (Name[Index])) {\r
return FALSE;\r
}\r
}\r
+\r
return TRUE;\r
}\r
\r
IN UINTN Length\r
)\r
{\r
- if (Length != sizeof("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") - 1) {\r
+ if (Length != sizeof ("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") - 1) {\r
return FALSE;\r
}\r
- if (!IS_HYPHEN(Value[8])) {\r
+\r
+ if (!IS_HYPHEN (Value[8])) {\r
return FALSE;\r
}\r
- if (!IS_HYPHEN(Value[13])) {\r
+\r
+ if (!IS_HYPHEN (Value[13])) {\r
return FALSE;\r
}\r
- if (!IS_HYPHEN(Value[18])) {\r
+\r
+ if (!IS_HYPHEN (Value[18])) {\r
return FALSE;\r
}\r
- if (!IS_HYPHEN(Value[23])) {\r
+\r
+ if (!IS_HYPHEN (Value[23])) {\r
return FALSE;\r
}\r
- if (!IsValidDigital(&Value[0], 8, TRUE)) {\r
+\r
+ if (!IsValidDigital (&Value[0], 8, TRUE)) {\r
return FALSE;\r
}\r
- if (!IsValidDigital(&Value[9], 4, TRUE)) {\r
+\r
+ if (!IsValidDigital (&Value[9], 4, TRUE)) {\r
return FALSE;\r
}\r
- if (!IsValidDigital(&Value[14], 4, TRUE)) {\r
+\r
+ if (!IsValidDigital (&Value[14], 4, TRUE)) {\r
return FALSE;\r
}\r
- if (!IsValidDigital(&Value[19], 4, TRUE)) {\r
+\r
+ if (!IsValidDigital (&Value[19], 4, TRUE)) {\r
return FALSE;\r
}\r
- if (!IsValidDigital(&Value[24], 12, TRUE)) {\r
+\r
+ if (!IsValidDigital (&Value[24], 12, TRUE)) {\r
return FALSE;\r
}\r
+\r
return TRUE;\r
}\r
\r
IN UINTN Length\r
)\r
{\r
- if (IsValidName(Value, Length) || IsValidGuid(Value, Length)) {\r
+ if (IsValidName (Value, Length) || IsValidGuid (Value, Length)) {\r
return TRUE;\r
}\r
+\r
return FALSE;\r
}\r
\r
IN VOID *Context\r
)\r
{\r
- INI_PARSING_LIB_CONTEXT *IniContext;\r
- SECTION_ITEM *PtrSection;\r
- SECTION_ITEM *Section;\r
+ INI_PARSING_LIB_CONTEXT *IniContext;\r
+ SECTION_ITEM *PtrSection;\r
+ SECTION_ITEM *Section;\r
\r
if (Context == NULL) {\r
return;\r
}\r
\r
IniContext = Context;\r
- Section = IniContext->SectionHead;\r
+ Section = IniContext->SectionHead;\r
\r
while (Section != NULL) {\r
PtrSection = Section;\r
- Section = Section->PtrNext;\r
+ Section = Section->PtrNext;\r
if (PtrSection->PtrSection != NULL) {\r
- DEBUG((DEBUG_VERBOSE, "Section - %a\n", PtrSection->PtrSection));\r
+ DEBUG ((DEBUG_VERBOSE, "Section - %a\n", PtrSection->PtrSection));\r
}\r
+\r
if (PtrSection->PtrEntry != NULL) {\r
DEBUG ((DEBUG_VERBOSE, " Entry - %a\n", PtrSection->PtrEntry));\r
}\r
+\r
if (PtrSection->PtrValue != NULL) {\r
- DEBUG((DEBUG_VERBOSE, " Value - %a\n", PtrSection->PtrValue));\r
+ DEBUG ((DEBUG_VERBOSE, " Value - %a\n", PtrSection->PtrValue));\r
}\r
}\r
}\r
**/\r
EFI_STATUS\r
ProfileGetLine (\r
- IN UINT8 *Buffer,\r
- IN UINTN BufferSize,\r
- IN OUT UINT8 *LineBuffer,\r
- IN OUT UINTN *LineSize\r
+ IN UINT8 *Buffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT UINT8 *LineBuffer,\r
+ IN OUT UINTN *LineSize\r
)\r
{\r
- UINTN Length;\r
- UINT8 *PtrBuf;\r
- UINTN PtrEnd;\r
+ UINTN Length;\r
+ UINT8 *PtrBuf;\r
+ UINTN PtrEnd;\r
\r
- PtrBuf = Buffer;\r
- PtrEnd = (UINTN)Buffer + BufferSize;\r
+ PtrBuf = Buffer;\r
+ PtrEnd = (UINTN)Buffer + BufferSize;\r
\r
//\r
// 0x0D indicates a line break. Otherwise there is no line break\r
//\r
while ((UINTN)PtrBuf < PtrEnd) {\r
- if (*PtrBuf == 0x0D || *PtrBuf == 0x0A) {\r
+ if ((*PtrBuf == 0x0D) || (*PtrBuf == 0x0A)) {\r
break;\r
}\r
+\r
PtrBuf++;\r
}\r
\r
// The buffer ends without any line break\r
// or it is the last character of the buffer\r
//\r
- Length = BufferSize;\r
+ Length = BufferSize;\r
} else if (*(PtrBuf + 1) == 0x0A) {\r
//\r
// Further check if a 0x0A follows. If yes, count 0xA\r
//\r
- Length = (UINTN) PtrBuf - (UINTN) Buffer + 2;\r
+ Length = (UINTN)PtrBuf - (UINTN)Buffer + 2;\r
} else {\r
- Length = (UINTN) PtrBuf - (UINTN) Buffer + 1;\r
+ Length = (UINTN)PtrBuf - (UINTN)Buffer + 1;\r
}\r
\r
if (Length > (*LineSize)) {\r
}\r
\r
SetMem (LineBuffer, *LineSize, 0x0);\r
- *LineSize = Length;\r
+ *LineSize = Length;\r
CopyMem (LineBuffer, Buffer, Length);\r
\r
return EFI_SUCCESS;\r
**/\r
VOID\r
ProfileTrim (\r
- IN OUT UINT8 *Buffer,\r
- IN OUT UINTN *BufferSize\r
+ IN OUT UINT8 *Buffer,\r
+ IN OUT UINTN *BufferSize\r
)\r
{\r
- UINTN Length;\r
- UINT8 *PtrBuf;\r
- UINT8 *PtrEnd;\r
+ UINTN Length;\r
+ UINT8 *PtrBuf;\r
+ UINT8 *PtrEnd;\r
\r
if (*BufferSize == 0) {\r
return;\r
//\r
// Trim the tail first, include CR, LF, TAB, and SPACE.\r
//\r
- Length = *BufferSize;\r
- PtrBuf = (UINT8 *) ((UINTN) Buffer + Length - 1);\r
+ Length = *BufferSize;\r
+ PtrBuf = (UINT8 *)((UINTN)Buffer + Length - 1);\r
while (PtrBuf >= Buffer) {\r
- if ((*PtrBuf != 0x0D) && (*PtrBuf != 0x0A )\r
- && (*PtrBuf != 0x20) && (*PtrBuf != 0x09)) {\r
+ if ( (*PtrBuf != 0x0D) && (*PtrBuf != 0x0A)\r
+ && (*PtrBuf != 0x20) && (*PtrBuf != 0x09))\r
+ {\r
break;\r
}\r
- PtrBuf --;\r
+\r
+ PtrBuf--;\r
}\r
\r
//\r
// all spaces, a blank line, return directly;\r
//\r
if (PtrBuf < Buffer) {\r
- *BufferSize = 0;\r
+ *BufferSize = 0;\r
return;\r
}\r
\r
- Length = (UINTN)PtrBuf - (UINTN)Buffer + 1;\r
- PtrEnd = PtrBuf;\r
- PtrBuf = Buffer;\r
+ Length = (UINTN)PtrBuf - (UINTN)Buffer + 1;\r
+ PtrEnd = PtrBuf;\r
+ PtrBuf = Buffer;\r
\r
//\r
// Now skip the heading CR, LF, TAB and SPACE\r
//\r
while (PtrBuf <= PtrEnd) {\r
- if ((*PtrBuf != 0x0D) && (*PtrBuf != 0x0A )\r
- && (*PtrBuf != 0x20) && (*PtrBuf != 0x09)) {\r
+ if ( (*PtrBuf != 0x0D) && (*PtrBuf != 0x0A)\r
+ && (*PtrBuf != 0x20) && (*PtrBuf != 0x09))\r
+ {\r
break;\r
}\r
+\r
PtrBuf++;\r
}\r
\r
// If no heading CR, LF, TAB or SPACE, directly return\r
//\r
if (PtrBuf == Buffer) {\r
- *BufferSize = Length;\r
+ *BufferSize = Length;\r
return;\r
}\r
\r
- *BufferSize = (UINTN)PtrEnd - (UINTN)PtrBuf + 1;\r
+ *BufferSize = (UINTN)PtrEnd - (UINTN)PtrBuf + 1;\r
\r
//\r
// The first Buffer..PtrBuf characters are CR, LF, TAB or SPACE.\r
// Now move out all these characters.\r
//\r
while (PtrBuf <= PtrEnd) {\r
- *Buffer = *PtrBuf;\r
+ *Buffer = *PtrBuf;\r
Buffer++;\r
PtrBuf++;\r
}\r
**/\r
EFI_STATUS\r
ProfileGetComments (\r
- IN UINT8 *Buffer,\r
- IN UINTN BufferSize,\r
- IN OUT COMMENT_LINE **CommentHead\r
+ IN UINT8 *Buffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT COMMENT_LINE **CommentHead\r
)\r
{\r
- COMMENT_LINE *CommentItem;\r
+ COMMENT_LINE *CommentItem;\r
\r
CommentItem = NULL;\r
CommentItem = AllocatePool (sizeof (COMMENT_LINE));\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- CommentItem->PtrNext = *CommentHead;\r
- *CommentHead = CommentItem;\r
+ CommentItem->PtrNext = *CommentHead;\r
+ *CommentHead = CommentItem;\r
\r
//\r
// Add a trailing '\0'\r
FreePool (CommentItem);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
CopyMem (CommentItem->PtrComment, Buffer, BufferSize);\r
*(CommentItem->PtrComment + BufferSize) = '\0';\r
\r
**/\r
EFI_STATUS\r
ProfileGetSection (\r
- IN UINT8 *Buffer,\r
- IN UINTN BufferSize,\r
- IN OUT SECTION_ITEM **SectionHead\r
+ IN UINT8 *Buffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT SECTION_ITEM **SectionHead\r
)\r
{\r
- SECTION_ITEM *SectionItem;\r
- UINTN Length;\r
- UINT8 *PtrBuf;\r
- UINT8 *PtrEnd;\r
+ SECTION_ITEM *SectionItem;\r
+ UINTN Length;\r
+ UINT8 *PtrBuf;\r
+ UINT8 *PtrEnd;\r
\r
- ASSERT(BufferSize >= 1);\r
+ ASSERT (BufferSize >= 1);\r
//\r
// The first character of Buffer is '[', now we want for ']'\r
//\r
- PtrEnd = (UINT8 *)((UINTN)Buffer + BufferSize - 1);\r
- PtrBuf = (UINT8 *)((UINTN)Buffer + 1);\r
+ PtrEnd = (UINT8 *)((UINTN)Buffer + BufferSize - 1);\r
+ PtrBuf = (UINT8 *)((UINTN)Buffer + 1);\r
while (PtrBuf <= PtrEnd) {\r
if (*PtrBuf == ']') {\r
break;\r
}\r
- PtrBuf ++;\r
+\r
+ PtrBuf++;\r
}\r
+\r
if (PtrBuf > PtrEnd) {\r
//\r
// Not found. Invalid line\r
//\r
return EFI_NOT_FOUND;\r
}\r
+\r
if (PtrBuf <= Buffer + 1) {\r
// Empty name\r
return EFI_NOT_FOUND;\r
//\r
// excluding the heading '[' and tailing ']'\r
//\r
- Length = PtrBuf - Buffer - 1;\r
+ Length = PtrBuf - Buffer - 1;\r
ProfileTrim (\r
Buffer + 1,\r
&Length\r
- );\r
+ );\r
\r
//\r
// Invalid line if the section name is null\r
return EFI_NOT_FOUND;\r
}\r
\r
- if (!IsValidName((CHAR8 *)Buffer + 1, Length)) {\r
+ if (!IsValidName ((CHAR8 *)Buffer + 1, Length)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
**/\r
EFI_STATUS\r
ProfileGetEntry (\r
- IN UINT8 *Buffer,\r
- IN UINTN BufferSize,\r
- IN OUT SECTION_ITEM **SectionHead\r
+ IN UINT8 *Buffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT SECTION_ITEM **SectionHead\r
)\r
{\r
- EFI_STATUS Status;\r
- SECTION_ITEM *SectionItem;\r
- SECTION_ITEM *PtrSection;\r
- UINTN Length;\r
- UINT8 *PtrBuf;\r
- UINT8 *PtrEnd;\r
+ EFI_STATUS Status;\r
+ SECTION_ITEM *SectionItem;\r
+ SECTION_ITEM *PtrSection;\r
+ UINTN Length;\r
+ UINT8 *PtrBuf;\r
+ UINT8 *PtrEnd;\r
\r
- Status = EFI_SUCCESS;\r
- PtrBuf = Buffer;\r
- PtrEnd = (UINT8 *) ((UINTN)Buffer + BufferSize - 1);\r
+ Status = EFI_SUCCESS;\r
+ PtrBuf = Buffer;\r
+ PtrEnd = (UINT8 *)((UINTN)Buffer + BufferSize - 1);\r
\r
//\r
// First search for '='\r
if (*PtrBuf == '=') {\r
break;\r
}\r
+\r
PtrBuf++;\r
}\r
+\r
if (PtrBuf > PtrEnd) {\r
//\r
// Not found. Invalid line\r
//\r
return EFI_NOT_FOUND;\r
}\r
+\r
if (PtrBuf <= Buffer) {\r
// Empty name\r
return EFI_NOT_FOUND;\r
//\r
// excluding the tailing '='\r
//\r
- Length = PtrBuf - Buffer;\r
+ Length = PtrBuf - Buffer;\r
ProfileTrim (\r
Buffer,\r
&Length\r
- );\r
+ );\r
\r
//\r
// Invalid line if the entry name is null\r
return EFI_NOT_FOUND;\r
}\r
\r
- if (!IsValidName((CHAR8 *)Buffer, Length)) {\r
+ if (!IsValidName ((CHAR8 *)Buffer, Length)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if (*SectionHead == NULL) {\r
return Status;\r
}\r
- PtrSection = *SectionHead;\r
+\r
+ PtrSection = *SectionHead;\r
\r
SectionItem = AllocatePool (sizeof (SECTION_ITEM));\r
if (SectionItem == NULL) {\r
if (SectionItem->PtrSection == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
CopyMem (SectionItem->PtrSection, PtrSection->PtrSection, PtrSection->SecNameLen + 1);\r
\r
//\r
//\r
SectionItem->PtrEntry = AllocatePool (Length + 1);\r
if (SectionItem->PtrEntry == NULL) {\r
- FreePool(SectionItem->PtrSection);\r
+ FreePool (SectionItem->PtrSection);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
CopyMem (SectionItem->PtrEntry, Buffer, Length);\r
*(SectionItem->PtrEntry + Length) = '\0';\r
\r
//\r
// Next search for '#' or ';'\r
//\r
- PtrBuf = PtrBuf + 1;\r
- Buffer = PtrBuf;\r
+ PtrBuf = PtrBuf + 1;\r
+ Buffer = PtrBuf;\r
while (PtrBuf <= PtrEnd) {\r
- if (*PtrBuf == '#' || *PtrBuf == ';') {\r
+ if ((*PtrBuf == '#') || (*PtrBuf == ';')) {\r
break;\r
}\r
+\r
PtrBuf++;\r
}\r
+\r
if (PtrBuf <= Buffer) {\r
// Empty name\r
- FreePool(SectionItem->PtrEntry);\r
- FreePool(SectionItem->PtrSection);\r
+ FreePool (SectionItem->PtrEntry);\r
+ FreePool (SectionItem->PtrSection);\r
return EFI_NOT_FOUND;\r
}\r
- Length = PtrBuf - Buffer;\r
+\r
+ Length = PtrBuf - Buffer;\r
ProfileTrim (\r
Buffer,\r
&Length\r
- );\r
+ );\r
\r
//\r
// Invalid line if the entry value is null\r
//\r
if (Length == 0) {\r
- FreePool(SectionItem->PtrEntry);\r
- FreePool(SectionItem->PtrSection);\r
+ FreePool (SectionItem->PtrEntry);\r
+ FreePool (SectionItem->PtrSection);\r
return EFI_NOT_FOUND;\r
}\r
\r
- if (!IsValidValue((CHAR8 *)Buffer, Length)) {\r
- FreePool(SectionItem->PtrEntry);\r
- FreePool(SectionItem->PtrSection);\r
+ if (!IsValidValue ((CHAR8 *)Buffer, Length)) {\r
+ FreePool (SectionItem->PtrEntry);\r
+ FreePool (SectionItem->PtrSection);\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
SectionItem->PtrValue = AllocatePool (Length + 1);\r
if (SectionItem->PtrValue == NULL) {\r
- FreePool(SectionItem->PtrEntry);\r
- FreePool(SectionItem->PtrSection);\r
+ FreePool (SectionItem->PtrEntry);\r
+ FreePool (SectionItem->PtrSection);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
CopyMem (SectionItem->PtrValue, Buffer, Length);\r
*(SectionItem->PtrValue + Length) = '\0';\r
\r
**/\r
VOID\r
FreeAllList (\r
- IN SECTION_ITEM *Section,\r
- IN COMMENT_LINE *Comment\r
+ IN SECTION_ITEM *Section,\r
+ IN COMMENT_LINE *Comment\r
)\r
{\r
- SECTION_ITEM *PtrSection;\r
- COMMENT_LINE *PtrComment;\r
+ SECTION_ITEM *PtrSection;\r
+ COMMENT_LINE *PtrComment;\r
\r
while (Section != NULL) {\r
- PtrSection = Section;\r
- Section = Section->PtrNext;\r
+ PtrSection = Section;\r
+ Section = Section->PtrNext;\r
if (PtrSection->PtrEntry != NULL) {\r
FreePool (PtrSection->PtrEntry);\r
}\r
+\r
if (PtrSection->PtrSection != NULL) {\r
FreePool (PtrSection->PtrSection);\r
}\r
+\r
if (PtrSection->PtrValue != NULL) {\r
FreePool (PtrSection->PtrValue);\r
}\r
+\r
FreePool (PtrSection);\r
}\r
\r
while (Comment != NULL) {\r
- PtrComment = Comment;\r
- Comment = Comment->PtrNext;\r
+ PtrComment = Comment;\r
+ Comment = Comment->PtrNext;\r
if (PtrComment->PtrComment != NULL) {\r
FreePool (PtrComment->PtrComment);\r
}\r
+\r
FreePool (PtrComment);\r
}\r
\r
**/\r
EFI_STATUS\r
UpdateGetProfileString (\r
- IN SECTION_ITEM *Section,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT CHAR8 **EntryValue\r
+ IN SECTION_ITEM *Section,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT CHAR8 **EntryValue\r
)\r
{\r
- *EntryValue = NULL;\r
+ *EntryValue = NULL;\r
\r
while (Section != NULL) {\r
- if (AsciiStrCmp ((CONST CHAR8 *) Section->PtrSection, (CONST CHAR8 *) SectionName) == 0) {\r
+ if (AsciiStrCmp ((CONST CHAR8 *)Section->PtrSection, (CONST CHAR8 *)SectionName) == 0) {\r
if (Section->PtrEntry != NULL) {\r
- if (AsciiStrCmp ((CONST CHAR8 *) Section->PtrEntry, (CONST CHAR8 *) EntryName) == 0) {\r
+ if (AsciiStrCmp ((CONST CHAR8 *)Section->PtrEntry, (CONST CHAR8 *)EntryName) == 0) {\r
break;\r
}\r
}\r
}\r
- Section = Section->PtrNext;\r
+\r
+ Section = Section->PtrNext;\r
}\r
\r
if (Section == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
\r
- *EntryValue = Section->PtrValue;\r
+ *EntryValue = Section->PtrValue;\r
\r
return EFI_SUCCESS;\r
}\r
**/\r
EFI_STATUS\r
PreProcessDataFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize,\r
- IN OUT SECTION_ITEM **SectionHead,\r
- IN OUT COMMENT_LINE **CommentHead\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT SECTION_ITEM **SectionHead,\r
+ IN OUT COMMENT_LINE **CommentHead\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR8 *Source;\r
- CHAR8 *CurrentPtr;\r
- CHAR8 *BufferEnd;\r
- CHAR8 *PtrLine;\r
- UINTN LineLength;\r
- UINTN SourceLength;\r
- UINTN MaxLineLength;\r
-\r
- *SectionHead = NULL;\r
- *CommentHead = NULL;\r
- BufferEnd = (CHAR8 *) ( (UINTN) DataBuffer + BufferSize);\r
- CurrentPtr = (CHAR8 *) DataBuffer;\r
- MaxLineLength = MAX_LINE_LENGTH;\r
- Status = EFI_SUCCESS;\r
+ EFI_STATUS Status;\r
+ CHAR8 *Source;\r
+ CHAR8 *CurrentPtr;\r
+ CHAR8 *BufferEnd;\r
+ CHAR8 *PtrLine;\r
+ UINTN LineLength;\r
+ UINTN SourceLength;\r
+ UINTN MaxLineLength;\r
+\r
+ *SectionHead = NULL;\r
+ *CommentHead = NULL;\r
+ BufferEnd = (CHAR8 *)((UINTN)DataBuffer + BufferSize);\r
+ CurrentPtr = (CHAR8 *)DataBuffer;\r
+ MaxLineLength = MAX_LINE_LENGTH;\r
+ Status = EFI_SUCCESS;\r
\r
PtrLine = AllocatePool (MaxLineLength);\r
if (PtrLine == NULL) {\r
}\r
\r
while (CurrentPtr < BufferEnd) {\r
- Source = CurrentPtr;\r
- SourceLength = (UINTN)BufferEnd - (UINTN)CurrentPtr;\r
- LineLength = MaxLineLength;\r
+ Source = CurrentPtr;\r
+ SourceLength = (UINTN)BufferEnd - (UINTN)CurrentPtr;\r
+ LineLength = MaxLineLength;\r
//\r
// With the assumption that line length is less than 512\r
// characters. Otherwise BUFFER_TOO_SMALL will be returned.\r
//\r
- Status = ProfileGetLine (\r
- (UINT8 *) Source,\r
- SourceLength,\r
- (UINT8 *) PtrLine,\r
- &LineLength\r
- );\r
+ Status = ProfileGetLine (\r
+ (UINT8 *)Source,\r
+ SourceLength,\r
+ (UINT8 *)PtrLine,\r
+ &LineLength\r
+ );\r
if (EFI_ERROR (Status)) {\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
//\r
// to the returned LineLength and try again.\r
//\r
FreePool (PtrLine);\r
- PtrLine = NULL;\r
+ PtrLine = NULL;\r
PtrLine = AllocatePool (LineLength);\r
if (PtrLine == NULL) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
break;\r
}\r
- SourceLength = LineLength;\r
- Status = ProfileGetLine (\r
- (UINT8 *) Source,\r
- SourceLength,\r
- (UINT8 *) PtrLine,\r
- &LineLength\r
- );\r
+\r
+ SourceLength = LineLength;\r
+ Status = ProfileGetLine (\r
+ (UINT8 *)Source,\r
+ SourceLength,\r
+ (UINT8 *)PtrLine,\r
+ &LineLength\r
+ );\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
- MaxLineLength = LineLength;\r
+\r
+ MaxLineLength = LineLength;\r
} else {\r
break;\r
}\r
}\r
- CurrentPtr = (CHAR8 *) ( (UINTN) CurrentPtr + LineLength);\r
+\r
+ CurrentPtr = (CHAR8 *)((UINTN)CurrentPtr + LineLength);\r
\r
//\r
// Line got. Trim the line before processing it.\r
//\r
ProfileTrim (\r
- (UINT8 *) PtrLine,\r
+ (UINT8 *)PtrLine,\r
&LineLength\r
- );\r
+ );\r
\r
//\r
// Blank line\r
continue;\r
}\r
\r
- if (PtrLine[0] == '#' || PtrLine[0] == ';') {\r
- Status = ProfileGetComments (\r
- (UINT8 *) PtrLine,\r
- LineLength,\r
- CommentHead\r
- );\r
+ if ((PtrLine[0] == '#') || (PtrLine[0] == ';')) {\r
+ Status = ProfileGetComments (\r
+ (UINT8 *)PtrLine,\r
+ LineLength,\r
+ CommentHead\r
+ );\r
} else if (PtrLine[0] == '[') {\r
- Status = ProfileGetSection (\r
- (UINT8 *) PtrLine,\r
- LineLength,\r
- SectionHead\r
- );\r
+ Status = ProfileGetSection (\r
+ (UINT8 *)PtrLine,\r
+ LineLength,\r
+ SectionHead\r
+ );\r
} else {\r
- Status = ProfileGetEntry (\r
- (UINT8 *) PtrLine,\r
- LineLength,\r
- SectionHead\r
- );\r
+ Status = ProfileGetEntry (\r
+ (UINT8 *)PtrLine,\r
+ LineLength,\r
+ SectionHead\r
+ );\r
}\r
\r
if (EFI_ERROR (Status)) {\r
VOID *\r
EFIAPI\r
OpenIniFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
- EFI_STATUS Status;\r
- INI_PARSING_LIB_CONTEXT *IniContext;\r
+ EFI_STATUS Status;\r
+ INI_PARSING_LIB_CONTEXT *IniContext;\r
\r
- if (DataBuffer == NULL || BufferSize == 0) {\r
+ if ((DataBuffer == NULL) || (BufferSize == 0)) {\r
return NULL;\r
}\r
\r
- IniContext = AllocateZeroPool(sizeof(INI_PARSING_LIB_CONTEXT));\r
+ IniContext = AllocateZeroPool (sizeof (INI_PARSING_LIB_CONTEXT));\r
if (IniContext == NULL) {\r
return NULL;\r
}\r
&IniContext->SectionHead,\r
&IniContext->CommentHead\r
);\r
- if (EFI_ERROR(Status)) {\r
- FreePool(IniContext);\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (IniContext);\r
return NULL;\r
}\r
+\r
DEBUG_CODE_BEGIN ();\r
- DumpIniSection(IniContext);\r
+ DumpIniSection (IniContext);\r
DEBUG_CODE_END ();\r
return IniContext;\r
}\r
**/\r
EFI_STATUS\r
EFIAPI\r
-GetStringFromDataFile(\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT CHAR8 **EntryValue\r
+GetStringFromDataFile (\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT CHAR8 **EntryValue\r
)\r
{\r
- INI_PARSING_LIB_CONTEXT *IniContext;\r
- EFI_STATUS Status;\r
+ INI_PARSING_LIB_CONTEXT *IniContext;\r
+ EFI_STATUS Status;\r
\r
- if (Context == NULL || SectionName == NULL || EntryName == NULL || EntryValue == NULL) {\r
+ if ((Context == NULL) || (SectionName == NULL) || (EntryName == NULL) || (EntryValue == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
IniContext = Context;\r
\r
- *EntryValue = NULL;\r
- Status = UpdateGetProfileString (\r
- IniContext->SectionHead,\r
- SectionName,\r
- EntryName,\r
- EntryValue\r
- );\r
+ *EntryValue = NULL;\r
+ Status = UpdateGetProfileString (\r
+ IniContext->SectionHead,\r
+ SectionName,\r
+ EntryName,\r
+ EntryValue\r
+ );\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
GetGuidFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT EFI_GUID *Guid\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT EFI_GUID *Guid\r
)\r
{\r
- CHAR8 *Value;\r
- EFI_STATUS Status;\r
- RETURN_STATUS RStatus;\r
+ CHAR8 *Value;\r
+ EFI_STATUS Status;\r
+ RETURN_STATUS RStatus;\r
\r
- if (Context == NULL || SectionName == NULL || EntryName == NULL || Guid == NULL) {\r
+ if ((Context == NULL) || (SectionName == NULL) || (EntryName == NULL) || (Guid == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
SectionName,\r
EntryName,\r
&Value\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
ASSERT (Value != NULL);\r
RStatus = AsciiStrToGuid (Value, Guid);\r
if (RETURN_ERROR (RStatus) || (Value[GUID_STRING_LENGTH] != '\0')) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
GetDecimalUintnFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINTN *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINTN *Data\r
)\r
{\r
- CHAR8 *Value;\r
- EFI_STATUS Status;\r
+ CHAR8 *Value;\r
+ EFI_STATUS Status;\r
\r
- if (Context == NULL || SectionName == NULL || EntryName == NULL || Data == NULL) {\r
+ if ((Context == NULL) || (SectionName == NULL) || (EntryName == NULL) || (Data == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
SectionName,\r
EntryName,\r
&Value\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
ASSERT (Value != NULL);\r
- if (!IsValidDecimalString(Value, AsciiStrLen(Value))) {\r
+ if (!IsValidDecimalString (Value, AsciiStrLen (Value))) {\r
return EFI_NOT_FOUND;\r
}\r
- *Data = AsciiStrDecimalToUintn(Value);\r
+\r
+ *Data = AsciiStrDecimalToUintn (Value);\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
GetHexUintnFromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINTN *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINTN *Data\r
)\r
{\r
- CHAR8 *Value;\r
- EFI_STATUS Status;\r
+ CHAR8 *Value;\r
+ EFI_STATUS Status;\r
\r
- if (Context == NULL || SectionName == NULL || EntryName == NULL || Data == NULL) {\r
+ if ((Context == NULL) || (SectionName == NULL) || (EntryName == NULL) || (Data == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
SectionName,\r
EntryName,\r
&Value\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
ASSERT (Value != NULL);\r
- if (!IsValidHexString(Value, AsciiStrLen(Value))) {\r
+ if (!IsValidHexString (Value, AsciiStrLen (Value))) {\r
return EFI_NOT_FOUND;\r
}\r
- *Data = AsciiStrHexToUintn(Value);\r
+\r
+ *Data = AsciiStrHexToUintn (Value);\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
GetHexUint64FromDataFile (\r
- IN VOID *Context,\r
- IN CHAR8 *SectionName,\r
- IN CHAR8 *EntryName,\r
- OUT UINT64 *Data\r
+ IN VOID *Context,\r
+ IN CHAR8 *SectionName,\r
+ IN CHAR8 *EntryName,\r
+ OUT UINT64 *Data\r
)\r
{\r
- CHAR8 *Value;\r
- EFI_STATUS Status;\r
+ CHAR8 *Value;\r
+ EFI_STATUS Status;\r
\r
- if (Context == NULL || SectionName == NULL || EntryName == NULL || Data == NULL) {\r
+ if ((Context == NULL) || (SectionName == NULL) || (EntryName == NULL) || (Data == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
SectionName,\r
EntryName,\r
&Value\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
ASSERT (Value != NULL);\r
- if (!IsValidHexString(Value, AsciiStrLen(Value))) {\r
+ if (!IsValidHexString (Value, AsciiStrLen (Value))) {\r
return EFI_NOT_FOUND;\r
}\r
- *Data = AsciiStrHexToUint64(Value);\r
+\r
+ *Data = AsciiStrHexToUint64 (Value);\r
return EFI_SUCCESS;\r
}\r
\r
VOID\r
EFIAPI\r
CloseIniFile (\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
- INI_PARSING_LIB_CONTEXT *IniContext;\r
+ INI_PARSING_LIB_CONTEXT *IniContext;\r
\r
if (Context == NULL) {\r
- return ;\r
+ return;\r
}\r
\r
IniContext = Context;\r
- FreeAllList(IniContext->SectionHead, IniContext->CommentHead);\r
+ FreeAllList (IniContext->SectionHead, IniContext->CommentHead);\r
\r
return;\r
}\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/PlatformFlashAccessLib.h>\r
\r
-UINT64 mInternalFdAddress;\r
+UINT64 mInternalFdAddress;\r
\r
/**\r
Perform flash write operation with progress indicator. The start and end\r
if (FlashAddressType == FlashAddressTypeRelativeAddress) {\r
FlashAddress = FlashAddress + mInternalFdAddress;\r
}\r
- CopyMem((VOID *)(UINTN)(FlashAddress), Buffer, Length);\r
+\r
+ CopyMem ((VOID *)(UINTN)(FlashAddress), Buffer, Length);\r
return EFI_SUCCESS;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
PerformFlashWrite (\r
- IN PLATFORM_FIRMWARE_TYPE FirmwareType,\r
- IN EFI_PHYSICAL_ADDRESS FlashAddress,\r
- IN FLASH_ADDRESS_TYPE FlashAddressType,\r
- IN VOID *Buffer,\r
- IN UINTN Length\r
+ IN PLATFORM_FIRMWARE_TYPE FirmwareType,\r
+ IN EFI_PHYSICAL_ADDRESS FlashAddress,\r
+ IN FLASH_ADDRESS_TYPE FlashAddressType,\r
+ IN VOID *Buffer,\r
+ IN UINTN Length\r
)\r
{\r
return PerformFlashWriteWithProgress (\r
#include <Library/IniParsingLib.h>\r
#include <Library/PrintLib.h>\r
\r
-#define MAX_LINE_LENGTH 512\r
+#define MAX_LINE_LENGTH 512\r
\r
/**\r
Parse Config data file to get the updated data array.\r
**/\r
EFI_STATUS\r
ParseRecoveryDataFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize,\r
- IN OUT CONFIG_HEADER *ConfigHeader,\r
- IN OUT RECOVERY_CONFIG_DATA **RecoveryArray\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT CONFIG_HEADER *ConfigHeader,\r
+ IN OUT RECOVERY_CONFIG_DATA **RecoveryArray\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR8 *SectionName;\r
- CHAR8 Entry[MAX_LINE_LENGTH];\r
- UINTN Num;\r
- UINTN Index;\r
- EFI_GUID FileGuid;\r
- VOID *Context;\r
+ EFI_STATUS Status;\r
+ CHAR8 *SectionName;\r
+ CHAR8 Entry[MAX_LINE_LENGTH];\r
+ UINTN Num;\r
+ UINTN Index;\r
+ EFI_GUID FileGuid;\r
+ VOID *Context;\r
\r
//\r
// First process the data buffer and get all sections and entries\r
//\r
- Context = OpenIniFile(DataBuffer, BufferSize);\r
+ Context = OpenIniFile (DataBuffer, BufferSize);\r
if (Context == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// Now get NumOfUpdate\r
//\r
- Status = GetDecimalUintnFromDataFile(\r
+ Status = GetDecimalUintnFromDataFile (\r
Context,\r
"Head",\r
"NumOfRecovery",\r
&Num\r
);\r
- if (EFI_ERROR(Status) || (Num == 0)) {\r
- DEBUG((DEBUG_ERROR, "NumOfRecovery not found\n"));\r
- CloseIniFile(Context);\r
+ if (EFI_ERROR (Status) || (Num == 0)) {\r
+ DEBUG ((DEBUG_ERROR, "NumOfRecovery not found\n"));\r
+ CloseIniFile (Context);\r
return EFI_NOT_FOUND;\r
}\r
\r
ConfigHeader->NumOfRecovery = Num;\r
- *RecoveryArray = AllocateZeroPool ((sizeof (RECOVERY_CONFIG_DATA) * Num));\r
+ *RecoveryArray = AllocateZeroPool ((sizeof (RECOVERY_CONFIG_DATA) * Num));\r
if (*RecoveryArray == NULL) {\r
- CloseIniFile(Context);\r
+ CloseIniFile (Context);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- for (Index = 0 ; Index < ConfigHeader->NumOfRecovery; Index++) {\r
+ for (Index = 0; Index < ConfigHeader->NumOfRecovery; Index++) {\r
//\r
// Get the section name of each update\r
//\r
Index,\r
0\r
);\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
"Head",\r
Entry,\r
&SectionName\r
);\r
- if (EFI_ERROR(Status) || (SectionName == NULL)) {\r
- DEBUG((DEBUG_ERROR, "[%d] %a not found\n", Index, Entry));\r
- CloseIniFile(Context);\r
+ if (EFI_ERROR (Status) || (SectionName == NULL)) {\r
+ DEBUG ((DEBUG_ERROR, "[%d] %a not found\n", Index, Entry));\r
+ CloseIniFile (Context);\r
return EFI_NOT_FOUND;\r
}\r
\r
//\r
// FileGuid\r
//\r
- Status = GetGuidFromDataFile(\r
+ Status = GetGuidFromDataFile (\r
Context,\r
SectionName,\r
"FileGuid",\r
&FileGuid\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] FileGuid not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] FileGuid not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
\r
- CopyGuid(&((*RecoveryArray)[Index].FileGuid), &FileGuid);\r
+ CopyGuid (&((*RecoveryArray)[Index].FileGuid), &FileGuid);\r
\r
//\r
// Length\r
//\r
- Status = GetHexUintnFromDataFile(\r
+ Status = GetHexUintnFromDataFile (\r
Context,\r
SectionName,\r
"Length",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] Length not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] Length not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
+\r
(*RecoveryArray)[Index].Length = Num;\r
\r
//\r
// ImageOffset\r
//\r
- Status = GetHexUintnFromDataFile(\r
+ Status = GetHexUintnFromDataFile (\r
Context,\r
SectionName,\r
"ImageOffset",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] ImageOffset not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] ImageOffset not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
+\r
(*RecoveryArray)[Index].ImageOffset = Num;\r
}\r
\r
//\r
// Now all configuration data got. Free those temporary buffers\r
//\r
- CloseIniFile(Context);\r
+ CloseIniFile (Context);\r
\r
return EFI_SUCCESS;\r
}\r
-\r
EFI_STATUS\r
EFIAPI\r
LoadRecoveryCapsule (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_RECOVERY_MODULE_PPI *This\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_RECOVERY_MODULE_PPI *This\r
);\r
\r
-EFI_PEI_RECOVERY_MODULE_PPI mRecoveryPpi = {\r
+EFI_PEI_RECOVERY_MODULE_PPI mRecoveryPpi = {\r
LoadRecoveryCapsule\r
};\r
\r
-EFI_PEI_PPI_DESCRIPTOR mRecoveryPpiList = {\r
+EFI_PEI_PPI_DESCRIPTOR mRecoveryPpiList = {\r
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
&gEfiPeiRecoveryModulePpiGuid,\r
&mRecoveryPpi\r
**/\r
EFI_STATUS\r
ParseRecoveryDataFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize,\r
- IN OUT CONFIG_HEADER *ConfigHeader,\r
- IN OUT RECOVERY_CONFIG_DATA **RecoveryArray\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT CONFIG_HEADER *ConfigHeader,\r
+ IN OUT RECOVERY_CONFIG_DATA **RecoveryArray\r
);\r
\r
/**\r
**/\r
BOOLEAN\r
IsSystemFmpImage (\r
- IN EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *FmpImageHeader\r
+ IN EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *FmpImageHeader\r
)\r
{\r
- GUID *Guid;\r
- UINTN Count;\r
- UINTN Index;\r
+ GUID *Guid;\r
+ UINTN Count;\r
+ UINTN Index;\r
\r
- Guid = PcdGetPtr(PcdSystemFmpCapsuleImageTypeIdGuid);\r
- Count = PcdGetSize(PcdSystemFmpCapsuleImageTypeIdGuid) / sizeof(GUID);\r
+ Guid = PcdGetPtr (PcdSystemFmpCapsuleImageTypeIdGuid);\r
+ Count = PcdGetSize (PcdSystemFmpCapsuleImageTypeIdGuid) / sizeof (GUID);\r
\r
for (Index = 0; Index < Count; Index++, Guid++) {\r
- if (CompareGuid(&FmpImageHeader->UpdateImageTypeId, Guid)) {\r
+ if (CompareGuid (&FmpImageHeader->UpdateImageTypeId, Guid)) {\r
return TRUE;\r
}\r
}\r
IN EFI_GUID *CapsuleGuid\r
)\r
{\r
- if (CompareGuid(&gEfiFmpCapsuleGuid, CapsuleGuid)) {\r
+ if (CompareGuid (&gEfiFmpCapsuleGuid, CapsuleGuid)) {\r
return TRUE;\r
}\r
\r
**/\r
BOOLEAN\r
IsSystemFmpCapsuleImage (\r
- IN EFI_CAPSULE_HEADER *CapsuleHeader\r
+ IN EFI_CAPSULE_HEADER *CapsuleHeader\r
)\r
{\r
- EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *FmpCapsuleHeader;\r
- EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *ImageHeader;\r
- UINT64 *ItemOffsetList;\r
- UINT32 ItemNum;\r
- UINTN Index;\r
+ EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *FmpCapsuleHeader;\r
+ EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *ImageHeader;\r
+ UINT64 *ItemOffsetList;\r
+ UINT32 ItemNum;\r
+ UINTN Index;\r
\r
- FmpCapsuleHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *) ((UINT8 *) CapsuleHeader + CapsuleHeader->HeaderSize);\r
+ FmpCapsuleHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *)((UINT8 *)CapsuleHeader + CapsuleHeader->HeaderSize);\r
\r
if (FmpCapsuleHeader->EmbeddedDriverCount != 0) {\r
return FALSE;\r
ItemOffsetList = (UINT64 *)(FmpCapsuleHeader + 1);\r
\r
for (Index = 0; Index < ItemNum; Index++) {\r
- ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[Index]);\r
- if (!IsSystemFmpImage(ImageHeader)) {\r
+ ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[Index]);\r
+ if (!IsSystemFmpImage (ImageHeader)) {\r
return FALSE;\r
}\r
}\r
if (CapsuleHeader->CapsuleImageSize != CapsuleSize) {\r
return FALSE;\r
}\r
+\r
if (CapsuleHeader->HeaderSize >= CapsuleHeader->CapsuleImageSize) {\r
return FALSE;\r
}\r
+\r
return TRUE;\r
}\r
\r
**/\r
EFI_STATUS\r
ValidateFmpCapsule (\r
- IN EFI_CAPSULE_HEADER *CapsuleHeader,\r
- OUT BOOLEAN *IsSystemFmp OPTIONAL,\r
- OUT UINT16 *EmbeddedDriverCount OPTIONAL\r
+ IN EFI_CAPSULE_HEADER *CapsuleHeader,\r
+ OUT BOOLEAN *IsSystemFmp OPTIONAL,\r
+ OUT UINT16 *EmbeddedDriverCount OPTIONAL\r
)\r
{\r
- EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *FmpCapsuleHeader;\r
- UINT8 *EndOfCapsule;\r
- EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *ImageHeader;\r
- UINT8 *EndOfPayload;\r
- UINT64 *ItemOffsetList;\r
- UINT32 ItemNum;\r
- UINTN Index;\r
- UINTN FmpCapsuleSize;\r
- UINTN FmpCapsuleHeaderSize;\r
- UINT64 FmpImageSize;\r
- UINTN FmpImageHeaderSize;\r
+ EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *FmpCapsuleHeader;\r
+ UINT8 *EndOfCapsule;\r
+ EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *ImageHeader;\r
+ UINT8 *EndOfPayload;\r
+ UINT64 *ItemOffsetList;\r
+ UINT32 ItemNum;\r
+ UINTN Index;\r
+ UINTN FmpCapsuleSize;\r
+ UINTN FmpCapsuleHeaderSize;\r
+ UINT64 FmpImageSize;\r
+ UINTN FmpImageHeaderSize;\r
\r
if (CapsuleHeader->HeaderSize >= CapsuleHeader->CapsuleImageSize) {\r
- DEBUG((DEBUG_ERROR, "HeaderSize(0x%x) >= CapsuleImageSize(0x%x)\n", CapsuleHeader->HeaderSize, CapsuleHeader->CapsuleImageSize));\r
+ DEBUG ((DEBUG_ERROR, "HeaderSize(0x%x) >= CapsuleImageSize(0x%x)\n", CapsuleHeader->HeaderSize, CapsuleHeader->CapsuleImageSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- FmpCapsuleHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *) ((UINT8 *) CapsuleHeader + CapsuleHeader->HeaderSize);\r
- EndOfCapsule = (UINT8 *) CapsuleHeader + CapsuleHeader->CapsuleImageSize;\r
+ FmpCapsuleHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *)((UINT8 *)CapsuleHeader + CapsuleHeader->HeaderSize);\r
+ EndOfCapsule = (UINT8 *)CapsuleHeader + CapsuleHeader->CapsuleImageSize;\r
FmpCapsuleSize = (UINTN)EndOfCapsule - (UINTN)FmpCapsuleHeader;\r
\r
- if (FmpCapsuleSize < sizeof(EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER)) {\r
- DEBUG((DEBUG_ERROR, "FmpCapsuleSize(0x%x) < EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER\n", FmpCapsuleSize));\r
+ if (FmpCapsuleSize < sizeof (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER)) {\r
+ DEBUG ((DEBUG_ERROR, "FmpCapsuleSize(0x%x) < EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER\n", FmpCapsuleSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// Check EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER\r
if (FmpCapsuleHeader->Version != EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION) {\r
- DEBUG((DEBUG_ERROR, "FmpCapsuleHeader->Version(0x%x) != EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION\n", FmpCapsuleHeader->Version));\r
+ DEBUG ((DEBUG_ERROR, "FmpCapsuleHeader->Version(0x%x) != EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER_INIT_VERSION\n", FmpCapsuleHeader->Version));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
ItemOffsetList = (UINT64 *)(FmpCapsuleHeader + 1);\r
\r
// No overflow\r
ItemNum = FmpCapsuleHeader->EmbeddedDriverCount + FmpCapsuleHeader->PayloadItemCount;\r
\r
- if ((FmpCapsuleSize - sizeof(EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER))/sizeof(UINT64) < ItemNum) {\r
- DEBUG((DEBUG_ERROR, "ItemNum(0x%x) too big\n", ItemNum));\r
+ if ((FmpCapsuleSize - sizeof (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER))/sizeof (UINT64) < ItemNum) {\r
+ DEBUG ((DEBUG_ERROR, "ItemNum(0x%x) too big\n", ItemNum));\r
return EFI_INVALID_PARAMETER;\r
}\r
- FmpCapsuleHeaderSize = sizeof(EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER) + sizeof(UINT64)*ItemNum;\r
+\r
+ FmpCapsuleHeaderSize = sizeof (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER) + sizeof (UINT64)*ItemNum;\r
\r
// Check ItemOffsetList\r
for (Index = 0; Index < ItemNum; Index++) {\r
if (ItemOffsetList[Index] >= FmpCapsuleSize) {\r
- DEBUG((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) >= FmpCapsuleSize(0x%x)\n", Index, ItemOffsetList[Index], FmpCapsuleSize));\r
+ DEBUG ((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) >= FmpCapsuleSize(0x%x)\n", Index, ItemOffsetList[Index], FmpCapsuleSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
if (ItemOffsetList[Index] < FmpCapsuleHeaderSize) {\r
- DEBUG((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) < FmpCapsuleHeaderSize(0x%x)\n", Index, ItemOffsetList[Index], FmpCapsuleHeaderSize));\r
+ DEBUG ((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) < FmpCapsuleHeaderSize(0x%x)\n", Index, ItemOffsetList[Index], FmpCapsuleHeaderSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
//\r
// All the address in ItemOffsetList must be stored in ascending order\r
//\r
if (Index > 0) {\r
if (ItemOffsetList[Index] <= ItemOffsetList[Index - 1]) {\r
- DEBUG((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) < ItemOffsetList[%d](0x%x)\n", Index, ItemOffsetList[Index], Index, ItemOffsetList[Index - 1]));\r
+ DEBUG ((DEBUG_ERROR, "ItemOffsetList[%d](0x%lx) < ItemOffsetList[%d](0x%x)\n", Index, ItemOffsetList[Index], Index, ItemOffsetList[Index - 1]));\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
\r
// Check EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER\r
for (Index = FmpCapsuleHeader->EmbeddedDriverCount; Index < ItemNum; Index++) {\r
- ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[Index]);\r
+ ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[Index]);\r
if (Index == ItemNum - 1) {\r
EndOfPayload = (UINT8 *)((UINTN)EndOfCapsule - (UINTN)FmpCapsuleHeader);\r
} else {\r
EndOfPayload = (UINT8 *)(UINTN)ItemOffsetList[Index+1];\r
}\r
+\r
FmpImageSize = (UINTN)EndOfPayload - ItemOffsetList[Index];\r
\r
- if (FmpImageSize < OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance)) {\r
- DEBUG((DEBUG_ERROR, "FmpImageSize(0x%lx) < EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER\n", FmpImageSize));\r
+ if (FmpImageSize < OFFSET_OF (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance)) {\r
+ DEBUG ((DEBUG_ERROR, "FmpImageSize(0x%lx) < EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER\n", FmpImageSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
- FmpImageHeaderSize = sizeof(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER);\r
+\r
+ FmpImageHeaderSize = sizeof (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER);\r
if ((ImageHeader->Version > EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER_INIT_VERSION) ||\r
- (ImageHeader->Version < 1)) {\r
- DEBUG((DEBUG_ERROR, "ImageHeader->Version(0x%x) Unknown\n", ImageHeader->Version));\r
+ (ImageHeader->Version < 1))\r
+ {\r
+ DEBUG ((DEBUG_ERROR, "ImageHeader->Version(0x%x) Unknown\n", ImageHeader->Version));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
///\r
/// Current Init ImageHeader version is 3. UpdateHardwareInstance field was added in version 2\r
/// and ImageCapsuleSupport field was added in version 3\r
///\r
if (ImageHeader->Version == 1) {\r
- FmpImageHeaderSize = OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance);\r
- } else if (ImageHeader->Version == 2){\r
- FmpImageHeaderSize = OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, ImageCapsuleSupport);\r
+ FmpImageHeaderSize = OFFSET_OF (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance);\r
+ } else if (ImageHeader->Version == 2) {\r
+ FmpImageHeaderSize = OFFSET_OF (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, ImageCapsuleSupport);\r
}\r
\r
// No overflow\r
if (FmpImageSize != (UINT64)FmpImageHeaderSize + (UINT64)ImageHeader->UpdateImageSize + (UINT64)ImageHeader->UpdateVendorCodeSize) {\r
- DEBUG((DEBUG_ERROR, "FmpImageSize(0x%lx) mismatch, UpdateImageSize(0x%x) UpdateVendorCodeSize(0x%x)\n", FmpImageSize, ImageHeader->UpdateImageSize, ImageHeader->UpdateVendorCodeSize));\r
+ DEBUG ((DEBUG_ERROR, "FmpImageSize(0x%lx) mismatch, UpdateImageSize(0x%x) UpdateVendorCodeSize(0x%x)\n", FmpImageSize, ImageHeader->UpdateImageSize, ImageHeader->UpdateVendorCodeSize));\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
//\r
EndOfPayload = (UINT8 *)(FmpCapsuleHeader + 1);\r
if (EndOfPayload != EndOfCapsule) {\r
- DEBUG((DEBUG_ERROR, "EndOfPayload(0x%x) mismatch, EndOfCapsule(0x%x)\n", EndOfPayload, EndOfCapsule));\r
+ DEBUG ((DEBUG_ERROR, "EndOfPayload(0x%x) mismatch, EndOfCapsule(0x%x)\n", EndOfPayload, EndOfCapsule));\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
return EFI_UNSUPPORTED;\r
}\r
\r
// Check in system FMP capsule\r
//\r
if (IsSystemFmp != NULL) {\r
- *IsSystemFmp = IsSystemFmpCapsuleImage(CapsuleHeader);\r
+ *IsSystemFmp = IsSystemFmpCapsuleImage (CapsuleHeader);\r
}\r
\r
if (EmbeddedDriverCount != NULL) {\r
EFI_STATUS Status;\r
UINTN BootMode;\r
\r
- BootMode = GetBootModeHob();\r
- ASSERT(BootMode == BOOT_IN_RECOVERY_MODE);\r
+ BootMode = GetBootModeHob ();\r
+ ASSERT (BootMode == BOOT_IN_RECOVERY_MODE);\r
\r
Status = (**PeiServices).InstallPpi (PeiServices, &mRecoveryPpiList);\r
ASSERT_EFI_ERROR (Status);\r
EFI_STATUS\r
EFIAPI\r
CreateHobForRecoveryCapsule (\r
- IN VOID *FvImage,\r
- IN UINTN FvImageSize\r
+ IN VOID *FvImage,\r
+ IN UINTN FvImageSize\r
)\r
{\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
//\r
// FvImage should be at its required alignment.\r
//\r
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) FvImage;\r
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)FvImage;\r
//\r
// Validate FV Header, if not as expected, return\r
//\r
if (ReadUnaligned32 (&FvHeader->Signature) != EFI_FVH_SIGNATURE) {\r
- DEBUG((DEBUG_ERROR, "CreateHobForRecoveryCapsule (Fv Signature Error)\n"));\r
+ DEBUG ((DEBUG_ERROR, "CreateHobForRecoveryCapsule (Fv Signature Error)\n"));\r
return EFI_VOLUME_CORRUPTED;\r
}\r
+\r
//\r
// If EFI_FVB2_WEAK_ALIGNMENT is set in the volume header then the first byte of the volume\r
// can be aligned on any power-of-two boundary. A weakly aligned volume can not be moved from\r
if (FvAlignment < 8) {\r
FvAlignment = 8;\r
}\r
+\r
//\r
// Allocate the aligned buffer for the FvImage.\r
//\r
- if ((UINTN) FvHeader % FvAlignment != 0) {\r
- DEBUG((DEBUG_INFO, "CreateHobForRecoveryCapsule (FvHeader 0x%lx is not aligned)\n", (UINT64)(UINTN)FvHeader));\r
+ if ((UINTN)FvHeader % FvAlignment != 0) {\r
+ DEBUG ((DEBUG_INFO, "CreateHobForRecoveryCapsule (FvHeader 0x%lx is not aligned)\n", (UINT64)(UINTN)FvHeader));\r
FvLength = ReadUnaligned64 (&FvHeader->FvLength);\r
- NewFvBuffer = AllocateAlignedPages (EFI_SIZE_TO_PAGES ((UINTN) FvLength), FvAlignment);\r
+ NewFvBuffer = AllocateAlignedPages (EFI_SIZE_TO_PAGES ((UINTN)FvLength), FvAlignment);\r
if (NewFvBuffer == NULL) {\r
- DEBUG((DEBUG_ERROR, "CreateHobForRecoveryCapsule (Not enough resource to allocate 0x%lx bytes)\n", FvLength));\r
+ DEBUG ((DEBUG_ERROR, "CreateHobForRecoveryCapsule (Not enough resource to allocate 0x%lx bytes)\n", FvLength));\r
return EFI_OUT_OF_RESOURCES;\r
}\r
- CopyMem (NewFvBuffer, FvHeader, (UINTN) FvLength);\r
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER*) NewFvBuffer;\r
+\r
+ CopyMem (NewFvBuffer, FvHeader, (UINTN)FvLength);\r
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)NewFvBuffer;\r
}\r
}\r
\r
- BuildFvHob((UINT64)(UINTN)FvHeader, FvHeader->FvLength);\r
- DEBUG((DEBUG_INFO, "BuildFvHob (FV in recovery) - 0x%lx - 0x%lx\n", (UINT64)(UINTN)FvHeader, FvHeader->FvLength));\r
+ BuildFvHob ((UINT64)(UINTN)FvHeader, FvHeader->FvLength);\r
+ DEBUG ((DEBUG_INFO, "BuildFvHob (FV in recovery) - 0x%lx - 0x%lx\n", (UINT64)(UINTN)FvHeader, FvHeader->FvLength));\r
\r
- PeiServicesInstallFvInfoPpi(\r
+ PeiServicesInstallFvInfoPpi (\r
&FvHeader->FileSystemGuid,\r
(VOID *)FvHeader,\r
(UINT32)FvHeader->FvLength,\r
**/\r
EFI_STATUS\r
RecoverImage (\r
- IN VOID *SystemFirmwareImage,\r
- IN UINTN SystemFirmwareImageSize,\r
- IN VOID *ConfigImage,\r
- IN UINTN ConfigImageSize\r
+ IN VOID *SystemFirmwareImage,\r
+ IN UINTN SystemFirmwareImageSize,\r
+ IN VOID *ConfigImage,\r
+ IN UINTN ConfigImageSize\r
)\r
{\r
- EFI_STATUS Status;\r
- RECOVERY_CONFIG_DATA *ConfigData;\r
- RECOVERY_CONFIG_DATA *RecoveryConfigData;\r
- CONFIG_HEADER ConfigHeader;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ RECOVERY_CONFIG_DATA *ConfigData;\r
+ RECOVERY_CONFIG_DATA *RecoveryConfigData;\r
+ CONFIG_HEADER ConfigHeader;\r
+ UINTN Index;\r
\r
if (ConfigImage == NULL) {\r
- DEBUG((DEBUG_INFO, "RecoverImage (NoConfig)\n"));\r
- Status = CreateHobForRecoveryCapsule(\r
+ DEBUG ((DEBUG_INFO, "RecoverImage (NoConfig)\n"));\r
+ Status = CreateHobForRecoveryCapsule (\r
SystemFirmwareImage,\r
SystemFirmwareImageSize\r
);\r
return Status;\r
}\r
\r
- ConfigData = NULL;\r
- ZeroMem (&ConfigHeader, sizeof(ConfigHeader));\r
- Status = ParseRecoveryDataFile (\r
- ConfigImage,\r
- ConfigImageSize,\r
- &ConfigHeader,\r
- &ConfigData\r
- );\r
- DEBUG((DEBUG_INFO, "ParseRecoveryDataFile - %r\n", Status));\r
- if (EFI_ERROR(Status)) {\r
+ ConfigData = NULL;\r
+ ZeroMem (&ConfigHeader, sizeof (ConfigHeader));\r
+ Status = ParseRecoveryDataFile (\r
+ ConfigImage,\r
+ ConfigImageSize,\r
+ &ConfigHeader,\r
+ &ConfigData\r
+ );\r
+ DEBUG ((DEBUG_INFO, "ParseRecoveryDataFile - %r\n", Status));\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
- DEBUG((DEBUG_INFO, "ConfigHeader.NumOfRecovery - 0x%x\n", ConfigHeader.NumOfRecovery));\r
- DEBUG((DEBUG_INFO, "PcdEdkiiSystemFirmwareFileGuid - %g\n", PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid)));\r
\r
- Index = 0;\r
+ DEBUG ((DEBUG_INFO, "ConfigHeader.NumOfRecovery - 0x%x\n", ConfigHeader.NumOfRecovery));\r
+ DEBUG ((DEBUG_INFO, "PcdEdkiiSystemFirmwareFileGuid - %g\n", PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid)));\r
+\r
+ Index = 0;\r
RecoveryConfigData = ConfigData;\r
while (Index < ConfigHeader.NumOfRecovery) {\r
- if (CompareGuid(&RecoveryConfigData->FileGuid, PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid))) {\r
- DEBUG((DEBUG_INFO, "FileGuid - %g (processing)\n", &RecoveryConfigData->FileGuid));\r
+ if (CompareGuid (&RecoveryConfigData->FileGuid, PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid))) {\r
+ DEBUG ((DEBUG_INFO, "FileGuid - %g (processing)\n", &RecoveryConfigData->FileGuid));\r
Status = CreateHobForRecoveryCapsule (\r
(UINT8 *)SystemFirmwareImage + RecoveryConfigData->ImageOffset,\r
RecoveryConfigData->Length\r
break;\r
}\r
} else {\r
- DEBUG((DEBUG_INFO, "FileGuid - %g (ignored)\n", &RecoveryConfigData->FileGuid));\r
+ DEBUG ((DEBUG_INFO, "FileGuid - %g (ignored)\n", &RecoveryConfigData->FileGuid));\r
}\r
\r
Index++;\r
IN UINTN Length\r
)\r
{\r
- UINT32 LastAttemptVersion;\r
- UINT32 LastAttemptStatus;\r
- EFI_STATUS Status;\r
- VOID *SystemFirmwareImage;\r
- UINTN SystemFirmwareImageSize;\r
- VOID *ConfigImage;\r
- UINTN ConfigImageSize;\r
- VOID *AuthenticatedImage;\r
- UINTN AuthenticatedImageSize;\r
+ UINT32 LastAttemptVersion;\r
+ UINT32 LastAttemptStatus;\r
+ EFI_STATUS Status;\r
+ VOID *SystemFirmwareImage;\r
+ UINTN SystemFirmwareImageSize;\r
+ VOID *ConfigImage;\r
+ UINTN ConfigImageSize;\r
+ VOID *AuthenticatedImage;\r
+ UINTN AuthenticatedImageSize;\r
\r
AuthenticatedImage = NULL;\r
AuthenticatedImageSize = 0;\r
\r
- Status = CapsuleAuthenticateSystemFirmware(Image, Length, TRUE, &LastAttemptVersion, &LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "CapsuleAuthenticateSystemFirmware - %r\n", Status));\r
+ Status = CapsuleAuthenticateSystemFirmware (Image, Length, TRUE, &LastAttemptVersion, &LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "CapsuleAuthenticateSystemFirmware - %r\n", Status));\r
return Status;\r
}\r
\r
- ExtractSystemFirmwareImage(AuthenticatedImage, AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
- ExtractConfigImage(AuthenticatedImage, AuthenticatedImageSize, &ConfigImage, &ConfigImageSize);\r
+ ExtractSystemFirmwareImage (AuthenticatedImage, AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
+ ExtractConfigImage (AuthenticatedImage, AuthenticatedImageSize, &ConfigImage, &ConfigImageSize);\r
\r
- Status = RecoverImage(SystemFirmwareImage, SystemFirmwareImageSize, ConfigImage, ConfigImageSize);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "RecoverImage - %r\n", Status));\r
+ Status = RecoverImage (SystemFirmwareImage, SystemFirmwareImageSize, ConfigImage, ConfigImageSize);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "RecoverImage - %r\n", Status));\r
return Status;\r
}\r
\r
}\r
\r
FmpCapsuleHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_HEADER *)((UINT8 *)CapsuleHeader + CapsuleHeader->HeaderSize);\r
- ItemOffsetList = (UINT64 *)(FmpCapsuleHeader + 1);\r
+ ItemOffsetList = (UINT64 *)(FmpCapsuleHeader + 1);\r
\r
for (ItemIndex = 0; ItemIndex < FmpCapsuleHeader->PayloadItemCount; ItemIndex++) {\r
ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[ItemIndex]);\r
// If version is 2 Header should exclude ImageCapsuleSupport field.\r
//\r
if (ImageHeader->Version == 1) {\r
- Image = (UINT8 *)ImageHeader + OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance);\r
+ Image = (UINT8 *)ImageHeader + OFFSET_OF (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, UpdateHardwareInstance);\r
} else {\r
- Image = (UINT8 *)ImageHeader + OFFSET_OF(EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, ImageCapsuleSupport);\r
+ Image = (UINT8 *)ImageHeader + OFFSET_OF (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER, ImageCapsuleSupport);\r
}\r
}\r
\r
Status = ProcessRecoveryImage (Image, ImageHeader->UpdateImageSize);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
ProcessRecoveryCapsule (\r
- IN VOID *CapsuleBuffer,\r
- IN UINTN CapsuleSize\r
+ IN VOID *CapsuleBuffer,\r
+ IN UINTN CapsuleSize\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN IsSystemFmp;\r
- EFI_CAPSULE_HEADER *CapsuleHeader;\r
+ EFI_STATUS Status;\r
+ BOOLEAN IsSystemFmp;\r
+ EFI_CAPSULE_HEADER *CapsuleHeader;\r
\r
CapsuleHeader = CapsuleBuffer;\r
if (!IsValidCapsuleHeader (CapsuleHeader, CapsuleSize)) {\r
- DEBUG((DEBUG_ERROR, "CapsuleImageSize incorrect\n"));\r
+ DEBUG ((DEBUG_ERROR, "CapsuleImageSize incorrect\n"));\r
return EFI_SECURITY_VIOLATION;\r
}\r
\r
//\r
// Check FMP capsule layout\r
//\r
- if (IsFmpCapsuleGuid(&CapsuleHeader->CapsuleGuid)) {\r
- DEBUG((DEBUG_INFO, "CreateHobForRecoveryCapsule\n"));\r
-\r
- DEBUG((DEBUG_INFO, "ProcessCapsuleImage for FmpCapsule ...\n"));\r
- DEBUG((DEBUG_INFO, "ValidateFmpCapsule ...\n"));\r
- Status = ValidateFmpCapsule(CapsuleHeader, &IsSystemFmp, NULL);\r
- DEBUG((DEBUG_INFO, "ValidateFmpCapsule - %r\n", Status));\r
- if (EFI_ERROR(Status)) {\r
+ if (IsFmpCapsuleGuid (&CapsuleHeader->CapsuleGuid)) {\r
+ DEBUG ((DEBUG_INFO, "CreateHobForRecoveryCapsule\n"));\r
+\r
+ DEBUG ((DEBUG_INFO, "ProcessCapsuleImage for FmpCapsule ...\n"));\r
+ DEBUG ((DEBUG_INFO, "ValidateFmpCapsule ...\n"));\r
+ Status = ValidateFmpCapsule (CapsuleHeader, &IsSystemFmp, NULL);\r
+ DEBUG ((DEBUG_INFO, "ValidateFmpCapsule - %r\n", Status));\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
//\r
// Process EFI FMP Capsule\r
//\r
- DEBUG((DEBUG_INFO, "ProcessFmpCapsuleImage ...\n"));\r
- Status = ProcessFmpCapsuleImage(CapsuleHeader, IsSystemFmp);\r
- DEBUG((DEBUG_INFO, "ProcessFmpCapsuleImage - %r\n", Status));\r
+ DEBUG ((DEBUG_INFO, "ProcessFmpCapsuleImage ...\n"));\r
+ Status = ProcessFmpCapsuleImage (CapsuleHeader, IsSystemFmp);\r
+ DEBUG ((DEBUG_INFO, "ProcessFmpCapsuleImage - %r\n", Status));\r
\r
- DEBUG((DEBUG_INFO, "CreateHobForRecoveryCapsule Done\n"));\r
+ DEBUG ((DEBUG_INFO, "CreateHobForRecoveryCapsule Done\n"));\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
LoadRecoveryCapsule (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_RECOVERY_MODULE_PPI *This\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_RECOVERY_MODULE_PPI *This\r
)\r
{\r
EFI_STATUS Status;\r
EFI_GUID CapsuleType;\r
VOID *CapsuleBuffer;\r
\r
- DEBUG((DEBUG_INFO | DEBUG_LOAD, "Recovery Entry\n"));\r
+ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Recovery Entry\n"));\r
\r
for (Instance = 0; ; Instance++) {\r
Status = PeiServicesLocatePpi (\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
+\r
NumberRecoveryCapsules = 0;\r
- Status = DeviceRecoveryPpi->GetNumberRecoveryCapsules (\r
- (EFI_PEI_SERVICES **)PeiServices,\r
- DeviceRecoveryPpi,\r
- &NumberRecoveryCapsules\r
- );\r
+ Status = DeviceRecoveryPpi->GetNumberRecoveryCapsules (\r
+ (EFI_PEI_SERVICES **)PeiServices,\r
+ DeviceRecoveryPpi,\r
+ &NumberRecoveryCapsules\r
+ );\r
DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - GetNumberRecoveryCapsules (%d) - %r\n", NumberRecoveryCapsules, Status));\r
if (EFI_ERROR (Status)) {\r
continue;\r
}\r
+\r
for (CapsuleInstance = 1; CapsuleInstance <= NumberRecoveryCapsules; CapsuleInstance++) {\r
CapsuleSize = 0;\r
- Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (\r
- (EFI_PEI_SERVICES **)PeiServices,\r
- DeviceRecoveryPpi,\r
- CapsuleInstance,\r
- &CapsuleSize,\r
- &CapsuleType\r
- );\r
+ Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (\r
+ (EFI_PEI_SERVICES **)PeiServices,\r
+ DeviceRecoveryPpi,\r
+ CapsuleInstance,\r
+ &CapsuleSize,\r
+ &CapsuleType\r
+ );\r
DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - GetRecoveryCapsuleInfo (%d - %x) - %r\n", CapsuleInstance, CapsuleSize, Status));\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
\r
- CapsuleBuffer = AllocatePages (EFI_SIZE_TO_PAGES(CapsuleSize));\r
+ CapsuleBuffer = AllocatePages (EFI_SIZE_TO_PAGES (CapsuleSize));\r
if (CapsuleBuffer == NULL) {\r
DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - AllocatePool fail\n"));\r
continue;\r
}\r
+\r
Status = DeviceRecoveryPpi->LoadRecoveryCapsule (\r
(EFI_PEI_SERVICES **)PeiServices,\r
DeviceRecoveryPpi,\r
);\r
DEBUG ((DEBUG_ERROR, "LoadRecoveryCapsule - LoadRecoveryCapsule (%d) - %r\n", CapsuleInstance, Status));\r
if (EFI_ERROR (Status)) {\r
- FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES(CapsuleSize));\r
+ FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES (CapsuleSize));\r
break;\r
}\r
+\r
//\r
// good, load capsule buffer\r
//\r
//\r
\r
typedef struct {\r
- UINTN NumOfRecovery;\r
+ UINTN NumOfRecovery;\r
} CONFIG_HEADER;\r
\r
typedef struct {\r
- UINTN Index;\r
- EFI_GUID FileGuid;\r
- UINTN Length;\r
- UINTN ImageOffset;\r
+ UINTN Index;\r
+ EFI_GUID FileGuid;\r
+ UINTN Length;\r
+ UINTN ImageOffset;\r
} RECOVERY_CONFIG_DATA;\r
\r
#endif\r
-\r
#include <Library/IniParsingLib.h>\r
#include <Library/PrintLib.h>\r
\r
-#define MAX_LINE_LENGTH 512\r
+#define MAX_LINE_LENGTH 512\r
\r
/**\r
Parse Config data file to get the updated data array.\r
**/\r
EFI_STATUS\r
ParseUpdateDataFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize,\r
- IN OUT CONFIG_HEADER *ConfigHeader,\r
- IN OUT UPDATE_CONFIG_DATA **UpdateArray\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT CONFIG_HEADER *ConfigHeader,\r
+ IN OUT UPDATE_CONFIG_DATA **UpdateArray\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR8 *SectionName;\r
- CHAR8 Entry[MAX_LINE_LENGTH];\r
- UINTN Num;\r
- UINT64 Num64;\r
- UINTN Index;\r
- EFI_GUID FileGuid;\r
- VOID *Context;\r
+ EFI_STATUS Status;\r
+ CHAR8 *SectionName;\r
+ CHAR8 Entry[MAX_LINE_LENGTH];\r
+ UINTN Num;\r
+ UINT64 Num64;\r
+ UINTN Index;\r
+ EFI_GUID FileGuid;\r
+ VOID *Context;\r
\r
//\r
// First process the data buffer and get all sections and entries\r
//\r
- Context = OpenIniFile(DataBuffer, BufferSize);\r
+ Context = OpenIniFile (DataBuffer, BufferSize);\r
if (Context == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// Now get NumOfUpdate\r
//\r
- Status = GetDecimalUintnFromDataFile(\r
+ Status = GetDecimalUintnFromDataFile (\r
Context,\r
"Head",\r
"NumOfUpdate",\r
&Num\r
);\r
- if (EFI_ERROR(Status) || (Num == 0)) {\r
- DEBUG((DEBUG_ERROR, "NumOfUpdate not found\n"));\r
- CloseIniFile(Context);\r
+ if (EFI_ERROR (Status) || (Num == 0)) {\r
+ DEBUG ((DEBUG_ERROR, "NumOfUpdate not found\n"));\r
+ CloseIniFile (Context);\r
return EFI_NOT_FOUND;\r
}\r
\r
ConfigHeader->NumOfUpdates = Num;\r
- *UpdateArray = AllocateZeroPool ((sizeof (UPDATE_CONFIG_DATA) * Num));\r
+ *UpdateArray = AllocateZeroPool ((sizeof (UPDATE_CONFIG_DATA) * Num));\r
if (*UpdateArray == NULL) {\r
- CloseIniFile(Context);\r
+ CloseIniFile (Context);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- for (Index = 0 ; Index < ConfigHeader->NumOfUpdates ; Index++) {\r
+ for (Index = 0; Index < ConfigHeader->NumOfUpdates; Index++) {\r
//\r
// Get the section name of each update\r
//\r
Index,\r
0\r
);\r
- Status = GetStringFromDataFile(\r
+ Status = GetStringFromDataFile (\r
Context,\r
"Head",\r
Entry,\r
&SectionName\r
);\r
- if (EFI_ERROR(Status) || (SectionName == NULL)) {\r
- DEBUG((DEBUG_ERROR, "[%d] %a not found\n", Index, Entry));\r
- CloseIniFile(Context);\r
+ if (EFI_ERROR (Status) || (SectionName == NULL)) {\r
+ DEBUG ((DEBUG_ERROR, "[%d] %a not found\n", Index, Entry));\r
+ CloseIniFile (Context);\r
return EFI_NOT_FOUND;\r
}\r
\r
//\r
// FirmwareType\r
//\r
- Status = GetDecimalUintnFromDataFile(\r
+ Status = GetDecimalUintnFromDataFile (\r
Context,\r
SectionName,\r
"FirmwareType",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] FirmwareType not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] FirmwareType not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
- (*UpdateArray)[Index].FirmwareType = (PLATFORM_FIRMWARE_TYPE) Num;\r
+\r
+ (*UpdateArray)[Index].FirmwareType = (PLATFORM_FIRMWARE_TYPE)Num;\r
\r
//\r
// AddressType\r
//\r
- Status = GetDecimalUintnFromDataFile(\r
+ Status = GetDecimalUintnFromDataFile (\r
Context,\r
SectionName,\r
"AddressType",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] AddressType not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] AddressType not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
- (*UpdateArray)[Index].AddressType = (FLASH_ADDRESS_TYPE) Num;\r
+\r
+ (*UpdateArray)[Index].AddressType = (FLASH_ADDRESS_TYPE)Num;\r
\r
//\r
// BaseAddress\r
//\r
- Status = GetHexUint64FromDataFile(\r
+ Status = GetHexUint64FromDataFile (\r
Context,\r
SectionName,\r
"BaseAddress",\r
&Num64\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] BaseAddress not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] BaseAddress not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
- (*UpdateArray)[Index].BaseAddress = (EFI_PHYSICAL_ADDRESS) Num64;\r
+\r
+ (*UpdateArray)[Index].BaseAddress = (EFI_PHYSICAL_ADDRESS)Num64;\r
\r
//\r
// FileGuid\r
//\r
- Status = GetGuidFromDataFile(\r
+ Status = GetGuidFromDataFile (\r
Context,\r
SectionName,\r
"FileGuid",\r
&FileGuid\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] FileGuid not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] FileGuid not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
\r
- CopyGuid(&((*UpdateArray)[Index].FileGuid), &FileGuid);\r
+ CopyGuid (&((*UpdateArray)[Index].FileGuid), &FileGuid);\r
\r
//\r
// Length\r
//\r
- Status = GetHexUintnFromDataFile(\r
+ Status = GetHexUintnFromDataFile (\r
Context,\r
SectionName,\r
"Length",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] Length not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] Length not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
- (*UpdateArray)[Index].Length = (UINTN) Num;\r
+\r
+ (*UpdateArray)[Index].Length = (UINTN)Num;\r
\r
//\r
// ImageOffset\r
//\r
- Status = GetHexUintnFromDataFile(\r
+ Status = GetHexUintnFromDataFile (\r
Context,\r
SectionName,\r
"ImageOffset",\r
&Num\r
);\r
- if (EFI_ERROR(Status)) {\r
- CloseIniFile(Context);\r
- DEBUG((DEBUG_ERROR, "[%d] ImageOffset not found\n", Index));\r
+ if (EFI_ERROR (Status)) {\r
+ CloseIniFile (Context);\r
+ DEBUG ((DEBUG_ERROR, "[%d] ImageOffset not found\n", Index));\r
return EFI_NOT_FOUND;\r
}\r
- (*UpdateArray)[Index].ImageOffset = (UINTN) Num;\r
+\r
+ (*UpdateArray)[Index].ImageOffset = (UINTN)Num;\r
}\r
\r
//\r
// Now all configuration data got. Free those temporary buffers\r
//\r
- CloseIniFile(Context);\r
+ CloseIniFile (Context);\r
\r
return EFI_SUCCESS;\r
}\r
-\r
\r
#include "SystemFirmwareDxe.h"\r
\r
-EFI_GUID gSystemFmpLastAttemptVariableGuid = SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_GUID;\r
-EFI_GUID gSystemFmpProtocolGuid = SYSTEM_FMP_PROTOCOL_GUID;\r
+EFI_GUID gSystemFmpLastAttemptVariableGuid = SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_GUID;\r
+EFI_GUID gSystemFmpProtocolGuid = SYSTEM_FMP_PROTOCOL_GUID;\r
\r
-EFI_FIRMWARE_MANAGEMENT_PROTOCOL mFirmwareManagementProtocol = {\r
+EFI_FIRMWARE_MANAGEMENT_PROTOCOL mFirmwareManagementProtocol = {\r
FmpGetImageInfo,\r
FmpGetImage,\r
FmpSetImage,\r
EFI_STATUS\r
EFIAPI\r
FmpGetImageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN OUT UINTN *ImageInfoSize,\r
- IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo,\r
- OUT UINT32 *DescriptorVersion,\r
- OUT UINT8 *DescriptorCount,\r
- OUT UINTN *DescriptorSize,\r
- OUT UINT32 *PackageVersion,\r
- OUT CHAR16 **PackageVersionName\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN OUT UINTN *ImageInfoSize,\r
+ IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo,\r
+ OUT UINT32 *DescriptorVersion,\r
+ OUT UINT8 *DescriptorCount,\r
+ OUT UINTN *DescriptorSize,\r
+ OUT UINT32 *PackageVersion,\r
+ OUT CHAR16 **PackageVersionName\r
)\r
{\r
- SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
- EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageDescriptor;\r
+ SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageDescriptor;\r
\r
- SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP(This);\r
+ SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP (This);\r
\r
- if(ImageInfoSize == NULL) {\r
+ if (ImageInfoSize == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (*ImageInfoSize < sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount) {\r
- *ImageInfoSize = sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount;\r
+ if (*ImageInfoSize < sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount) {\r
+ *ImageInfoSize = sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount;\r
return EFI_BUFFER_TOO_SMALL;\r
}\r
\r
- if (ImageInfo == NULL ||\r
- DescriptorVersion == NULL ||\r
- DescriptorCount == NULL ||\r
- DescriptorSize == NULL ||\r
- PackageVersion == NULL ||\r
- PackageVersionName == NULL) {\r
+ if ((ImageInfo == NULL) ||\r
+ (DescriptorVersion == NULL) ||\r
+ (DescriptorCount == NULL) ||\r
+ (DescriptorSize == NULL) ||\r
+ (PackageVersion == NULL) ||\r
+ (PackageVersionName == NULL))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- *ImageInfoSize = sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount;\r
- *DescriptorSize = sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR);\r
- *DescriptorCount = SystemFmpPrivate->DescriptorCount;\r
- *DescriptorVersion = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;\r
+ *ImageInfoSize = sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR) * SystemFmpPrivate->DescriptorCount;\r
+ *DescriptorSize = sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR);\r
+ *DescriptorCount = SystemFmpPrivate->DescriptorCount;\r
+ *DescriptorVersion = EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION;\r
\r
//\r
// supports 1 ImageInfo descriptor\r
//\r
- ImageDescriptor = SystemFmpPrivate->ImageDescriptor;\r
+ ImageDescriptor = SystemFmpPrivate->ImageDescriptor;\r
ImageInfo->ImageIndex = ImageDescriptor->ImageIndex;\r
CopyGuid (&ImageInfo->ImageTypeId, &ImageDescriptor->ImageTypeId);\r
ImageInfo->ImageId = ImageDescriptor->ImageId;\r
} else {\r
ImageInfo->ImageIdName = NULL;\r
}\r
+\r
ImageInfo->Version = ImageDescriptor->Version;\r
if (ImageDescriptor->VersionNameStringOffset != 0) {\r
ImageInfo->VersionName = (CHAR16 *)((UINTN)ImageDescriptor + ImageDescriptor->VersionNameStringOffset);\r
} else {\r
ImageInfo->VersionName = NULL;\r
}\r
- ImageInfo->Size = (UINTN)ImageDescriptor->Size;\r
- ImageInfo->AttributesSupported = ImageDescriptor->AttributesSupported;\r
- ImageInfo->AttributesSetting = ImageDescriptor->AttributesSetting;\r
- ImageInfo->Compatibilities = ImageDescriptor->Compatibilities;\r
+\r
+ ImageInfo->Size = (UINTN)ImageDescriptor->Size;\r
+ ImageInfo->AttributesSupported = ImageDescriptor->AttributesSupported;\r
+ ImageInfo->AttributesSetting = ImageDescriptor->AttributesSetting;\r
+ ImageInfo->Compatibilities = ImageDescriptor->Compatibilities;\r
ImageInfo->LowestSupportedImageVersion = ImageDescriptor->LowestSupportedImageVersion;\r
- ImageInfo->LastAttemptVersion = SystemFmpPrivate->LastAttempt.LastAttemptVersion;\r
- ImageInfo->LastAttemptStatus = SystemFmpPrivate->LastAttempt.LastAttemptStatus;\r
- ImageInfo->HardwareInstance = ImageDescriptor->HardwareInstance;\r
+ ImageInfo->LastAttemptVersion = SystemFmpPrivate->LastAttempt.LastAttemptVersion;\r
+ ImageInfo->LastAttemptStatus = SystemFmpPrivate->LastAttempt.LastAttemptStatus;\r
+ ImageInfo->HardwareInstance = ImageDescriptor->HardwareInstance;\r
\r
//\r
// package version\r
*PackageVersion = ImageDescriptor->PackageVersion;\r
if (ImageDescriptor->PackageVersionNameStringOffset != 0) {\r
*PackageVersionName = (VOID *)((UINTN)ImageDescriptor + ImageDescriptor->PackageVersionNameStringOffset);\r
- *PackageVersionName = AllocateCopyPool(StrSize(*PackageVersionName), *PackageVersionName);\r
+ *PackageVersionName = AllocateCopyPool (StrSize (*PackageVersionName), *PackageVersionName);\r
} else {\r
*PackageVersionName = NULL;\r
}\r
EFI_STATUS\r
EFIAPI\r
FmpGetPackageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- OUT UINT32 *PackageVersion,\r
- OUT CHAR16 **PackageVersionName,\r
- OUT UINT32 *PackageVersionNameMaxLen,\r
- OUT UINT64 *AttributesSupported,\r
- OUT UINT64 *AttributesSetting\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ OUT UINT32 *PackageVersion,\r
+ OUT CHAR16 **PackageVersionName,\r
+ OUT UINT32 *PackageVersionNameMaxLen,\r
+ OUT UINT64 *AttributesSupported,\r
+ OUT UINT64 *AttributesSetting\r
)\r
{\r
return EFI_UNSUPPORTED;\r
EFI_STATUS\r
EFIAPI\r
FmpSetPackageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN CONST VOID *Image,\r
- IN UINTN ImageSize,\r
- IN CONST VOID *VendorCode,\r
- IN UINT32 PackageVersion,\r
- IN CONST CHAR16 *PackageVersionName\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN CONST VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN CONST VOID *VendorCode,\r
+ IN UINT32 PackageVersion,\r
+ IN CONST CHAR16 *PackageVersionName\r
)\r
{\r
return EFI_UNSUPPORTED;\r
IN SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate\r
)\r
{\r
- EFI_STATUS VarStatus;\r
- UINTN VarSize;\r
+ EFI_STATUS VarStatus;\r
+ UINTN VarSize;\r
\r
SystemFmpPrivate->Signature = SYSTEM_FMP_PRIVATE_DATA_SIGNATURE;\r
SystemFmpPrivate->Handle = NULL;\r
SystemFmpPrivate->DescriptorCount = 1;\r
- CopyMem(&SystemFmpPrivate->Fmp, &mFirmwareManagementProtocol, sizeof(EFI_FIRMWARE_MANAGEMENT_PROTOCOL));\r
+ CopyMem (&SystemFmpPrivate->Fmp, &mFirmwareManagementProtocol, sizeof (EFI_FIRMWARE_MANAGEMENT_PROTOCOL));\r
\r
- SystemFmpPrivate->ImageDescriptor = PcdGetPtr(PcdEdkiiSystemFirmwareImageDescriptor);\r
+ SystemFmpPrivate->ImageDescriptor = PcdGetPtr (PcdEdkiiSystemFirmwareImageDescriptor);\r
\r
SystemFmpPrivate->LastAttempt.LastAttemptVersion = 0x0;\r
- SystemFmpPrivate->LastAttempt.LastAttemptStatus = 0x0;\r
- VarSize = sizeof(SystemFmpPrivate->LastAttempt);\r
- VarStatus = gRT->GetVariable(\r
- SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
- &gSystemFmpLastAttemptVariableGuid,\r
- NULL,\r
- &VarSize,\r
- &SystemFmpPrivate->LastAttempt\r
- );\r
- DEBUG((DEBUG_INFO, "GetLastAttempt - %r\n", VarStatus));\r
- DEBUG((DEBUG_INFO, "GetLastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
+ SystemFmpPrivate->LastAttempt.LastAttemptStatus = 0x0;\r
+ VarSize = sizeof (SystemFmpPrivate->LastAttempt);\r
+ VarStatus = gRT->GetVariable (\r
+ SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
+ &gSystemFmpLastAttemptVariableGuid,\r
+ NULL,\r
+ &VarSize,\r
+ &SystemFmpPrivate->LastAttempt\r
+ );\r
+ DEBUG ((DEBUG_INFO, "GetLastAttempt - %r\n", VarStatus));\r
+ DEBUG ((DEBUG_INFO, "GetLastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
\r
return EFI_SUCCESS;\r
}\r
-\r
-\r
#include <Library/EdkiiSystemCapsuleLib.h>\r
\r
typedef struct {\r
- UINT32 LastAttemptVersion;\r
- UINT32 LastAttemptStatus;\r
+ UINT32 LastAttemptVersion;\r
+ UINT32 LastAttemptStatus;\r
} SYSTEM_FMP_LAST_ATTEMPT_VARIABLE;\r
\r
#define SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME L"SystemLastAttempVar"\r
\r
-#define SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_GUID {0x2f564d6f, 0xcc2c, 0x4838, { 0xb9, 0xa8, 0xbe, 0x59, 0x48, 0xb0, 0x3d, 0x59 }}\r
+#define SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_GUID {0x2f564d6f, 0xcc2c, 0x4838, { 0xb9, 0xa8, 0xbe, 0x59, 0x48, 0xb0, 0x3d, 0x59 }}\r
\r
#define SYSTEM_FMP_PRIVATE_DATA_SIGNATURE SIGNATURE_32('S', 'Y', 'S', 'F')\r
\r
-#define SYSTEM_FMP_PROTOCOL_GUID {0x6d16624a, 0x26a6, 0x4cb4, { 0x84, 0xfa, 0x6, 0x78, 0x5a, 0x7e, 0x82, 0x6a }}\r
+#define SYSTEM_FMP_PROTOCOL_GUID {0x6d16624a, 0x26a6, 0x4cb4, { 0x84, 0xfa, 0x6, 0x78, 0x5a, 0x7e, 0x82, 0x6a }}\r
\r
//\r
// SYSTEM FMP private data structure.\r
//\r
\r
struct _SYSTEM_FMP_PRIVATE_DATA {\r
- UINT32 Signature;\r
- EFI_FIRMWARE_MANAGEMENT_PROTOCOL Fmp;\r
- EFI_HANDLE Handle;\r
- UINT8 DescriptorCount;\r
- EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageDescriptor;\r
- SYSTEM_FMP_LAST_ATTEMPT_VARIABLE LastAttempt;\r
+ UINT32 Signature;\r
+ EFI_FIRMWARE_MANAGEMENT_PROTOCOL Fmp;\r
+ EFI_HANDLE Handle;\r
+ UINT8 DescriptorCount;\r
+ EDKII_SYSTEM_FIRMWARE_IMAGE_DESCRIPTOR *ImageDescriptor;\r
+ SYSTEM_FMP_LAST_ATTEMPT_VARIABLE LastAttempt;\r
};\r
\r
-typedef struct _SYSTEM_FMP_PRIVATE_DATA SYSTEM_FMP_PRIVATE_DATA;\r
+typedef struct _SYSTEM_FMP_PRIVATE_DATA SYSTEM_FMP_PRIVATE_DATA;\r
\r
/**\r
Returns a pointer to the SYSTEM_FMP_PRIVATE_DATA structure from the input a as Fmp.\r
SYSTEM_FMP_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
-\r
//\r
// Update data\r
//\r
\r
typedef struct {\r
- UINTN NumOfUpdates;\r
+ UINTN NumOfUpdates;\r
} CONFIG_HEADER;\r
\r
typedef struct {\r
- UINTN Index;\r
- PLATFORM_FIRMWARE_TYPE FirmwareType;\r
- FLASH_ADDRESS_TYPE AddressType;\r
- EFI_GUID FileGuid;\r
- EFI_PHYSICAL_ADDRESS BaseAddress;\r
- UINTN Length;\r
- UINTN ImageOffset;\r
+ UINTN Index;\r
+ PLATFORM_FIRMWARE_TYPE FirmwareType;\r
+ FLASH_ADDRESS_TYPE AddressType;\r
+ EFI_GUID FileGuid;\r
+ EFI_PHYSICAL_ADDRESS BaseAddress;\r
+ UINTN Length;\r
+ UINTN ImageOffset;\r
} UPDATE_CONFIG_DATA;\r
\r
//\r
// System Firmware Update SMM Communication\r
//\r
\r
-#define SYSTEM_FIRMWARE_UPDATE_COMMUNICATION_FUNCTION_SET_IMAGE 1\r
+#define SYSTEM_FIRMWARE_UPDATE_COMMUNICATION_FUNCTION_SET_IMAGE 1\r
\r
typedef struct {\r
- UINTN Function;\r
- EFI_STATUS ReturnStatus;\r
-//UINT8 Data[];\r
+ UINTN Function;\r
+ EFI_STATUS ReturnStatus;\r
+ // UINT8 Data[];\r
} SYSTEM_FIRMWARE_UPDATE_COMMUNICATION_HEAD;\r
\r
-#define ABORT_REASON_MAX_SIZE 0x40 // UnicodeStringSize including final L'\0'\r
+#define ABORT_REASON_MAX_SIZE 0x40 // UnicodeStringSize including final L'\0'\r
\r
#define CAPSULE_IMAGE_ADDITIONAL_MAX_SIZE (0x20020 + 0xA0000) // Additional size for Capsule Header, FV block alignment + DispatchImage.\r
\r
typedef struct {\r
- UINT8 ImageIndex;\r
- UINTN ImageSize;\r
- UINTN AbortReasonSize;\r
- UINT32 LastAttemptVersion;\r
- UINT32 LastAttemptStatus;\r
-//UINT8 Data[AbortReasonMaxSize + ImageSize];\r
+ UINT8 ImageIndex;\r
+ UINTN ImageSize;\r
+ UINTN AbortReasonSize;\r
+ UINT32 LastAttemptVersion;\r
+ UINT32 LastAttemptStatus;\r
+ // UINT8 Data[AbortReasonMaxSize + ImageSize];\r
} SYSTEM_FIRMWARE_UPDATE_COMMUNICATION_SET_IMAGE;\r
\r
-\r
/**\r
Returns information about the current firmware image(s) of the device.\r
\r
EFI_STATUS\r
EFIAPI\r
FmpGetImageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN OUT UINTN *ImageInfoSize,\r
- IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo,\r
- OUT UINT32 *DescriptorVersion,\r
- OUT UINT8 *DescriptorCount,\r
- OUT UINTN *DescriptorSize,\r
- OUT UINT32 *PackageVersion,\r
- OUT CHAR16 **PackageVersionName\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN OUT UINTN *ImageInfoSize,\r
+ IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo,\r
+ OUT UINT32 *DescriptorVersion,\r
+ OUT UINT8 *DescriptorCount,\r
+ OUT UINTN *DescriptorSize,\r
+ OUT UINT32 *PackageVersion,\r
+ OUT CHAR16 **PackageVersionName\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
FmpSetImage (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN UINT8 ImageIndex,\r
- IN CONST VOID *Image,\r
- IN UINTN ImageSize,\r
- IN CONST VOID *VendorCode,\r
- IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
- OUT CHAR16 **AbortReason\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN UINT8 ImageIndex,\r
+ IN CONST VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN CONST VOID *VendorCode,\r
+ IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
+ OUT CHAR16 **AbortReason\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
FmpGetPackageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- OUT UINT32 *PackageVersion,\r
- OUT CHAR16 **PackageVersionName,\r
- OUT UINT32 *PackageVersionNameMaxLen,\r
- OUT UINT64 *AttributesSupported,\r
- OUT UINT64 *AttributesSetting\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ OUT UINT32 *PackageVersion,\r
+ OUT CHAR16 **PackageVersionName,\r
+ OUT UINT32 *PackageVersionNameMaxLen,\r
+ OUT UINT64 *AttributesSupported,\r
+ OUT UINT64 *AttributesSetting\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
FmpSetPackageInfo (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN CONST VOID *Image,\r
- IN UINTN ImageSize,\r
- IN CONST VOID *VendorCode,\r
- IN UINT32 PackageVersion,\r
- IN CONST CHAR16 *PackageVersionName\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN CONST VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN CONST VOID *VendorCode,\r
+ IN UINT32 PackageVersion,\r
+ IN CONST CHAR16 *PackageVersionName\r
);\r
\r
/**\r
IN SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate\r
);\r
\r
-extern EFI_GUID gSystemFmpLastAttemptVariableGuid;\r
-extern EFI_GUID mCurrentImageTypeId;\r
-extern EFI_GUID gSystemFmpProtocolGuid;\r
+extern EFI_GUID gSystemFmpLastAttemptVariableGuid;\r
+extern EFI_GUID mCurrentImageTypeId;\r
+extern EFI_GUID gSystemFmpProtocolGuid;\r
\r
#endif\r
-\r
//\r
// SystemFmp driver private data\r
//\r
-SYSTEM_FMP_PRIVATE_DATA *mSystemFmpPrivate = NULL;\r
+SYSTEM_FMP_PRIVATE_DATA *mSystemFmpPrivate = NULL;\r
\r
/**\r
Dispatch system FMP images.\r
**/\r
EFI_STATUS\r
DispatchSystemFmpImages (\r
- IN VOID *Image,\r
- IN UINTN ImageSize,\r
- OUT UINT32 *LastAttemptVersion,\r
- OUT UINT32 *LastAttemptStatus\r
+ IN VOID *Image,\r
+ IN UINTN ImageSize,\r
+ OUT UINT32 *LastAttemptVersion,\r
+ OUT UINT32 *LastAttemptStatus\r
)\r
{\r
- EFI_STATUS Status;\r
- VOID *AuthenticatedImage;\r
- UINTN AuthenticatedImageSize;\r
- VOID *DispatchFvImage;\r
- UINTN DispatchFvImageSize;\r
- EFI_HANDLE FvProtocolHandle;\r
- EFI_FIRMWARE_VOLUME_HEADER *FvImage;\r
- BOOLEAN Result;\r
+ EFI_STATUS Status;\r
+ VOID *AuthenticatedImage;\r
+ UINTN AuthenticatedImageSize;\r
+ VOID *DispatchFvImage;\r
+ UINTN DispatchFvImageSize;\r
+ EFI_HANDLE FvProtocolHandle;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FvImage;\r
+ BOOLEAN Result;\r
\r
AuthenticatedImage = NULL;\r
AuthenticatedImageSize = 0;\r
\r
- DEBUG((DEBUG_INFO, "DispatchSystemFmpImages\n"));\r
+ DEBUG ((DEBUG_INFO, "DispatchSystemFmpImages\n"));\r
\r
//\r
// Verify\r
//\r
- Status = CapsuleAuthenticateSystemFirmware(Image, ImageSize, FALSE, LastAttemptVersion, LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "SystemFirmwareAuthenticateImage - %r\n", Status));\r
+ Status = CapsuleAuthenticateSystemFirmware (Image, ImageSize, FALSE, LastAttemptVersion, LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareAuthenticateImage - %r\n", Status));\r
return Status;\r
}\r
\r
//\r
// Get FV\r
//\r
- Result = ExtractDriverFvImage(AuthenticatedImage, AuthenticatedImageSize, &DispatchFvImage, &DispatchFvImageSize);\r
+ Result = ExtractDriverFvImage (AuthenticatedImage, AuthenticatedImageSize, &DispatchFvImage, &DispatchFvImageSize);\r
if (Result) {\r
- DEBUG((DEBUG_INFO, "ExtractDriverFvImage\n"));\r
+ DEBUG ((DEBUG_INFO, "ExtractDriverFvImage\n"));\r
//\r
// Dispatch\r
//\r
if (((EFI_FIRMWARE_VOLUME_HEADER *)DispatchFvImage)->FvLength == DispatchFvImageSize) {\r
- FvImage = AllocatePages(EFI_SIZE_TO_PAGES(DispatchFvImageSize));\r
+ FvImage = AllocatePages (EFI_SIZE_TO_PAGES (DispatchFvImageSize));\r
if (FvImage != NULL) {\r
- CopyMem(FvImage, DispatchFvImage, DispatchFvImageSize);\r
- Status = gDS->ProcessFirmwareVolume(\r
+ CopyMem (FvImage, DispatchFvImage, DispatchFvImageSize);\r
+ Status = gDS->ProcessFirmwareVolume (\r
(VOID *)FvImage,\r
(UINTN)FvImage->FvLength,\r
&FvProtocolHandle\r
);\r
- DEBUG((DEBUG_INFO, "ProcessFirmwareVolume - %r\n", Status));\r
- if (!EFI_ERROR(Status)) {\r
- gDS->Dispatch();\r
- DEBUG((DEBUG_INFO, "Dispatch Done\n"));\r
+ DEBUG ((DEBUG_INFO, "ProcessFirmwareVolume - %r\n", Status));\r
+ if (!EFI_ERROR (Status)) {\r
+ gDS->Dispatch ();\r
+ DEBUG ((DEBUG_INFO, "Dispatch Done\n"));\r
}\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
FmpSetImage (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN UINT8 ImageIndex,\r
- IN CONST VOID *Image,\r
- IN UINTN ImageSize,\r
- IN CONST VOID *VendorCode,\r
- IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
- OUT CHAR16 **AbortReason\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN UINT8 ImageIndex,\r
+ IN CONST VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN CONST VOID *VendorCode,\r
+ IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
+ OUT CHAR16 **AbortReason\r
)\r
{\r
- SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
- EFI_FIRMWARE_MANAGEMENT_PROTOCOL *SystemFmp;\r
- EFI_STATUS Status;\r
- EFI_STATUS VarStatus;\r
+ SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
+ EFI_FIRMWARE_MANAGEMENT_PROTOCOL *SystemFmp;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS VarStatus;\r
\r
- if (Image == NULL || ImageSize == 0 || AbortReason == NULL) {\r
+ if ((Image == NULL) || (ImageSize == 0) || (AbortReason == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP(This);\r
+ SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP (This);\r
*AbortReason = NULL;\r
\r
- if (ImageIndex == 0 || ImageIndex > SystemFmpPrivate->DescriptorCount) {\r
+ if ((ImageIndex == 0) || (ImageIndex > SystemFmpPrivate->DescriptorCount)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
// Process FV\r
//\r
- Status = DispatchSystemFmpImages((VOID *)Image, ImageSize, &SystemFmpPrivate->LastAttempt.LastAttemptVersion, &SystemFmpPrivate->LastAttempt.LastAttemptStatus);\r
- DEBUG((DEBUG_INFO, "(Agent)SetImage - LastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
- if (EFI_ERROR(Status)) {\r
- VarStatus = gRT->SetVariable(\r
+ Status = DispatchSystemFmpImages ((VOID *)Image, ImageSize, &SystemFmpPrivate->LastAttempt.LastAttemptVersion, &SystemFmpPrivate->LastAttempt.LastAttemptStatus);\r
+ DEBUG ((DEBUG_INFO, "(Agent)SetImage - LastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
+ if (EFI_ERROR (Status)) {\r
+ VarStatus = gRT->SetVariable (\r
SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
&gSystemFmpLastAttemptVariableGuid,\r
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof(SystemFmpPrivate->LastAttempt),\r
+ sizeof (SystemFmpPrivate->LastAttempt),\r
&SystemFmpPrivate->LastAttempt\r
);\r
- DEBUG((DEBUG_INFO, "(Agent)SetLastAttempt - %r\n", VarStatus));\r
+ DEBUG ((DEBUG_INFO, "(Agent)SetLastAttempt - %r\n", VarStatus));\r
return Status;\r
}\r
\r
//\r
// Pass Thru to System FMP Protocol on same handle as FMP Protocol\r
//\r
- Status = gBS->HandleProtocol(\r
+ Status = gBS->HandleProtocol (\r
SystemFmpPrivate->Handle,\r
&gSystemFmpProtocolGuid,\r
(VOID **)&SystemFmp\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
Status = gBS->LocateProtocol (\r
&gSystemFmpProtocolGuid,\r
NULL,\r
(VOID **)&SystemFmp\r
);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
SystemFmpPrivate->LastAttempt.LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
- VarStatus = gRT->SetVariable(\r
- SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
- &gSystemFmpLastAttemptVariableGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof(SystemFmpPrivate->LastAttempt),\r
- &SystemFmpPrivate->LastAttempt\r
- );\r
- DEBUG((DEBUG_INFO, "(Agent)SetLastAttempt - %r\n", VarStatus));\r
+ VarStatus = gRT->SetVariable (\r
+ SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
+ &gSystemFmpLastAttemptVariableGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+ sizeof (SystemFmpPrivate->LastAttempt),\r
+ &SystemFmpPrivate->LastAttempt\r
+ );\r
+ DEBUG ((DEBUG_INFO, "(Agent)SetLastAttempt - %r\n", VarStatus));\r
return Status;\r
}\r
}\r
\r
- return SystemFmp->SetImage(SystemFmp, ImageIndex, Image, ImageSize, VendorCode, Progress, AbortReason);\r
+ return SystemFmp->SetImage (SystemFmp, ImageIndex, Image, ImageSize, VendorCode, Progress, AbortReason);\r
}\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
SystemFirmwareReportMainDxe (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Initialize SystemFmpPrivateData\r
//\r
- mSystemFmpPrivate = AllocateZeroPool (sizeof(SYSTEM_FMP_PRIVATE_DATA));\r
+ mSystemFmpPrivate = AllocateZeroPool (sizeof (SYSTEM_FMP_PRIVATE_DATA));\r
if (mSystemFmpPrivate == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- Status = InitializePrivateData(mSystemFmpPrivate);\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mSystemFmpPrivate);\r
+ Status = InitializePrivateData (mSystemFmpPrivate);\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mSystemFmpPrivate);\r
mSystemFmpPrivate = NULL;\r
return Status;\r
}\r
&mSystemFmpPrivate->Fmp\r
);\r
if (EFI_ERROR (Status)) {\r
- FreePool(mSystemFmpPrivate);\r
+ FreePool (mSystemFmpPrivate);\r
mSystemFmpPrivate = NULL;\r
return Status;\r
}\r
//\r
// SystemFmp driver private data\r
//\r
-SYSTEM_FMP_PRIVATE_DATA *mSystemFmpPrivate = NULL;\r
+SYSTEM_FMP_PRIVATE_DATA *mSystemFmpPrivate = NULL;\r
\r
-EFI_GUID mCurrentImageTypeId;\r
+EFI_GUID mCurrentImageTypeId;\r
\r
BOOLEAN mNvRamUpdated = FALSE;\r
\r
**/\r
EFI_STATUS\r
ParseUpdateDataFile (\r
- IN UINT8 *DataBuffer,\r
- IN UINTN BufferSize,\r
- IN OUT CONFIG_HEADER *ConfigHeader,\r
- IN OUT UPDATE_CONFIG_DATA **UpdateArray\r
+ IN UINT8 *DataBuffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT CONFIG_HEADER *ConfigHeader,\r
+ IN OUT UPDATE_CONFIG_DATA **UpdateArray\r
);\r
\r
/**\r
IN UINTN EndPercentage\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
- DEBUG((DEBUG_INFO, "PlatformUpdate:"));\r
- DEBUG((DEBUG_INFO, " BaseAddress - 0x%lx,", ConfigData->BaseAddress));\r
- DEBUG((DEBUG_INFO, " ImageOffset - 0x%x,", ConfigData->ImageOffset));\r
- DEBUG((DEBUG_INFO, " Legnth - 0x%x\n", ConfigData->Length));\r
+ DEBUG ((DEBUG_INFO, "PlatformUpdate:"));\r
+ DEBUG ((DEBUG_INFO, " BaseAddress - 0x%lx,", ConfigData->BaseAddress));\r
+ DEBUG ((DEBUG_INFO, " ImageOffset - 0x%x,", ConfigData->ImageOffset));\r
+ DEBUG ((DEBUG_INFO, " Legnth - 0x%x\n", ConfigData->Length));\r
if (Progress != NULL) {\r
Progress (StartPercentage);\r
}\r
+\r
Status = PerformFlashWriteWithProgress (\r
ConfigData->FirmwareType,\r
ConfigData->BaseAddress,\r
if (Progress != NULL) {\r
Progress (EndPercentage);\r
}\r
- if (!EFI_ERROR(Status)) {\r
+\r
+ if (!EFI_ERROR (Status)) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
if (ConfigData->FirmwareType == PlatformFirmwareTypeNvRam) {\r
mNvRamUpdated = TRUE;\r
} else {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;\r
}\r
+\r
return Status;\r
}\r
\r
IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress\r
)\r
{\r
- EFI_STATUS Status;\r
- UPDATE_CONFIG_DATA *ConfigData;\r
- UPDATE_CONFIG_DATA *UpdateConfigData;\r
- CONFIG_HEADER ConfigHeader;\r
- UINTN Index;\r
- UINTN TotalSize;\r
- UINTN BytesWritten;\r
- UINTN StartPercentage;\r
- UINTN EndPercentage;\r
+ EFI_STATUS Status;\r
+ UPDATE_CONFIG_DATA *ConfigData;\r
+ UPDATE_CONFIG_DATA *UpdateConfigData;\r
+ CONFIG_HEADER ConfigHeader;\r
+ UINTN Index;\r
+ UINTN TotalSize;\r
+ UINTN BytesWritten;\r
+ UINTN StartPercentage;\r
+ UINTN EndPercentage;\r
\r
if (ConfigImage == NULL) {\r
- DEBUG((DEBUG_INFO, "PlatformUpdate (NoConfig):"));\r
- DEBUG((DEBUG_INFO, " BaseAddress - 0x%x,", 0));\r
- DEBUG((DEBUG_INFO, " Length - 0x%x\n", SystemFirmwareImageSize));\r
+ DEBUG ((DEBUG_INFO, "PlatformUpdate (NoConfig):"));\r
+ DEBUG ((DEBUG_INFO, " BaseAddress - 0x%x,", 0));\r
+ DEBUG ((DEBUG_INFO, " Length - 0x%x\n", SystemFirmwareImageSize));\r
// ASSUME the whole System Firmware include NVRAM region.\r
StartPercentage = 0;\r
- EndPercentage = 100;\r
+ EndPercentage = 100;\r
if (Progress != NULL) {\r
Progress (StartPercentage);\r
}\r
+\r
Status = PerformFlashWriteWithProgress (\r
PlatformFirmwareTypeNvRam,\r
0,\r
if (Progress != NULL) {\r
Progress (EndPercentage);\r
}\r
- if (!EFI_ERROR(Status)) {\r
+\r
+ if (!EFI_ERROR (Status)) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;\r
- mNvRamUpdated = TRUE;\r
+ mNvRamUpdated = TRUE;\r
} else {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;\r
}\r
+\r
return Status;\r
}\r
\r
- DEBUG((DEBUG_INFO, "PlatformUpdate (With Config):\n"));\r
- ConfigData = NULL;\r
- ZeroMem (&ConfigHeader, sizeof(ConfigHeader));\r
- Status = ParseUpdateDataFile (\r
- ConfigImage,\r
- ConfigImageSize,\r
- &ConfigHeader,\r
- &ConfigData\r
- );\r
- DEBUG((DEBUG_INFO, "ParseUpdateDataFile - %r\n", Status));\r
- if (EFI_ERROR(Status)) {\r
+ DEBUG ((DEBUG_INFO, "PlatformUpdate (With Config):\n"));\r
+ ConfigData = NULL;\r
+ ZeroMem (&ConfigHeader, sizeof (ConfigHeader));\r
+ Status = ParseUpdateDataFile (\r
+ ConfigImage,\r
+ ConfigImageSize,\r
+ &ConfigHeader,\r
+ &ConfigData\r
+ );\r
+ DEBUG ((DEBUG_INFO, "ParseUpdateDataFile - %r\n", Status));\r
+ if (EFI_ERROR (Status)) {\r
*LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL;\r
return EFI_INVALID_PARAMETER;\r
}\r
- DEBUG((DEBUG_INFO, "ConfigHeader.NumOfUpdates - 0x%x\n", ConfigHeader.NumOfUpdates));\r
- DEBUG((DEBUG_INFO, "PcdEdkiiSystemFirmwareFileGuid - %g\n", PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid)));\r
+\r
+ DEBUG ((DEBUG_INFO, "ConfigHeader.NumOfUpdates - 0x%x\n", ConfigHeader.NumOfUpdates));\r
+ DEBUG ((DEBUG_INFO, "PcdEdkiiSystemFirmwareFileGuid - %g\n", PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid)));\r
\r
TotalSize = 0;\r
for (Index = 0; Index < ConfigHeader.NumOfUpdates; Index++) {\r
- if (CompareGuid(&ConfigData[Index].FileGuid, PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid))) {\r
+ if (CompareGuid (&ConfigData[Index].FileGuid, PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid))) {\r
TotalSize = TotalSize + ConfigData[Index].Length;\r
}\r
}\r
\r
- BytesWritten = 0;\r
- Index = 0;\r
+ BytesWritten = 0;\r
+ Index = 0;\r
UpdateConfigData = ConfigData;\r
while (Index < ConfigHeader.NumOfUpdates) {\r
- if (CompareGuid(&UpdateConfigData->FileGuid, PcdGetPtr(PcdEdkiiSystemFirmwareFileGuid))) {\r
- DEBUG((DEBUG_INFO, "FileGuid - %g (processing)\n", &UpdateConfigData->FileGuid));\r
+ if (CompareGuid (&UpdateConfigData->FileGuid, PcdGetPtr (PcdEdkiiSystemFirmwareFileGuid))) {\r
+ DEBUG ((DEBUG_INFO, "FileGuid - %g (processing)\n", &UpdateConfigData->FileGuid));\r
StartPercentage = (BytesWritten * 100) / TotalSize;\r
EndPercentage = ((BytesWritten + UpdateConfigData->Length) * 100) / TotalSize;\r
- Status = PerformUpdate (\r
- SystemFirmwareImage,\r
- SystemFirmwareImageSize,\r
- UpdateConfigData,\r
- LastAttemptVersion,\r
- LastAttemptStatus,\r
- Progress,\r
- StartPercentage,\r
- EndPercentage\r
- );\r
+ Status = PerformUpdate (\r
+ SystemFirmwareImage,\r
+ SystemFirmwareImageSize,\r
+ UpdateConfigData,\r
+ LastAttemptVersion,\r
+ LastAttemptStatus,\r
+ Progress,\r
+ StartPercentage,\r
+ EndPercentage\r
+ );\r
//\r
// Shall updates be serialized so that if an update is not successfully completed,\r
// the remaining updates won't be performed.\r
break;\r
}\r
} else {\r
- DEBUG((DEBUG_INFO, "FileGuid - %g (ignored)\n", &UpdateConfigData->FileGuid));\r
+ DEBUG ((DEBUG_INFO, "FileGuid - %g (ignored)\n", &UpdateConfigData->FileGuid));\r
}\r
\r
BytesWritten += UpdateConfigData->Length;\r
IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress\r
)\r
{\r
- EFI_STATUS Status;\r
- VOID *SystemFirmwareImage;\r
- UINTN SystemFirmwareImageSize;\r
- VOID *ConfigImage;\r
- UINTN ConfigImageSize;\r
- VOID *AuthenticatedImage;\r
- UINTN AuthenticatedImageSize;\r
+ EFI_STATUS Status;\r
+ VOID *SystemFirmwareImage;\r
+ UINTN SystemFirmwareImageSize;\r
+ VOID *ConfigImage;\r
+ UINTN ConfigImageSize;\r
+ VOID *AuthenticatedImage;\r
+ UINTN AuthenticatedImageSize;\r
\r
AuthenticatedImage = NULL;\r
AuthenticatedImageSize = 0;\r
\r
- DEBUG((DEBUG_INFO, "SystemFirmwareAuthenticatedUpdate...\n"));\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareAuthenticatedUpdate...\n"));\r
\r
- Status = CapsuleAuthenticateSystemFirmware(Image, ImageSize, FALSE, LastAttemptVersion, LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "SystemFirmwareAuthenticateImage - %r\n", Status));\r
+ Status = CapsuleAuthenticateSystemFirmware (Image, ImageSize, FALSE, LastAttemptVersion, LastAttemptStatus, &AuthenticatedImage, &AuthenticatedImageSize);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareAuthenticateImage - %r\n", Status));\r
return Status;\r
}\r
\r
- DEBUG((DEBUG_INFO, "ExtractSystemFirmwareImage ...\n"));\r
- ExtractSystemFirmwareImage(AuthenticatedImage, AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
- DEBUG((DEBUG_INFO, "ExtractConfigImage ...\n"));\r
- ExtractConfigImage(AuthenticatedImage, AuthenticatedImageSize, &ConfigImage, &ConfigImageSize);\r
+ DEBUG ((DEBUG_INFO, "ExtractSystemFirmwareImage ...\n"));\r
+ ExtractSystemFirmwareImage (AuthenticatedImage, AuthenticatedImageSize, &SystemFirmwareImage, &SystemFirmwareImageSize);\r
+ DEBUG ((DEBUG_INFO, "ExtractConfigImage ...\n"));\r
+ ExtractConfigImage (AuthenticatedImage, AuthenticatedImageSize, &ConfigImage, &ConfigImageSize);\r
\r
- DEBUG((DEBUG_INFO, "UpdateImage ...\n"));\r
- Status = UpdateImage(SystemFirmwareImage, SystemFirmwareImageSize, ConfigImage, ConfigImageSize, LastAttemptVersion, LastAttemptStatus, Progress);\r
- if (EFI_ERROR(Status)) {\r
- DEBUG((DEBUG_INFO, "UpdateImage - %r\n", Status));\r
+ DEBUG ((DEBUG_INFO, "UpdateImage ...\n"));\r
+ Status = UpdateImage (SystemFirmwareImage, SystemFirmwareImageSize, ConfigImage, ConfigImageSize, LastAttemptVersion, LastAttemptStatus, Progress);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_INFO, "UpdateImage - %r\n", Status));\r
return Status;\r
}\r
\r
- DEBUG((DEBUG_INFO, "SystemFirmwareAuthenticatedUpdate Done\n"));\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareAuthenticatedUpdate Done\n"));\r
\r
return EFI_SUCCESS;\r
}\r
EFI_STATUS\r
EFIAPI\r
GetVariableHook (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- OUT UINT32 *Attributes OPTIONAL,\r
- IN OUT UINTN *DataSize,\r
- OUT VOID *Data\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid,\r
+ OUT UINT32 *Attributes OPTIONAL,\r
+ IN OUT UINTN *DataSize,\r
+ OUT VOID *Data\r
)\r
{\r
- DEBUG((DEBUG_INFO, "GetVariableHook - %S, %g\n", VariableName, VendorGuid));\r
+ DEBUG ((DEBUG_INFO, "GetVariableHook - %S, %g\n", VariableName, VendorGuid));\r
return EFI_NOT_AVAILABLE_YET;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
GetNextVariableNameHook (\r
- IN OUT UINTN *VariableNameSize,\r
- IN OUT CHAR16 *VariableName,\r
- IN OUT EFI_GUID *VendorGuid\r
+ IN OUT UINTN *VariableNameSize,\r
+ IN OUT CHAR16 *VariableName,\r
+ IN OUT EFI_GUID *VendorGuid\r
)\r
{\r
- DEBUG((DEBUG_INFO, "GetNextVariableNameHook - %S, %g\n", VariableName, VendorGuid));\r
+ DEBUG ((DEBUG_INFO, "GetNextVariableNameHook - %S, %g\n", VariableName, VendorGuid));\r
return EFI_NOT_AVAILABLE_YET;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
SetVariableHook (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- IN UINT32 Attributes,\r
- IN UINTN DataSize,\r
- IN VOID *Data\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid,\r
+ IN UINT32 Attributes,\r
+ IN UINTN DataSize,\r
+ IN VOID *Data\r
)\r
{\r
- DEBUG((DEBUG_INFO, "SetVariableHook - %S, %g, 0x%x (0x%x)\n", VariableName, VendorGuid, Attributes, DataSize));\r
+ DEBUG ((DEBUG_INFO, "SetVariableHook - %S, %g, 0x%x (0x%x)\n", VariableName, VendorGuid, Attributes, DataSize));\r
return EFI_NOT_AVAILABLE_YET;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
QueryVariableInfoHook (\r
- IN UINT32 Attributes,\r
- OUT UINT64 *MaximumVariableStorageSize,\r
- OUT UINT64 *RemainingVariableStorageSize,\r
- OUT UINT64 *MaximumVariableSize\r
+ IN UINT32 Attributes,\r
+ OUT UINT64 *MaximumVariableStorageSize,\r
+ OUT UINT64 *RemainingVariableStorageSize,\r
+ OUT UINT64 *MaximumVariableSize\r
)\r
{\r
- DEBUG((DEBUG_INFO, "QueryVariableInfoHook - 0x%x\n", Attributes));\r
+ DEBUG ((DEBUG_INFO, "QueryVariableInfoHook - 0x%x\n", Attributes));\r
return EFI_NOT_AVAILABLE_YET;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
FmpSetImage (\r
- IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
- IN UINT8 ImageIndex,\r
- IN CONST VOID *Image,\r
- IN UINTN ImageSize,\r
- IN CONST VOID *VendorCode,\r
- IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
- OUT CHAR16 **AbortReason\r
+ IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This,\r
+ IN UINT8 ImageIndex,\r
+ IN CONST VOID *Image,\r
+ IN UINTN ImageSize,\r
+ IN CONST VOID *VendorCode,\r
+ IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress,\r
+ OUT CHAR16 **AbortReason\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_STATUS VarStatus;\r
- SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS VarStatus;\r
+ SYSTEM_FMP_PRIVATE_DATA *SystemFmpPrivate;\r
\r
- if (Image == NULL || ImageSize == 0 || AbortReason == NULL) {\r
+ if ((Image == NULL) || (ImageSize == 0) || (AbortReason == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP(This);\r
+ SystemFmpPrivate = SYSTEM_FMP_PRIVATE_DATA_FROM_FMP (This);\r
*AbortReason = NULL;\r
\r
- if (ImageIndex == 0 || ImageIndex > SystemFmpPrivate->DescriptorCount) {\r
+ if ((ImageIndex == 0) || (ImageIndex > SystemFmpPrivate->DescriptorCount)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = SystemFirmwareAuthenticatedUpdate((VOID *)Image, ImageSize, &SystemFmpPrivate->LastAttempt.LastAttemptVersion, &SystemFmpPrivate->LastAttempt.LastAttemptStatus, Progress);\r
- DEBUG((DEBUG_INFO, "SetImage - LastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
+ Status = SystemFirmwareAuthenticatedUpdate ((VOID *)Image, ImageSize, &SystemFmpPrivate->LastAttempt.LastAttemptVersion, &SystemFmpPrivate->LastAttempt.LastAttemptStatus, Progress);\r
+ DEBUG ((DEBUG_INFO, "SetImage - LastAttempt Version - 0x%x, State - 0x%x\n", SystemFmpPrivate->LastAttempt.LastAttemptVersion, SystemFmpPrivate->LastAttempt.LastAttemptStatus));\r
\r
//\r
// If NVRAM is updated, we should no longer touch variable services, because\r
\r
gRT->Hdr.CRC32 = 0;\r
gBS->CalculateCrc32 (\r
- (UINT8 *) &gRT->Hdr,\r
- gRT->Hdr.HeaderSize,\r
- &gRT->Hdr.CRC32\r
- );\r
+ (UINT8 *)&gRT->Hdr,\r
+ gRT->Hdr.HeaderSize,\r
+ &gRT->Hdr.CRC32\r
+ );\r
}\r
\r
- VarStatus = gRT->SetVariable(\r
+ VarStatus = gRT->SetVariable (\r
SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
&gSystemFmpLastAttemptVariableGuid,\r
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof(SystemFmpPrivate->LastAttempt),\r
+ sizeof (SystemFmpPrivate->LastAttempt),\r
&SystemFmpPrivate->LastAttempt\r
);\r
- DEBUG((DEBUG_INFO, "SetLastAttempt - %r\n", VarStatus));\r
+ DEBUG ((DEBUG_INFO, "SetLastAttempt - %r\n", VarStatus));\r
\r
return Status;\r
}\r
// Determine the size required for the set of EFI_FIRMWARE_IMAGE_DESCRIPTORs.\r
//\r
ImageInfoSize = 0;\r
- Status = Fmp->GetImageInfo (\r
- Fmp, // FMP Pointer\r
- &ImageInfoSize, // Buffer Size (in this case 0)\r
- NULL, // NULL so we can get size\r
- &FmpImageInfoDescriptorVer, // DescriptorVersion\r
- FmpImageInfoCount, // DescriptorCount\r
- DescriptorSize, // DescriptorSize\r
- &PackageVersion, // PackageVersion\r
- &PackageVersionName // PackageVersionName\r
- );\r
+ Status = Fmp->GetImageInfo (\r
+ Fmp, // FMP Pointer\r
+ &ImageInfoSize, // Buffer Size (in this case 0)\r
+ NULL, // NULL so we can get size\r
+ &FmpImageInfoDescriptorVer, // DescriptorVersion\r
+ FmpImageInfoCount, // DescriptorCount\r
+ DescriptorSize, // DescriptorSize\r
+ &PackageVersion, // PackageVersion\r
+ &PackageVersionName // PackageVersionName\r
+ );\r
if (Status != EFI_BUFFER_TOO_SMALL) {\r
DEBUG ((DEBUG_ERROR, "SystemFirmwareUpdateDxe: Unexpected Failure. Status = %r\n", Status));\r
return NULL;\r
// Retrieve the set of EFI_FIRMWARE_IMAGE_DESCRIPTORs.\r
//\r
PackageVersionName = NULL;\r
- Status = Fmp->GetImageInfo (\r
- Fmp,\r
- &ImageInfoSize, // ImageInfoSize\r
- FmpImageInfoBuf, // ImageInfo\r
- &FmpImageInfoDescriptorVer, // DescriptorVersion\r
- FmpImageInfoCount, // DescriptorCount\r
- DescriptorSize, // DescriptorSize\r
- &PackageVersion, // PackageVersion\r
- &PackageVersionName // PackageVersionName\r
- );\r
+ Status = Fmp->GetImageInfo (\r
+ Fmp,\r
+ &ImageInfoSize, // ImageInfoSize\r
+ FmpImageInfoBuf, // ImageInfo\r
+ &FmpImageInfoDescriptorVer, // DescriptorVersion\r
+ FmpImageInfoCount, // DescriptorCount\r
+ DescriptorSize, // DescriptorSize\r
+ &PackageVersion, // PackageVersion\r
+ &PackageVersionName // PackageVersionName\r
+ );\r
\r
//\r
// Free unused PackageVersionName return buffer\r
if (FmpImageInfoBuf != NULL) {\r
FreePool (FmpImageInfoBuf);\r
}\r
+\r
return NULL;\r
}\r
\r
UINTN DescriptorSize;\r
BOOLEAN MatchFound;\r
\r
- *HandleCount = 0;\r
+ *HandleCount = 0;\r
TempHandleCount = 0;\r
- HandleBuffer = NULL;\r
- Status = gBS->LocateHandleBuffer (\r
- ByProtocol,\r
- ProtocolGuid,\r
- NULL,\r
- &TempHandleCount,\r
- &HandleBuffer\r
- );\r
+ HandleBuffer = NULL;\r
+ Status = gBS->LocateHandleBuffer (\r
+ ByProtocol,\r
+ ProtocolGuid,\r
+ NULL,\r
+ &TempHandleCount,\r
+ &HandleBuffer\r
+ );\r
if (EFI_ERROR (Status)) {\r
return NULL;\r
}\r
for (Index2 = 0; Index2 < FmpImageInfoCount; Index2++) {\r
for (Index3 = 0; Index3 < mSystemFmpPrivate->DescriptorCount; Index3++) {\r
MatchFound = CompareGuid (\r
- &FmpImageInfoBuf->ImageTypeId,\r
- &mSystemFmpPrivate->ImageDescriptor[Index3].ImageTypeId\r
- );\r
+ &FmpImageInfoBuf->ImageTypeId,\r
+ &mSystemFmpPrivate->ImageDescriptor[Index3].ImageTypeId\r
+ );\r
if (MatchFound) {\r
break;\r
}\r
}\r
+\r
if (MatchFound) {\r
break;\r
}\r
+\r
//\r
// Increment the buffer pointer ahead by the size of the descriptor\r
//\r
FmpImageInfoBuf = (EFI_FIRMWARE_IMAGE_DESCRIPTOR *)(((UINT8 *)FmpImageInfoBuf) + DescriptorSize);\r
}\r
+\r
if (MatchFound) {\r
HandleBuffer[*HandleCount] = HandleBuffer[Index];\r
(*HandleCount)++;\r
FreePool (HandleBuffer);\r
return NULL;\r
}\r
+\r
return HandleBuffer;\r
}\r
\r
DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Found %d matching System FMP instances\n", HandleCount));\r
\r
for (Index = 0; Index < HandleCount; Index++) {\r
- Status = gBS->HandleProtocol(\r
+ Status = gBS->HandleProtocol (\r
HandleBuffer[Index],\r
&gSystemFmpProtocolGuid,\r
(VOID **)&SystemFmp\r
if (EFI_ERROR (Status)) {\r
continue;\r
}\r
+\r
DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Uninstall SystemFmp produced by another capsule\n"));\r
Status = gBS->UninstallProtocolInterface (\r
HandleBuffer[Index],\r
return Status;\r
}\r
}\r
+\r
if (HandleBuffer != NULL) {\r
FreePool (HandleBuffer);\r
}\r
//\r
// Look for a handle with matching Firmware Management Protocol\r
//\r
- HandleCount = 0;\r
+ HandleCount = 0;\r
HandleBuffer = FindMatchingFmpHandles (\r
&gEfiFirmwareManagementProtocolGuid,\r
&HandleCount\r
DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Found %d matching FMP instances\n", HandleCount));\r
\r
switch (HandleCount) {\r
- case 0:\r
- //\r
- // Install FMP protocol onto a new handle.\r
- //\r
- DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Install FMP onto a new handle\n"));\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mSystemFmpPrivate->Handle,\r
- &gEfiFirmwareManagementProtocolGuid,\r
- &mSystemFmpPrivate->Fmp,\r
- NULL\r
- );\r
- break;\r
- case 1:\r
- //\r
- // Install System FMP protocol onto handle with matching FMP Protocol\r
- //\r
- DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Install System FMP onto matching FMP handle\n"));\r
- mSystemFmpPrivate->Handle = HandleBuffer[0];\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &HandleBuffer[0],\r
- &gSystemFmpProtocolGuid,\r
- &mSystemFmpPrivate->Fmp,\r
- NULL\r
- );\r
- break;\r
- default:\r
- //\r
- // More than one matching handle is not expected. Unload driver.\r
- //\r
- DEBUG ((DEBUG_ERROR, "SystemFirmwareUpdateDxe: More than one matching FMP handle. Unload driver.\n"));\r
- Status = EFI_DEVICE_ERROR;\r
- break;\r
+ case 0:\r
+ //\r
+ // Install FMP protocol onto a new handle.\r
+ //\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Install FMP onto a new handle\n"));\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &mSystemFmpPrivate->Handle,\r
+ &gEfiFirmwareManagementProtocolGuid,\r
+ &mSystemFmpPrivate->Fmp,\r
+ NULL\r
+ );\r
+ break;\r
+ case 1:\r
+ //\r
+ // Install System FMP protocol onto handle with matching FMP Protocol\r
+ //\r
+ DEBUG ((DEBUG_INFO, "SystemFirmwareUpdateDxe: Install System FMP onto matching FMP handle\n"));\r
+ mSystemFmpPrivate->Handle = HandleBuffer[0];\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &HandleBuffer[0],\r
+ &gSystemFmpProtocolGuid,\r
+ &mSystemFmpPrivate->Fmp,\r
+ NULL\r
+ );\r
+ break;\r
+ default:\r
+ //\r
+ // More than one matching handle is not expected. Unload driver.\r
+ //\r
+ DEBUG ((DEBUG_ERROR, "SystemFirmwareUpdateDxe: More than one matching FMP handle. Unload driver.\n"));\r
+ Status = EFI_DEVICE_ERROR;\r
+ break;\r
}\r
\r
if (HandleBuffer != NULL) {\r