回复: [edk2-devel] [PATCH 5/6] BaseTools/VolInfo: Parse apriori files


gaoliming
 

Reviewed-by: Liming Gao <gaoliming@...>

-----邮件原件-----
发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Konstantin
Aladyshev
发送时间: 2022年8月30日 18:15
收件人: devel@edk2.groups.io
抄送: bob.c.feng@...; gaoliming@...;
yuwei.chen@...; Konstantin Aladyshev <aladyshev22@...>
主题: [edk2-devel] [PATCH 5/6] BaseTools/VolInfo: Parse apriori files

Output file GUIDs from the DXE and PEI apriori files.

Signed-off-by: Konstantin Aladyshev <aladyshev22@...>
---
BaseTools/Source/C/VolInfo/VolInfo.c | 74
++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)

diff --git a/BaseTools/Source/C/VolInfo/VolInfo.c
b/BaseTools/Source/C/VolInfo/VolInfo.c
index 2d7c6212b3..28c6806cf0 100644
--- a/BaseTools/Source/C/VolInfo/VolInfo.c
+++ b/BaseTools/Source/C/VolInfo/VolInfo.c
@@ -43,6 +43,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//



EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid =
EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID;

+EFI_GUID gPeiAprioriFileNameGuid = { 0x1b45cc0a, 0x156a, 0x428a,
{ 0XAF, 0x62, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6 }};

+EFI_GUID gAprioriGuid = { 0xFC510EE7, 0xFFDC, 0x11D4, { 0xBD, 0x41,
0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }};



#define UTILITY_MAJOR_VERSION 1

#define UTILITY_MINOR_VERSION 0

@@ -107,6 +109,12 @@ ReadHeader (
OUT BOOLEAN *ErasePolarity

);



+STATIC

+EFI_STATUS

+PrintAprioriFile (

+ EFI_FFS_FILE_HEADER *FileHeader

+ );

+

STATIC

EFI_STATUS

PrintFileInfo (

@@ -1083,6 +1091,53 @@ Returns:
return EFI_SUCCESS;

}



+STATIC

+EFI_STATUS

+PrintAprioriFile (

+ EFI_FFS_FILE_HEADER *FileHeader

+ )

+/*++

+

+Routine Description:

+

+ Print GUIDs from the APRIORI file

+

+Arguments:

+

+ FileHeader - The file header

+

+Returns:

+

+ EFI_SUCCESS - The APRIORI file was parsed correctly

+ EFI_SECTION_ERROR - Problem with file parsing

+

+--*/

+{

+ UINT8 GuidBuffer[PRINTED_GUID_BUFFER_SIZE];

+ UINT32 HeaderSize;

+

+ HeaderSize = FvBufGetFfsHeaderSize (FileHeader);

+

+ if (FileHeader->Type != EFI_FV_FILETYPE_FREEFORM)

+ return EFI_SECTION_ERROR;

+

+ EFI_COMMON_SECTION_HEADER* SectionHeader =
(EFI_COMMON_SECTION_HEADER *) ((UINTN) FileHeader + HeaderSize);

+ if (SectionHeader->Type != EFI_SECTION_RAW)

+ return EFI_SECTION_ERROR;

+

+ UINT32 SectionLength = GetSectionFileLength (SectionHeader);

+ EFI_GUID* FileName = (EFI_GUID *) ((UINT8 *) SectionHeader + sizeof
(EFI_COMMON_SECTION_HEADER));

+ while (((UINT8 *) FileName) < ((UINT8 *) SectionHeader +
SectionLength))
{

+ PrintGuidToBuffer (FileName, GuidBuffer, sizeof (GuidBuffer), TRUE);

+ printf ("%s ", GuidBuffer);

+ PrintGuidName (GuidBuffer);

+ printf ("\n");

+ FileName++;

+ }

+

+ return EFI_SUCCESS;

+}

+

STATIC

EFI_STATUS

PrintFileInfo (

@@ -1339,6 +1394,25 @@ Returns:
break;

}



+ if (!CompareGuid (

+ &FileHeader->Name,

+ &gPeiAprioriFileNameGuid

+ ))

+ {

+ printf("\n");

+ printf("PEI APRIORI FILE:\n");

+ return PrintAprioriFile (FileHeader);

+ }

+ if (!CompareGuid (

+ &FileHeader->Name,

+ &gAprioriGuid

+ ))

+ {

+ printf("\n");

+ printf("DXE APRIORI FILE:\n");

+ return PrintAprioriFile (FileHeader);

+ }

+

return EFI_SUCCESS;

}



--
2.25.1



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92972): https://edk2.groups.io/g/devel/message/92972
Mute This Topic: https://groups.io/mt/93345661/4905953
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub
[gaoliming@...]
-=-=-=-=-=-=

Join devel@edk2.groups.io to automatically receive all group messages.