Home | History | Annotate | Download | only in Common
      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