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