]>
Commit | Line | Data |
---|---|---|
72765a93 | 1 | /** @file\r |
f22f941e | 2 | This file declares FindFv PPI, which is used to locate FVs that contain PEIMs in PEI.\r |
72765a93 | 3 | \r |
2b3687db | 4 | Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r |
f22f941e | 5 | This program and the accompanying materials are licensed and made available under \r |
6 | the terms and conditions of the BSD License that accompanies this distribution. \r | |
7 | The full text of the license may be found at\r | |
8 | http://opensource.org/licenses/bsd-license.php. \r | |
9 | \r | |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r | |
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
72765a93 | 12 | \r |
72765a93 | 13 | @par Revision Reference:\r |
14 | This PPI is defined in PEI CIS\r | |
f22f941e | 15 | Version 0.91.\r |
72765a93 | 16 | \r |
17 | **/\r | |
18 | \r | |
694b922c | 19 | #ifndef _FIND_FV_H_\r |
20 | #define _FIND_FV_H_\r | |
21 | \r | |
3f17e6d7 LG |
22 | ///\r |
23 | /// Inconsistent with specification here: \r | |
5259c97d | 24 | /// GUID value format has been changed to the standard GUID format.\r |
3f17e6d7 | 25 | ///\r |
72765a93 | 26 | #define EFI_PEI_FIND_FV_PPI_GUID \\r |
27 | { \\r | |
28 | 0x36164812, 0xa023, 0x44e5, {0xbd, 0x85, 0x5, 0xbf, 0x3c, 0x77, 0x0, 0xaa } \\r | |
29 | }\r | |
30 | \r | |
31 | typedef struct _EFI_PEI_FIND_FV_PPI EFI_PEI_FIND_FV_PPI;\r | |
32 | \r | |
33 | /**\r | |
694b922c | 34 | This interface returns the base address of the firmware volume whose index\r |
5259c97d | 35 | was passed in FvNumber. Once this function reports a firmware volume\r |
72765a93 | 36 | index/base address pair, that index/address pairing must continue throughout PEI.\r |
37 | \r | |
f22f941e | 38 | @param PeiServices The pointer to the PEI Services Table.\r |
72765a93 | 39 | @param This Interface pointer that implements the Find FV service.\r |
40 | @param FvNumber The index of the firmware volume to locate.\r | |
41 | @param FvAddress The address of the volume to discover.\r | |
42 | \r | |
43 | @retval EFI_SUCCESS An additional firmware volume was found.\r | |
44 | @retval EFI_OUT_OF_RESOURCES There are no firmware volumes for the given FvNumber.\r | |
45 | @retval EFI_INVALID_PARAMETER *FvAddress is NULL.\r | |
46 | \r | |
47 | **/\r | |
48 | typedef\r | |
49 | EFI_STATUS\r | |
69686d56 | 50 | (EFIAPI *EFI_PEI_FIND_FV_FINDFV)(\r |
470d0b27 | 51 | IN EFI_PEI_FIND_FV_PPI *This,\r |
52 | IN EFI_PEI_SERVICES **PeiServices,\r | |
53 | IN UINT8 *FvNumber,\r | |
54 | IN OUT EFI_FIRMWARE_VOLUME_HEADER **FVAddress\r | |
72765a93 | 55 | );\r |
56 | \r | |
57 | /**\r | |
72765a93 | 58 | Hardware mechanisms for locating FVs in a platform vary widely.\r |
694b922c | 59 | EFI_PEI_FIND_FV_PPI serves to abstract this variation so that the\r |
72765a93 | 60 | PEI Foundation can remain standard across a wide variety of platforms.\r |
72765a93 | 61 | **/\r |
62 | struct _EFI_PEI_FIND_FV_PPI {\r | |
2bbaeb0d | 63 | EFI_PEI_FIND_FV_FINDFV FindFv; ///< Service that abstracts the location of additional firmware volumes.\r |
72765a93 | 64 | };\r |
65 | \r | |
66 | extern EFI_GUID gEfiFindFvPpiGuid;\r | |
67 | \r | |
68 | #endif\r |