]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h
49b380b96195eacceef924ea8213eba7dbd8638a
[mirror_edk2.git] / BaseTools / Source / C / Common / FirmwareVolumeBufferLib.h
1 /** @file
2
3 Copyright (c) 1999 - 2014, 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 FirmwareVolumeBufferLib.h
15
16 Abstract:
17
18 EFI Firmware Volume routines which work on a Fv image in buffers.
19
20 **/
21
22 #ifndef FirmwareVolumeBuffer_h_INCLUDED
23 #define FirmwareVolumeBuffer_h_INCLUDED
24
25 #include "Common/UefiBaseTypes.h"
26 #include "Common/PiFirmwareFile.h"
27 #include "Common/PiFirmwareVolume.h"
28
29 EFI_STATUS
30 FvBufAddFile (
31 IN OUT VOID *Fv,
32 IN VOID *File
33 );
34
35 EFI_STATUS
36 FvBufAddFileWithExtend (
37 IN OUT VOID **Fv,
38 IN VOID *File
39 );
40
41 EFI_STATUS
42 FvBufAddVtfFile (
43 IN OUT VOID *Fv,
44 IN VOID *File
45 );
46
47 EFI_STATUS
48 FvBufChecksumFile (
49 IN OUT VOID *FfsFile
50 );
51
52 EFI_STATUS
53 FvBufChecksumHeader (
54 IN OUT VOID *Fv
55 );
56
57 EFI_STATUS
58 FvBufClearAllFiles (
59 IN OUT VOID *Fv
60 );
61
62 VOID
63 FvBufCompact3ByteSize (
64 OUT VOID* SizeDest,
65 IN UINT32 Size
66 );
67
68 EFI_STATUS
69 FvBufCountSections (
70 IN VOID* FfsFile,
71 IN UINTN* Count
72 );
73
74 EFI_STATUS
75 FvBufDuplicate (
76 IN VOID *SourceFv,
77 IN OUT VOID **DestinationFv
78 );
79
80 UINT32
81 FvBufExpand3ByteSize (
82 IN VOID* Size
83 );
84
85 UINT32
86 FvBufGetFfsFileSize (
87 IN EFI_FFS_FILE_HEADER *Ffs
88 );
89
90 UINT32
91 FvBufGetFfsHeaderSize (
92 IN EFI_FFS_FILE_HEADER *Ffs
93 );
94
95 EFI_STATUS
96 FvBufExtend (
97 IN VOID **Fv,
98 IN UINTN Size
99 );
100
101 EFI_STATUS
102 FvBufFindFileByName (
103 IN VOID *Fv,
104 IN EFI_GUID *Name,
105 OUT VOID **File
106 );
107
108 EFI_STATUS
109 FvBufFindFileByType (
110 IN VOID *Fv,
111 IN EFI_FV_FILETYPE Type,
112 OUT VOID **File
113 );
114
115 EFI_STATUS
116 FvBufFindNextFile (
117 IN VOID *Fv,
118 IN OUT UINTN *Key,
119 OUT VOID **File
120 );
121
122 EFI_STATUS
123 FvBufFindNextSection (
124 IN VOID *SectionsStart,
125 IN UINTN TotalSectionsSize,
126 IN OUT UINTN *Key,
127 OUT VOID **Section
128 );
129
130 EFI_STATUS
131 FvBufFindSectionByType (
132 IN VOID *FfsFile,
133 IN UINT8 Type,
134 OUT VOID **Section
135 );
136
137 EFI_STATUS
138 FvBufGetFileRawData (
139 IN VOID* FfsFile,
140 OUT VOID** RawData,
141 OUT UINTN* RawDataSize
142 );
143
144 EFI_STATUS
145 FvBufGetSize (
146 IN VOID *Fv,
147 OUT UINTN *Size
148 );
149
150 EFI_STATUS
151 FvBufPackageFreeformRawFile (
152 IN EFI_GUID* Filename,
153 IN VOID* RawData,
154 IN UINTN RawDataSize,
155 OUT VOID** FfsFile
156 );
157
158 EFI_STATUS
159 FvBufRemoveFile (
160 IN OUT VOID *Fv,
161 IN EFI_GUID *Name
162 );
163
164 EFI_STATUS
165 FvBufUnifyBlockSizes (
166 IN OUT VOID *Fv,
167 IN UINTN BlockSize
168 );
169
170 EFI_STATUS
171 FvBufShrinkWrap (
172 IN VOID *Fv
173 );
174
175 #endif // #ifndef FirmwareVolumeBuffer_h_INCLUDED
176