]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Common/FirmwareVolumeBufferLib.h
5a52695a7f94aee1f77d05607c73206c5b9de1d5
[mirror_edk2.git] / BaseTools / Source / C / Common / FirmwareVolumeBufferLib.h
1 /** @file
2
3 Copyright (c) 1999 - 2008, Intel Corporation
4 All rights reserved. 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 EFI_STATUS
86 FvBufExtend (
87 IN VOID **Fv,
88 IN UINTN Size
89 );
90
91 EFI_STATUS
92 FvBufFindFileByName (
93 IN VOID *Fv,
94 IN EFI_GUID *Name,
95 OUT VOID **File
96 );
97
98 EFI_STATUS
99 FvBufFindFileByType (
100 IN VOID *Fv,
101 IN EFI_FV_FILETYPE Type,
102 OUT VOID **File
103 );
104
105 EFI_STATUS
106 FvBufFindNextFile (
107 IN VOID *Fv,
108 IN OUT UINTN *Key,
109 OUT VOID **File
110 );
111
112 EFI_STATUS
113 FvBufFindNextSection (
114 IN VOID *SectionsStart,
115 IN UINTN TotalSectionsSize,
116 IN OUT UINTN *Key,
117 OUT VOID **Section
118 );
119
120 EFI_STATUS
121 FvBufFindSectionByType (
122 IN VOID *FfsFile,
123 IN UINT8 Type,
124 OUT VOID **Section
125 );
126
127 EFI_STATUS
128 FvBufGetFileRawData (
129 IN VOID* FfsFile,
130 OUT VOID** RawData,
131 OUT UINTN* RawDataSize
132 );
133
134 EFI_STATUS
135 FvBufGetSize (
136 IN VOID *Fv,
137 OUT UINTN *Size
138 );
139
140 EFI_STATUS
141 FvBufPackageFreeformRawFile (
142 IN EFI_GUID* Filename,
143 IN VOID* RawData,
144 IN UINTN RawDataSize,
145 OUT VOID** FfsFile
146 );
147
148 EFI_STATUS
149 FvBufRemoveFile (
150 IN OUT VOID *Fv,
151 IN EFI_GUID *Name
152 );
153
154 EFI_STATUS
155 FvBufUnifyBlockSizes (
156 IN OUT VOID *Fv,
157 IN UINTN BlockSize
158 );
159
160 EFI_STATUS
161 FvBufShrinkWrap (
162 IN VOID *Fv
163 );
164
165 #endif // #ifndef FirmwareVolumeBuffer_h_INCLUDED
166