EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h

Go to the documentation of this file.
00001 /*++
00002 
00003 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
00004 This program and the accompanying materials                          
00005 are licensed and made available under the terms and conditions of the BSD License         
00006 which accompanies this distribution.  The full text of the license may be found at        
00007 http://opensource.org/licenses/bsd-license.php                                            
00008                                                                                           
00009 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
00010 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             
00011 
00012 Module Name:
00013 
00014   FirmwareVolume.h
00015 
00016 Abstract:
00017 
00018   PI 1.0 spec definition.
00019 
00020 --*/
00021 
00022 #ifndef __FIRMWARE_VOLUME_H__
00023 #define __FIRMWARE_VOLUME_H__
00024 
00025 EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_PPI);
00026 
00027 //
00028 // Statements that include other files
00029 //
00030 #include "EfiFirmwareVolumeHeader.h"
00031 #include "EfiFirmwareFileSystem.h"
00032 #include "EfiFirmwareVolume.h"
00033 
00034 typedef VOID  * EFI_PEI_FILE_HANDLE;
00035 typedef VOID  * EFI_PEI_FV_HANDLE;
00036 
00037 
00038 typedef struct {
00039   EFI_GUID                FileName;
00040   EFI_FV_FILETYPE         FileType;
00041   EFI_FV_FILE_ATTRIBUTES  FileAttributes;
00042   VOID                    *Buffer;
00043   UINT32                  BufferSize;
00044 } EFI_FV_FILE_INFO;
00045 
00046 typedef struct {
00047   EFI_FVB_ATTRIBUTES  FvAttributes;
00048   EFI_GUID            FvFormat;
00049   EFI_GUID            FvName;
00050   VOID                *FvStart;
00051   UINT64              FvSize;
00052 } EFI_FV_INFO;
00053 
00054 
00055 
00056 typedef
00057 EFI_STATUS
00058 (EFIAPI *EFI_PEI_FV_PROCESS_FV) (
00059   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI        *This,
00060   IN  VOID                                    *Buffer,
00061   IN  UINTN                                   BufferSize,
00062   OUT EFI_PEI_FV_HANDLE                       *FvHandle
00063   );
00064 
00065 
00066 typedef
00067 EFI_STATUS
00068 (EFIAPI *EFI_PEI_FV_FIND_FILE_TYPE) (
00069   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI       *This,
00070   IN EFI_FV_FILETYPE                         SearchType,
00071   IN EFI_PEI_FV_HANDLE                       FvHandle,
00072   IN OUT EFI_PEI_FILE_HANDLE                 *FileHandle
00073   );
00074 
00075 typedef 
00076 EFI_STATUS
00077 (EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) (
00078   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI     *This,
00079   IN CONST EFI_GUID                        *FileName,
00080   IN OUT EFI_PEI_FV_HANDLE                 *FvHandle,
00081   OUT EFI_PEI_FILE_HANDLE                  *FileHandle
00082   );
00083 
00084 typedef
00085 EFI_STATUS
00086 (EFIAPI *EFI_PEI_FV_GET_FILE_INFO) (
00087   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI     *This,
00088   IN EFI_PEI_FILE_HANDLE                   FileHandle,
00089   OUT EFI_FV_FILE_INFO                     *FileInfo
00090   );
00091 
00092 typedef
00093 EFI_STATUS
00094 (EFIAPI *EFI_PEI_FV_GET_INFO)(
00095   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI  *This,
00096   IN EFI_PEI_FV_HANDLE                  FvHandle,
00097   OUT EFI_FV_INFO                       *VolumeInfo
00098   );
00099 
00100 typedef
00101 EFI_STATUS
00102 (EFIAPI *EFI_PEI_FV_FIND_SECTION) (
00103   IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI   *This,
00104   IN EFI_SECTION_TYPE                    SearchType,
00105   IN EFI_PEI_FILE_HANDLE                 FileHandle,
00106   OUT VOID                               **SectionData
00107   );
00108 
00109 struct _EFI_PEI_FIRMWARE_VOLUME_PPI {
00110   EFI_PEI_FV_PROCESS_FV             ProcessVolume;
00111   EFI_PEI_FV_FIND_FILE_TYPE         FindFileByType;   
00112   EFI_PEI_FV_FIND_FILE_NAME         FindFileByName;     
00113   EFI_PEI_FV_GET_FILE_INFO          GetFileInfo;      
00114   EFI_PEI_FV_GET_INFO               GetVolumeInfo;
00115   EFI_PEI_FV_FIND_SECTION           FindSectionByType;
00116 };
00117 
00118 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines