Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn> > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Konstantin > Aladyshev > 发送时间: 2022年8月30日 18:15 > 收件人: devel@edk2.groups.io > 抄送: bob.c.f...@intel.com; gaolim...@byosoft.com.cn; > yuwei.c...@intel.com; Konstantin Aladyshev <aladyshe...@gmail.com> > 主题: [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 <aladyshe...@gmail.com> > --- > 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+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub > [gaolim...@byosoft.com.cn] > -=-=-=-=-=-= >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#94306): https://edk2.groups.io/g/devel/message/94306 Mute This Topic: https://groups.io/mt/93921338/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-