//\r
\r
EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid = EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID;\r
+EFI_GUID gPeiAprioriFileNameGuid = { 0x1b45cc0a, 0x156a, 0x428a, { 0XAF, 0x62, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 }};\r
+EFI_GUID gAprioriGuid = { 0xFC510EE7, 0xFFDC, 0x11D4, { 0xBD, 0x41, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};\r
\r
#define UTILITY_MAJOR_VERSION 1\r
#define UTILITY_MINOR_VERSION 0\r
OUT BOOLEAN *ErasePolarity\r
);\r
\r
+STATIC\r
+EFI_STATUS\r
+PrintAprioriFile (\r
+ EFI_FFS_FILE_HEADER *FileHeader\r
+ );\r
+\r
STATIC\r
EFI_STATUS\r
PrintFileInfo (\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
+EFI_STATUS\r
+PrintAprioriFile (\r
+ EFI_FFS_FILE_HEADER *FileHeader\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Print GUIDs from the APRIORI file\r
+\r
+Arguments:\r
+\r
+ FileHeader - The file header\r
+\r
+Returns:\r
+\r
+ EFI_SUCCESS - The APRIORI file was parsed correctly\r
+ EFI_SECTION_ERROR - Problem with file parsing\r
+\r
+--*/\r
+{\r
+ UINT8 GuidBuffer[PRINTED_GUID_BUFFER_SIZE];\r
+ UINT32 HeaderSize;\r
+\r
+ HeaderSize = FvBufGetFfsHeaderSize (FileHeader);\r
+\r
+ if (FileHeader->Type != EFI_FV_FILETYPE_FREEFORM)\r
+ return EFI_SECTION_ERROR;\r
+\r
+ EFI_COMMON_SECTION_HEADER* SectionHeader = (EFI_COMMON_SECTION_HEADER *) ((UINTN) FileHeader + HeaderSize);\r
+ if (SectionHeader->Type != EFI_SECTION_RAW)\r
+ return EFI_SECTION_ERROR;\r
+\r
+ UINT32 SectionLength = GetSectionFileLength (SectionHeader);\r
+ EFI_GUID* FileName = (EFI_GUID *) ((UINT8 *) SectionHeader + sizeof (EFI_COMMON_SECTION_HEADER));\r
+ while (((UINT8 *) FileName) < ((UINT8 *) SectionHeader + SectionLength)) {\r
+ PrintGuidToBuffer (FileName, GuidBuffer, sizeof (GuidBuffer), TRUE);\r
+ printf ("%s ", GuidBuffer);\r
+ PrintGuidName (GuidBuffer);\r
+ printf ("\n");\r
+ FileName++;\r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+}\r
+\r
STATIC\r
EFI_STATUS\r
PrintFileInfo (\r
break;\r
}\r
\r
+ if (!CompareGuid (\r
+ &FileHeader->Name,\r
+ &gPeiAprioriFileNameGuid\r
+ ))\r
+ {\r
+ printf("\n");\r
+ printf("PEI APRIORI FILE:\n");\r
+ return PrintAprioriFile (FileHeader);\r
+ }\r
+ if (!CompareGuid (\r
+ &FileHeader->Name,\r
+ &gAprioriGuid\r
+ ))\r
+ {\r
+ printf("\n");\r
+ printf("DXE APRIORI FILE:\n");\r
+ return PrintAprioriFile (FileHeader);\r
+ }\r
+\r
return EFI_SUCCESS;\r
}\r
\r