MdePkg: Add a new DxeServicesLib GetFileDevicePathFromAnyFv () function
Contributed-under: TianoCore Contribution Agreement 1.0 From: Shia Cinnamon <cinnamon.shia@hpe.com> Signed-off-by: Wang Nickle <nickle.wang@hpe.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18655 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
These functions help access data from sections of FFS files or from file path.
|
||||
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that accompanies this distribution.
|
||||
The full text of the license may be found at
|
||||
@@ -262,5 +263,47 @@ GetFileBufferByFilePath (
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
);
|
||||
|
||||
/**
|
||||
Searches all the available firmware volumes and returns the file device path of first matching
|
||||
FFS section.
|
||||
|
||||
This function searches all the firmware volumes for FFS files with an FFS filename specified by NameGuid.
|
||||
The order that the firmware volumes is searched is not deterministic. For each FFS file found a search
|
||||
is made for FFS sections of type SectionType.
|
||||
|
||||
If SectionType is EFI_SECTION_TE, and the search with an FFS file fails,
|
||||
the search will be retried with a section type of EFI_SECTION_PE32.
|
||||
This function must be called with a TPL <= TPL_NOTIFY.
|
||||
|
||||
If NameGuid is NULL, then ASSERT().
|
||||
|
||||
@param NameGuid A pointer to to the FFS filename GUID to search for
|
||||
within any of the firmware volumes in the platform.
|
||||
@param SectionType Indicates the FFS section type to search for within
|
||||
the FFS file specified by NameGuid.
|
||||
@param SectionInstance Indicates which section instance within the FFS file
|
||||
specified by NameGuid to retrieve.
|
||||
@param FvFileDevicePath Device path for the target FFS
|
||||
file.
|
||||
|
||||
@retval EFI_SUCCESS The specified file device path of FFS section was returned.
|
||||
@retval EFI_NOT_FOUND The specified file device path of FFS section could not be found.
|
||||
@retval EFI_DEVICE_ERROR The FFS section could not be retrieves due to a
|
||||
device error.
|
||||
@retval EFI_ACCESS_DENIED The FFS section could not be retrieves because the
|
||||
firmware volume that contains the matching FFS section does not
|
||||
allow reads.
|
||||
@retval EFI_INVALID_PARAMETER FvFileDevicePath is NULL.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GetFileDevicePathFromAnyFv (
|
||||
IN CONST EFI_GUID *NameGuid,
|
||||
IN EFI_SECTION_TYPE SectionType,
|
||||
IN UINTN SectionInstance,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **FvFileDevicePath
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user