EmbeddedPkg/PrePiLib: Add FFS_CHECK_SECTION_HOOK when finding section
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4152 EmbeddedPkg/PrePiLib provides the service of finding sections based on the input SectionType. But sometimes there maybe multiple sections with the same SectionType. FFS_CHECK_SECTION_HOOK is a hook which can be called to do additional check. Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Abner Chang <abner.chang@amd.com> Cc: Daniel Schaefer <git@danielschaefer.me> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Acked-by: Ard Biesheuvel <ardb+tianocore@kernel.org> Signed-off-by: Min Xu <min.m.xu@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
@@ -53,10 +53,22 @@ FfsFindNextFile (
|
||||
);
|
||||
|
||||
/**
|
||||
This service enables discovery sections of a given type within a valid FFS file.
|
||||
* This is a hook which is used to check if the section is the target one.
|
||||
*
|
||||
*/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *FFS_CHECK_SECTION_HOOK)(
|
||||
IN EFI_COMMON_SECTION_HEADER *Section
|
||||
);
|
||||
|
||||
@param SearchType The value of the section type to find.
|
||||
@param FfsFileHeader A pointer to the file header that contains the set of sections to
|
||||
/**
|
||||
This service enables discovery sections of a given type within a valid FFS file.
|
||||
Caller also can provide a SectionCheckHook to do additional checking.
|
||||
|
||||
@param SectionType The value of the section type to find.
|
||||
@param SectionCheckHook A hook which can check if the section is the target one.
|
||||
@param FileHeader A pointer to the file header that contains the set of sections to
|
||||
be searched.
|
||||
@param SectionData A pointer to the discovered section, if successful.
|
||||
|
||||
@@ -67,9 +79,10 @@ FfsFindNextFile (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FfsFindSectionData (
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN EFI_PEI_FILE_HANDLE FileHandle,
|
||||
OUT VOID **SectionData
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN FFS_CHECK_SECTION_HOOK SectionCheckHook,
|
||||
IN EFI_PEI_FILE_HANDLE FileHandle,
|
||||
OUT VOID **SectionData
|
||||
);
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user