1 /** @file
2   This file provides location and format of a firmware volume.
3 
4   Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13   @par Revision Reference:
14   This PPI is introduced in PI Version 1.0.
15 
16 **/
17 
18 #ifndef __EFI_PEI_FIRMWARE_VOLUME_INFO_H__
19 #define __EFI_PEI_FIRMWARE_VOLUME_INFO_H__
20 
21 
22 
23 #define EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID \
24 { 0x49edb1c1, 0xbf21, 0x4761, { 0xbb, 0x12, 0xeb, 0x0, 0x31, 0xaa, 0xbb, 0x39 } }
25 
26 typedef struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI  EFI_PEI_FIRMWARE_VOLUME_INFO_PPI;
27 
28 ///
29 ///  This PPI describes the location and format of a firmware volume.
30 ///  The FvFormat can be EFI_FIRMWARE_FILE_SYSTEM2_GUID or the GUID for
31 ///  a user-defined format. The  EFI_FIRMWARE_FILE_SYSTEM2_GUID is
32 ///  the PI Firmware Volume format.
33 ///
34 struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI {
35   ///
36   /// Unique identifier of the format of the memory-mapped firmware volume.
37   ///
38   EFI_GUID  FvFormat;
39   ///
40   /// Points to a buffer which allows the EFI_PEI_FIRMWARE_VOLUME_PPI to process
41   /// the volume. The format of this buffer is specific to the FvFormat.
42   /// For memory-mapped firmware volumes, this typically points to the first byte
43   /// of the firmware volume.
44   ///
45   VOID      *FvInfo;
46   ///
47   /// Size of the data provided by FvInfo. For memory-mapped firmware volumes,
48   /// this is typically the size of the firmware volume.
49   ///
50   UINT32    FvInfoSize;
51   ///
52   /// If the firmware volume originally came from a firmware file, then these
53   /// point to the parent firmware volume name and firmware volume file.
54   /// If it did not originally come from a firmware file, these should be NULL.
55   ///
56   EFI_GUID  *ParentFvName;
57   ///
58   /// If the firmware volume originally came from a firmware file, then these
59   /// point to the parent firmware volume name and firmware volume file.
60   /// If it did not originally come from a firmware file, these should be NULL.
61   ///
62   EFI_GUID  *ParentFileName;
63 };
64 
65 extern EFI_GUID gEfiPeiFirmwareVolumeInfoPpiGuid;
66 
67 #endif
68 
69