FindFv.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /** @file
  2. This file declares FindFv PPI, which is used to locate FVs that contain PEIMs in PEI.
  3. Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. @par Revision Reference:
  6. This PPI is defined in PEI CIS
  7. Version 0.91.
  8. **/
  9. #ifndef _FIND_FV_H_
  10. #define _FIND_FV_H_
  11. ///
  12. /// Inconsistent with specification here:
  13. /// GUID value format has been changed to the standard GUID format.
  14. ///
  15. #define EFI_PEI_FIND_FV_PPI_GUID \
  16. { \
  17. 0x36164812, 0xa023, 0x44e5, {0xbd, 0x85, 0x5, 0xbf, 0x3c, 0x77, 0x0, 0xaa } \
  18. }
  19. typedef struct _EFI_PEI_FIND_FV_PPI EFI_PEI_FIND_FV_PPI;
  20. /**
  21. This interface returns the base address of the firmware volume whose index
  22. was passed in FvNumber. Once this function reports a firmware volume
  23. index/base address pair, that index/address pairing must continue throughout PEI.
  24. @param PeiServices The pointer to the PEI Services Table.
  25. @param This Interface pointer that implements the Find FV service.
  26. @param FvNumber The index of the firmware volume to locate.
  27. @param FvAddress The address of the volume to discover.
  28. @retval EFI_SUCCESS An additional firmware volume was found.
  29. @retval EFI_OUT_OF_RESOURCES There are no firmware volumes for the given FvNumber.
  30. @retval EFI_INVALID_PARAMETER *FvAddress is NULL.
  31. **/
  32. typedef
  33. EFI_STATUS
  34. (EFIAPI *EFI_PEI_FIND_FV_FINDFV)(
  35. IN EFI_PEI_FIND_FV_PPI *This,
  36. IN EFI_PEI_SERVICES **PeiServices,
  37. IN UINT8 *FvNumber,
  38. IN OUT EFI_FIRMWARE_VOLUME_HEADER **FVAddress
  39. );
  40. /**
  41. Hardware mechanisms for locating FVs in a platform vary widely.
  42. EFI_PEI_FIND_FV_PPI serves to abstract this variation so that the
  43. PEI Foundation can remain standard across a wide variety of platforms.
  44. **/
  45. struct _EFI_PEI_FIND_FV_PPI {
  46. EFI_PEI_FIND_FV_FINDFV FindFv; ///< Service that abstracts the location of additional firmware volumes.
  47. };
  48. extern EFI_GUID gEfiFindFvPpiGuid;
  49. #endif