4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The internal header file for firmware volume related definitions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ((ActualSize) + (((Alignment) - ((ActualSize) & ((Alignment) - 1))) & ((Alignment) - 1)))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define PEI_FW_VOL_SIGNATURE SIGNATURE_32('P','F','W','V')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CR(a, PEI_FW_VOL_INSTANCE, Fv, PEI_FW_VOL_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Process a firmware volume and create a volume handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Create a volume handle from the information in the buffer. For
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync memory-mapped firmware volumes, Buffer and BufferSize refer to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the start of the firmware volume and the firmware volume size.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync For non memory-mapped firmware volumes, this points to a
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync buffer which contains the necessary information for creating
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the firmware volume handle. Normally, these values are derived
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync from the EFI_FIRMWARE_VOLUME_INFO_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Buffer Points to the start of the buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param BufferSize Size of the buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle Points to the returned firmware volume
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync handle. The firmware volume handle must
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be unique within the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Firmware volume handle created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_VOLUME_CORRUPTED Volume was corrupt.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Finds the next file of the specified type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This service enables PEI modules to discover additional firmware files.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The FileHandle must be unique within the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SearchType A filter to find only files of this type. Type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_FV_FILETYPE_ALL causes no filtering to be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle Handle of firmware volume in which to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHandle Points to the current handle from which to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync begin searching or NULL to start at the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync beginning of the firmware volume. Updated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync upon return to reflect the file found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The file was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The file was not found. FileHandle contains NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find a file within a volume by its name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This service searches for files with a specific name, within
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync either the specified firmware volume or all firmware volumes.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileName A pointer to the name of the file to find
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync within the firmware volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle Upon entry, the pointer to the firmware
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync volume to search or NULL if all firmware
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync volumes should be searched. Upon exit, the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync actual firmware volume in which the file was
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHandle Upon exit, points to the found file's
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync handle or NULL if it could not be found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS File was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND File was not found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER FvHandle or FileHandle or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FileName was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find the next matching section in the firmware file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This service enables PEI modules to discover sections
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of a given type within a valid file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SearchType A filter to find only sections of this
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHandle Handle of firmware file in which to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SectionData Updated upon return to point to the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync section found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Section was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND Section of the specified type was not
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync found. SectionData contains NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Returns information about a specific file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function returns information about a specific
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync file, including its file name, type, attributes, starting
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync address and size.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHandle Handle of the file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileInfo Upon exit, points to the file's
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS File information returned.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If FileHandle does not
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync represent a valid file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER If FileInfo is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function returns information about the firmware volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Points to this instance of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle Handle to the firmware handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param VolumeInfo Points to the returned firmware volume
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Information returned successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER FvHandle does not indicate a valid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync firmware volume or VolumeInfo is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert the handle of FV to pointer of corresponding PEI_CORE_FV_HANDLE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle The handle of a FV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval NULL if can not find.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Pointer of corresponding PEI_CORE_FV_HANDLE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Given the input file pointer, search for the next matching file in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FFS volume as defined by SearchType. The search starts from FileHeader inside
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the Firmware Volume defined by FwVolHeader.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvHandle Pointer to the FV header of the volume to search
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileName File name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SearchType Filter to find only files of this type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Type EFI_FV_FILETYPE_ALL causes no filtering to be done.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FileHandle This parameter must point to a valid FFS volume.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param AprioriFile Pointer to AprioriFile image in this FV if has
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_NOT_FOUND No files matching the search criteria were found
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Success to search given file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Report the information for a new discoveried FV in unknown format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the EFI_PEI_FIRMWARE_VOLUME_PPI has not been install for specifical FV format, but
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the FV in this FV format has been discoveried, then the information of this FV
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync will be cached into PEI_CORE_INSTANCE's UnknownFvInfo array.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Also a notification would be installed for unknown FV format guid, if EFI_PEI_FIRMWARE_VOLUME_PPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is installed later by platform's PEIM, the original unknown FV will be processed by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync using new installed EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PrivateData Point to instance of PEI_CORE_INSTANCE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Format Point to the unknown FV format guid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvInfo Point to FvInfo buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvInfoSize The size of FvInfo buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The FV info array in PEI_CORE_INSTANCE has no more spaces.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Success to add the information for unknown FV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find the FV information according to FV format guid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This routine also will remove the FV information found by given FV format guid from
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PrivateData->UnknownFvInfo[].
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PrivateData Point to instance of PEI_CORE_INSTANCE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Format Point to given FV format guid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvInfo On return, the pointer of FV information buffer in given FV format guid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FvInfoSize On return, the size of FV information buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The FV is not found for new installed EFI_PEI_FIRMWARE_VOLUME_PPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Success to find a FV which could be processed by new installed EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Notification callback function for EFI_PEI_FIRMWARE_VOLUME_PPI.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync When a EFI_PEI_FIRMWARE_VOLUME_PPI is installed to support new FV format, this
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync routine is called to process all discoveried FVs in this format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NotifyDescriptor Address of the notification descriptor data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Ppi Address of the PPI that was installed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The notification callback is processed correctly.