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