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 170