]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Ppi / FirmwareVolume / FirmwareVolume.h
1 /*++
2
3 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 FirmwareVolume.h
15
16 Abstract:
17
18 PI 1.0 spec definition.
19
20 --*/
21
22 #ifndef __FIRMWARE_VOLUME_H__
23 #define __FIRMWARE_VOLUME_H__
24
25 EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_PPI);
26
27 //
28 // Statements that include other files
29 //
30 #include "EfiFirmwareVolumeHeader.h"
31 #include "EfiFirmwareFileSystem.h"
32 #include "EfiFirmwareVolume.h"
33
34 typedef VOID * EFI_PEI_FILE_HANDLE;
35 typedef VOID * EFI_PEI_FV_HANDLE;
36
37
38 typedef struct {
39 EFI_GUID FileName;
40 EFI_FV_FILETYPE FileType;
41 EFI_FV_FILE_ATTRIBUTES FileAttributes;
42 VOID *Buffer;
43 UINT32 BufferSize;
44 } EFI_FV_FILE_INFO;
45
46 typedef struct {
47 EFI_FVB_ATTRIBUTES FvAttributes;
48 EFI_GUID FvFormat;
49 EFI_GUID FvName;
50 VOID *FvStart;
51 UINT64 FvSize;
52 } EFI_FV_INFO;
53
54
55
56 typedef
57 EFI_STATUS
58 (EFIAPI *EFI_PEI_FV_PROCESS_FV) (
59 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
60 IN VOID *Buffer,
61 IN UINTN BufferSize,
62 OUT EFI_PEI_FV_HANDLE *FvHandle
63 );
64
65
66 typedef
67 EFI_STATUS
68 (EFIAPI *EFI_PEI_FV_FIND_FILE_TYPE) (
69 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
70 IN EFI_FV_FILETYPE SearchType,
71 IN EFI_PEI_FV_HANDLE FvHandle,
72 IN OUT EFI_PEI_FILE_HANDLE *FileHandle
73 );
74
75 typedef
76 EFI_STATUS
77 (EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) (
78 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
79 IN CONST EFI_GUID *FileName,
80 IN OUT EFI_PEI_FV_HANDLE *FvHandle,
81 OUT EFI_PEI_FILE_HANDLE *FileHandle
82 );
83
84 typedef
85 EFI_STATUS
86 (EFIAPI *EFI_PEI_FV_GET_FILE_INFO) (
87 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
88 IN EFI_PEI_FILE_HANDLE FileHandle,
89 OUT EFI_FV_FILE_INFO *FileInfo
90 );
91
92 typedef
93 EFI_STATUS
94 (EFIAPI *EFI_PEI_FV_GET_INFO)(
95 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
96 IN EFI_PEI_FV_HANDLE FvHandle,
97 OUT EFI_FV_INFO *VolumeInfo
98 );
99
100 typedef
101 EFI_STATUS
102 (EFIAPI *EFI_PEI_FV_FIND_SECTION) (
103 IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This,
104 IN EFI_SECTION_TYPE SearchType,
105 IN EFI_PEI_FILE_HANDLE FileHandle,
106 OUT VOID **SectionData
107 );
108
109 struct _EFI_PEI_FIRMWARE_VOLUME_PPI {
110 EFI_PEI_FV_PROCESS_FV ProcessVolume;
111 EFI_PEI_FV_FIND_FILE_TYPE FindFileByType;
112 EFI_PEI_FV_FIND_FILE_NAME FindFileByName;
113 EFI_PEI_FV_GET_FILE_INFO GetFileInfo;
114 EFI_PEI_FV_GET_INFO GetVolumeInfo;
115 EFI_PEI_FV_FIND_SECTION FindSectionByType;
116 };
117
118 #endif