summaryrefslogtreecommitdiff
path: root/Core/PPI/FirmwareVolume.h
blob: 2b6e3a1ce1c594d231e2738905ce1de2d75184e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*++

Copyright (c) 2007 - 2009, Intel Corporation                                                         
All rights reserved. This program and the accompanying materials                          
are licensed and made available under the terms and conditions of the BSD License         
which accompanies this distribution.  The full text of the license may be found at        
http://opensource.org/licenses/bsd-license.php                                            
                                                                                          
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             

Module Name:

  FirmwareVolume.h

Abstract:

  PI 1.0 spec definition.

--*/

#ifndef __FIRMWARE_VOLUME_H__
#define __FIRMWARE_VOLUME_H__

#if defined(PI_SPECIFICATION_VERSION)&&(PI_SPECIFICATION_VERSION>=0x00010000)
#include <Pei.h>

EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_PPI);

typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
typedef VOID  * EFI_PEI_FILE_HANDLE;
typedef VOID  * EFI_PEI_FV_HANDLE;

typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FV_PROCESS_FV) (
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI        *This,
  IN  VOID                                    *Buffer,
  IN  UINTN                                   BufferSize,
  OUT EFI_PEI_FV_HANDLE                       *FvHandle
  );


typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FV_FIND_FILE_TYPE) (
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI       *This,
  IN EFI_FV_FILETYPE                         SearchType,
  IN EFI_PEI_FV_HANDLE                       FvHandle,
  IN OUT EFI_PEI_FILE_HANDLE                 *FileHandle
  );

typedef 
EFI_STATUS
(EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) (
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI     *This,
  IN CONST EFI_GUID                        *FileName,
  IN OUT EFI_PEI_FV_HANDLE                 *FvHandle,
  OUT EFI_PEI_FILE_HANDLE                  *FileHandle
  );

typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FV_GET_FILE_INFO) (
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI     *This,
  IN EFI_PEI_FILE_HANDLE                   FileHandle,
  OUT EFI_FV_FILE_INFO                     *FileInfo
  );

typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FV_GET_INFO)(
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI  *This,
  IN EFI_PEI_FV_HANDLE                  FvHandle,
  OUT EFI_FV_INFO                       *VolumeInfo
  );

typedef
EFI_STATUS
(EFIAPI *EFI_PEI_FV_FIND_SECTION) (
  IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI   *This,
  IN EFI_SECTION_TYPE                    SearchType,
  IN EFI_PEI_FILE_HANDLE                 FileHandle,
  OUT VOID                               **SectionData
  );

typedef struct _EFI_PEI_FIRMWARE_VOLUME_PPI {
  EFI_PEI_FV_PROCESS_FV             ProcessVolume;
  EFI_PEI_FV_FIND_FILE_TYPE         FindFileByType;   
  EFI_PEI_FV_FIND_FILE_NAME         FindFileByName;     
  EFI_PEI_FV_GET_FILE_INFO          GetFileInfo;      
  EFI_PEI_FV_GET_INFO               GetVolumeInfo;
  EFI_PEI_FV_FIND_SECTION           FindSectionByType;
} EFI_PEI_FIRMWARE_VOLUME_PPI;

#endif


#endif