]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h
License header updated to match correct format.
[mirror_edk2.git] / BaseTools / Source / C / Common / FirmwareVolumeBufferLib.h
1 /** @file
2 EFI Firmware Volume routines which work on a Fv image in buffers.
3
4 Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef FirmwareVolumeBuffer_h_INCLUDED
16 #define FirmwareVolumeBuffer_h_INCLUDED
17
18 #include "Common/UefiBaseTypes.h"
19 #include "Common/PiFirmwareFile.h"
20 #include "Common/PiFirmwareVolume.h"
21
22 EFI_STATUS
23 FvBufAddFile (
24 IN OUT VOID *Fv,
25 IN VOID *File
26 );
27
28 EFI_STATUS
29 FvBufAddFileWithExtend (
30 IN OUT VOID **Fv,
31 IN VOID *File
32 );
33
34 EFI_STATUS
35 FvBufAddVtfFile (
36 IN OUT VOID *Fv,
37 IN VOID *File
38 );
39
40 EFI_STATUS
41 FvBufChecksumFile (
42 IN OUT VOID *FfsFile
43 );
44
45 EFI_STATUS
46 FvBufChecksumHeader (
47 IN OUT VOID *Fv
48 );
49
50 EFI_STATUS
51 FvBufClearAllFiles (
52 IN OUT VOID *Fv
53 );
54
55 VOID
56 FvBufCompact3ByteSize (
57 OUT VOID* SizeDest,
58 IN UINT32 Size
59 );
60
61 EFI_STATUS
62 FvBufCountSections (
63 IN VOID* FfsFile,
64 IN UINTN* Count
65 );
66
67 EFI_STATUS
68 FvBufDuplicate (
69 IN VOID *SourceFv,
70 IN OUT VOID **DestinationFv
71 );
72
73 UINT32
74 FvBufExpand3ByteSize (
75 IN VOID* Size
76 );
77
78 UINT32
79 FvBufGetFfsFileSize (
80 IN EFI_FFS_FILE_HEADER *Ffs
81 );
82
83 UINT32
84 FvBufGetFfsHeaderSize (
85 IN EFI_FFS_FILE_HEADER *Ffs
86 );
87
88 EFI_STATUS
89 FvBufExtend (
90 IN VOID **Fv,
91 IN UINTN Size
92 );
93
94 EFI_STATUS
95 FvBufFindFileByName (
96 IN VOID *Fv,
97 IN EFI_GUID *Name,
98 OUT VOID **File
99 );
100
101 EFI_STATUS
102 FvBufFindFileByType (
103 IN VOID *Fv,
104 IN EFI_FV_FILETYPE Type,
105 OUT VOID **File
106 );
107
108 EFI_STATUS
109 FvBufFindNextFile (
110 IN VOID *Fv,
111 IN OUT UINTN *Key,
112 OUT VOID **File
113 );
114
115 EFI_STATUS
116 FvBufFindNextSection (
117 IN VOID *SectionsStart,
118 IN UINTN TotalSectionsSize,
119 IN OUT UINTN *Key,
120 OUT VOID **Section
121 );
122
123 EFI_STATUS
124 FvBufFindSectionByType (
125 IN VOID *FfsFile,
126 IN UINT8 Type,
127 OUT VOID **Section
128 );
129
130 EFI_STATUS
131 FvBufGetFileRawData (
132 IN VOID* FfsFile,
133 OUT VOID** RawData,
134 OUT UINTN* RawDataSize
135 );
136
137 EFI_STATUS
138 FvBufGetSize (
139 IN VOID *Fv,
140 OUT UINTN *Size
141 );
142
143 EFI_STATUS
144 FvBufPackageFreeformRawFile (
145 IN EFI_GUID* Filename,
146 IN VOID* RawData,
147 IN UINTN RawDataSize,
148 OUT VOID** FfsFile
149 );
150
151 EFI_STATUS
152 FvBufRemoveFile (
153 IN OUT VOID *Fv,
154 IN EFI_GUID *Name
155 );
156
157 EFI_STATUS
158 FvBufUnifyBlockSizes (
159 IN OUT VOID *Fv,
160 IN UINTN BlockSize
161 );
162
163 EFI_STATUS
164 FvBufShrinkWrap (
165 IN VOID *Fv
166 );
167
168 #endif // #ifndef FirmwareVolumeBuffer_h_INCLUDED
169