FirmwareVolumeBufferLib.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /** @file
  2. EFI Firmware Volume routines which work on a Fv image in buffers.
  3. Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef FirmwareVolumeBuffer_h_INCLUDED
  7. #define FirmwareVolumeBuffer_h_INCLUDED
  8. #include "Common/UefiBaseTypes.h"
  9. #include "Common/PiFirmwareFile.h"
  10. #include "Common/PiFirmwareVolume.h"
  11. EFI_STATUS
  12. FvBufAddFile (
  13. IN OUT VOID *Fv,
  14. IN VOID *File
  15. );
  16. EFI_STATUS
  17. FvBufAddFileWithExtend (
  18. IN OUT VOID **Fv,
  19. IN VOID *File
  20. );
  21. EFI_STATUS
  22. FvBufAddVtfFile (
  23. IN OUT VOID *Fv,
  24. IN VOID *File
  25. );
  26. EFI_STATUS
  27. FvBufChecksumFile (
  28. IN OUT VOID *FfsFile
  29. );
  30. EFI_STATUS
  31. FvBufChecksumHeader (
  32. IN OUT VOID *Fv
  33. );
  34. EFI_STATUS
  35. FvBufClearAllFiles (
  36. IN OUT VOID *Fv
  37. );
  38. VOID
  39. FvBufCompact3ByteSize (
  40. OUT VOID* SizeDest,
  41. IN UINT32 Size
  42. );
  43. EFI_STATUS
  44. FvBufCountSections (
  45. IN VOID* FfsFile,
  46. IN UINTN* Count
  47. );
  48. EFI_STATUS
  49. FvBufDuplicate (
  50. IN VOID *SourceFv,
  51. IN OUT VOID **DestinationFv
  52. );
  53. UINT32
  54. FvBufExpand3ByteSize (
  55. IN VOID* Size
  56. );
  57. UINT32
  58. FvBufGetFfsFileSize (
  59. IN EFI_FFS_FILE_HEADER *Ffs
  60. );
  61. UINT32
  62. FvBufGetFfsHeaderSize (
  63. IN EFI_FFS_FILE_HEADER *Ffs
  64. );
  65. EFI_STATUS
  66. FvBufExtend (
  67. IN VOID **Fv,
  68. IN UINTN Size
  69. );
  70. EFI_STATUS
  71. FvBufFindFileByName (
  72. IN VOID *Fv,
  73. IN EFI_GUID *Name,
  74. OUT VOID **File
  75. );
  76. EFI_STATUS
  77. FvBufFindFileByType (
  78. IN VOID *Fv,
  79. IN EFI_FV_FILETYPE Type,
  80. OUT VOID **File
  81. );
  82. EFI_STATUS
  83. FvBufFindNextFile (
  84. IN VOID *Fv,
  85. IN OUT UINTN *Key,
  86. OUT VOID **File
  87. );
  88. EFI_STATUS
  89. FvBufFindNextSection (
  90. IN VOID *SectionsStart,
  91. IN UINTN TotalSectionsSize,
  92. IN OUT UINTN *Key,
  93. OUT VOID **Section
  94. );
  95. EFI_STATUS
  96. FvBufFindSectionByType (
  97. IN VOID *FfsFile,
  98. IN UINT8 Type,
  99. OUT VOID **Section
  100. );
  101. EFI_STATUS
  102. FvBufGetFileRawData (
  103. IN VOID* FfsFile,
  104. OUT VOID** RawData,
  105. OUT UINTN* RawDataSize
  106. );
  107. EFI_STATUS
  108. FvBufGetSize (
  109. IN VOID *Fv,
  110. OUT UINTN *Size
  111. );
  112. EFI_STATUS
  113. FvBufPackageFreeformRawFile (
  114. IN EFI_GUID* Filename,
  115. IN VOID* RawData,
  116. IN UINTN RawDataSize,
  117. OUT VOID** FfsFile
  118. );
  119. EFI_STATUS
  120. FvBufRemoveFile (
  121. IN OUT VOID *Fv,
  122. IN EFI_GUID *Name
  123. );
  124. EFI_STATUS
  125. FvBufUnifyBlockSizes (
  126. IN OUT VOID *Fv,
  127. IN UINTN BlockSize
  128. );
  129. EFI_STATUS
  130. FvBufShrinkWrap (
  131. IN VOID *Fv
  132. );
  133. #endif // #ifndef FirmwareVolumeBuffer_h_INCLUDED