]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/Dxe/FwVolDriver.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Core / Dxe / FwVolDriver.h
diff --git a/EdkModulePkg/Core/Dxe/FwVolDriver.h b/EdkModulePkg/Core/Dxe/FwVolDriver.h
deleted file mode 100644 (file)
index fb4e0d5..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-Module Name:\r
-\r
-  FwVolDriver.h\r
-\r
-Abstract:\r
-\r
-  Firmware File System protocol. Layers on top of Firmware\r
-  Block protocol to produce a file abstraction of FV based files.\r
-\r
---*/\r
-\r
-#ifndef __FWVOL_H\r
-#define __FWVOL_H\r
-\r
-\r
-//\r
-// Used to track all non-deleted files\r
-//\r
-typedef struct {\r
-  LIST_ENTRY                      Link;\r
-  EFI_FFS_FILE_HEADER             *FfsHeader;\r
-  UINTN                           StreamHandle;\r
-  EFI_SECTION_EXTRACTION_PROTOCOL *Sep;\r
-} FFS_FILE_LIST_ENTRY;\r
-\r
-typedef struct {\r
-  UINTN                                   Signature;\r
-  EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL      *Fvb;\r
-  EFI_HANDLE                              Handle;\r
-  EFI_FIRMWARE_VOLUME_PROTOCOL            Fv;\r
-\r
-  EFI_FIRMWARE_VOLUME_HEADER              *FwVolHeader;\r
-  UINT8                                   *CachedFv;\r
-  UINT8                                   *EndOfCachedFv;\r
-\r
-  FFS_FILE_LIST_ENTRY                     *LastKey;\r
-\r
-  LIST_ENTRY                              FfsFileListHeader;\r
-\r
-  UINT8                                   ErasePolarity;\r
-} FV_DEVICE;\r
-\r
-#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV_DEVICE_SIGNATURE)\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvGetVolumeAttributes (\r
-  IN    EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  OUT   EFI_FV_ATTRIBUTES              *Attributes\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-    Retrieves attributes, insures positive polarity of attribute bits, returns\r
-    resulting attributes in output parameter\r
-\r
-Arguments:\r
-    This        - Calling context\r
-    Attributes  - output buffer which contains attributes\r
-\r
-Returns:\r
-    EFI_SUCCESS         - Successfully got volume attributes\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvSetVolumeAttributes (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN OUT EFI_FV_ATTRIBUTES              *Attributes\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-    Sets current attributes for volume\r
-\r
-Arguments:\r
-    This       - Calling context\r
-    Attributes - At input, contains attributes to be set.  At output contains\r
-      new value of FV\r
-\r
-Returns:\r
-    EFI_UNSUPPORTED   - Could not be set.\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvGetNextFile (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN OUT VOID                           *Key,\r
-  IN OUT EFI_FV_FILETYPE                *FileType,\r
-  OUT    EFI_GUID                       *NameGuid,\r
-  OUT    EFI_FV_FILE_ATTRIBUTES         *Attributes,\r
-  OUT    UINTN                          *Size\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-    Given the input key, search for the next matching file in the volume.\r
-\r
-Arguments:\r
-    This          -   Indicates the calling context.\r
-    FileType      -   FileType is a pointer to a caller allocated\r
-                      EFI_FV_FILETYPE. The GetNextFile() API can filter it's\r
-                      search for files based on the value of *FileType input.\r
-                      A *FileType input of 0 causes GetNextFile() to search for\r
-                      files of all types.  If a file is found, the file's type\r
-                      is returned in *FileType.  *FileType is not modified if\r
-                      no file is found.\r
-    Key           -   Key is a pointer to a caller allocated buffer that\r
-                      contains implementation specific data that is used to\r
-                      track where to begin the search for the next file.\r
-                      The size of the buffer must be at least This->KeySize\r
-                      bytes long. To reinitialize the search and begin from\r
-                      the beginning of the firmware volume, the entire buffer\r
-                      must be cleared to zero. Other than clearing the buffer\r
-                      to initiate a new search, the caller must not modify the\r
-                      data in the buffer between calls to GetNextFile().\r
-    NameGuid      -   NameGuid is a pointer to a caller allocated EFI_GUID.\r
-                      If a file is found, the file's name is returned in\r
-                      *NameGuid.  *NameGuid is not modified if no file is\r
-                      found.\r
-    Attributes    -   Attributes is a pointer to a caller allocated\r
-                      EFI_FV_FILE_ATTRIBUTES.  If a file is found, the file's\r
-                      attributes are returned in *Attributes. *Attributes is\r
-                      not modified if no file is found.\r
-    Size          -   Size is a pointer to a caller allocated UINTN.\r
-                      If a file is found, the file's size is returned in *Size.\r
-                      *Size is not modified if no file is found.\r
-\r
-Returns:    \r
-    EFI_SUCCESS                 - Successfully find the file.\r
-    EFI_DEVICE_ERROR            - Device error.\r
-    EFI_ACCESS_DENIED           - Fv could not read.\r
-    EFI_NOT_FOUND               - No matching file found.\r
-    EFI_INVALID_PARAMETER       - Invalid parameter\r
-\r
---*/\r
-;\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvReadFile (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN     EFI_GUID                       *NameGuid,\r
-  IN OUT VOID                           **Buffer,\r
-  IN OUT UINTN                          *BufferSize,\r
-  OUT    EFI_FV_FILETYPE                *FoundType,\r
-  OUT    EFI_FV_FILE_ATTRIBUTES         *FileAttributes,\r
-  OUT    UINT32                         *AuthenticationStatus\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-    Locates a file in the firmware volume and\r
-    copies it to the supplied buffer.\r
-\r
-Arguments:\r
-    This              -   Indicates the calling context.\r
-    NameGuid          -   Pointer to an EFI_GUID, which is the filename.\r
-    Buffer            -   Buffer is a pointer to pointer to a buffer in\r
-                          which the file or section contents or are returned.\r
-    BufferSize        -   BufferSize is a pointer to caller allocated\r
-                          UINTN. On input *BufferSize indicates the size\r
-                          in bytes of the memory region pointed to by\r
-                          Buffer. On output, *BufferSize contains the number\r
-                          of bytes required to read the file.\r
-    FoundType         -   FoundType is a pointer to a caller allocated\r
-                          EFI_FV_FILETYPE that on successful return from Read()\r
-                          contains the type of file read.  This output reflects\r
-                          the file type irrespective of the value of the\r
-                          SectionType input.\r
-    FileAttributes    -   FileAttributes is a pointer to a caller allocated\r
-                          EFI_FV_FILE_ATTRIBUTES.  On successful return from\r
-                          Read(), *FileAttributes contains the attributes of\r
-                          the file read.\r
-    AuthenticationStatus -  AuthenticationStatus is a pointer to a caller\r
-                          allocated UINTN in which the authentication status\r
-                          is returned.\r
-Returns:\r
-    EFI_SUCCESS                   - Successfully read to memory buffer.\r
-    EFI_WARN_BUFFER_TOO_SMALL     - Buffer too small.\r
-    EFI_NOT_FOUND                 - Not found.\r
-    EFI_DEVICE_ERROR              - Device error.\r
-    EFI_ACCESS_DENIED             - Could not read.\r
-    EFI_INVALID_PARAMETER         - Invalid parameter.\r
-    EFI_OUT_OF_RESOURCES          - Not enough buffer to be allocated.\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvReadFileSection (\r
-  IN     EFI_FIRMWARE_VOLUME_PROTOCOL   *This,\r
-  IN     EFI_GUID                       *NameGuid,\r
-  IN     EFI_SECTION_TYPE               SectionType,\r
-  IN     UINTN                          SectionInstance,\r
-  IN OUT VOID                           **Buffer,\r
-  IN OUT UINTN                          *BufferSize,\r
-  OUT    UINT32                         *AuthenticationStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Locates a section in a given FFS File and\r
-    copies it to the supplied buffer (not including section header).\r
-\r
-  Arguments:\r
-    This              -   Indicates the calling context.\r
-    NameGuid          -   Pointer to an EFI_GUID, which is the filename.\r
-    SectionType       -   Indicates the section type to return.\r
-    SectionInstance   -   Indicates which instance of sections with a type of\r
-                          SectionType to return.\r
-    Buffer            -   Buffer is a pointer to pointer to a buffer in which\r
-                          the file or section contents or are returned.\r
-    BufferSize        -   BufferSize is a pointer to caller allocated UINTN.\r
-    AuthenticationStatus -AuthenticationStatus is a pointer to a caller\r
-                          allocated UINT32 in which the authentication status\r
-                          is returned.\r
-\r
-  Returns:\r
-    EFI_SUCCESS                     - Successfully read the file section into buffer.\r
-    EFI_WARN_BUFFER_TOO_SMALL       - Buffer too small.\r
-    EFI_NOT_FOUND                   - Section not found.\r
-    EFI_DEVICE_ERROR                - Device error.\r
-    EFI_ACCESS_DENIED               - Could not read.\r
-    EFI_INVALID_PARAMETER           - Invalid parameter.\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-FvWriteFile (\r
-  IN EFI_FIRMWARE_VOLUME_PROTOCOL       *This,\r
-  IN UINT32                             NumberOfFiles,\r
-  IN EFI_FV_WRITE_POLICY                WritePolicy,\r
-  IN EFI_FV_WRITE_FILE_DATA             *FileData\r
-  )\r
-/*++\r
-\r
-    Routine Description:\r
-      Writes one or more files to the firmware volume.\r
-\r
-    Arguments:\r
-    This        - Indicates the calling context.\r
-    WritePolicy - WritePolicy indicates the level of reliability for\r
-                  the write in the event of a power failure or other\r
-                  system failure during the write operation.\r
-    FileData    - FileData is an pointer to an array of EFI_FV_WRITE_DATA.\r
-                  Each element of FileData[] represents a file to be written.\r
-\r
-    Returns:\r
-      EFI_SUCCESS                   - Files successfully written to firmware volume\r
-      EFI_OUT_OF_RESOURCES          - Not enough buffer to be allocated.\r
-      EFI_DEVICE_ERROR              - Device error.\r
-      EFI_WRITE_PROTECTED           - Write protected.\r
-      EFI_NOT_FOUND                 - Not found.\r
-      EFI_INVALID_PARAMETER         - Invalid parameter.\r
-      EFI_UNSUPPORTED               - This function not supported.\r
-\r
---*/\r
-;\r
-\r
-\r
-  \r
-//\r
-//Internal functions\r
-//\r
-typedef enum {\r
-  EfiCheckSumUint8    = 0,\r
-  EfiCheckSumUint16   = 1,\r
-  EfiCheckSumUint32   = 2,\r
-  EfiCheckSumUint64   = 3,\r
-  EfiCheckSumMaximum  = 4\r
-} EFI_CHECKSUM_TYPE;\r
-\r
-\r
-BOOLEAN\r
-IsBufferErased (\r
-  IN UINT8    ErasePolarity,\r
-  IN VOID     *Buffer,\r
-  IN UINTN    BufferSize\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Check if a block of buffer is erased\r
-\r
-Arguments:\r
-  ErasePolarity -  Erase polarity attribute of the firmware volume\r
-  Buffer        -  The buffer to be checked\r
-  BufferSize    -  Size of the buffer in bytes\r
-    \r
-Returns:\r
-  TRUE  -  The block of buffer is erased\r
-  FALSE -  The block of buffer is not erased\r
-    \r
---*/\r
-;\r
-\r
-EFI_FFS_FILE_STATE \r
-GetFileState (\r
-  IN UINT8                ErasePolarity,\r
-  IN EFI_FFS_FILE_HEADER  *FfsHeader\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Get the FFS file state by checking the highest bit set in the header's state field\r
-\r
-Arguments:\r
-  ErasePolarity -  Erase polarity attribute of the firmware volume\r
-  FfsHeader     -  Points to the FFS file header\r
-    \r
-Returns:\r
-  FFS File state \r
-    \r
---*/\r
-;\r
-\r
-VOID\r
-SetFileState (\r
-  IN UINT8                State,\r
-  IN EFI_FFS_FILE_HEADER  *FfsHeader\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Set the FFS file state.\r
-\r
-Arguments:\r
-  State         -  The state to be set.\r
-  FfsHeader     -  Points to the FFS file header\r
-    \r
-Returns:\r
-  None.\r
-    \r
---*/\r
-;\r
-\r
-BOOLEAN\r
-VerifyFvHeaderChecksum (\r
-  IN EFI_FIRMWARE_VOLUME_HEADER *FvHeader\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Verify checksum of the firmware volume header \r
-\r
-Arguments:\r
-  FvHeader  -  Points to the firmware volume header to be checked\r
-    \r
-Returns:\r
-  TRUE  -  Checksum verification passed\r
-  FALSE -  Checksum verification failed\r
-    \r
---*/\r
-;\r
-    \r
-BOOLEAN\r
-IsValidFfsHeader (\r
-  IN  UINT8                ErasePolarity,\r
-  IN  EFI_FFS_FILE_HEADER  *FfsHeader,\r
-  OUT EFI_FFS_FILE_STATE   *FileState\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Check if it's a valid FFS file header\r
-\r
-Arguments:\r
-  ErasePolarity -  Erase polarity attribute of the firmware volume\r
-  FfsHeader     -  Points to the FFS file header to be checked\r
-  FileState     -  FFS file state to be returned\r
-    \r
-Returns:\r
-  TRUE  -  Valid FFS file header\r
-  FALSE -  Invalid FFS file header\r
-    \r
---*/\r
-;\r
-\r
-BOOLEAN\r
-IsValidFfsFile (\r
-  IN UINT8                ErasePolarity,\r
-  IN EFI_FFS_FILE_HEADER  *FfsHeader\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Check if it's a valid FFS file. \r
-  Here we are sure that it has a valid FFS file header since we must call IsValidFfsHeader() first.\r
-\r
-Arguments:\r
-  ErasePolarity -  Erase polarity attribute of the firmware volume\r
-  FfsHeader     -  Points to the FFS file to be checked\r
-    \r
-Returns:\r
-  TRUE  -  Valid FFS file\r
-  FALSE -  Invalid FFS file\r
-    \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-GetFwVolHeader (\r
-  IN  EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL      *Fvb,\r
-  OUT EFI_FIRMWARE_VOLUME_HEADER              **FwVolHeader\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  given the supplied FW_VOL_BLOCK_PROTOCOL, allocate a buffer for output and\r
-  copy the volume header into it.\r
-\r
-Arguments:\r
-  Fvb - The FW_VOL_BLOCK_PROTOCOL instance from which to read the volume\r
-          header\r
-  FwVolHeader - Pointer to pointer to allocated buffer in which the volume\r
-                  header is returned.\r
-\r
-Returns:\r
-  Status code.\r
-\r
---*/\r
-;\r
-\r
-\r
-EFI_STATUS\r
-FvCheck (\r
-  IN OUT FV_DEVICE  *FvDevice\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-  Check if a FV is consistent and allocate cache\r
-\r
-Arguments:\r
-  FvDevice - pointer to the FvDevice to be checked.\r
-\r
-Returns:\r
-  EFI_OUT_OF_RESOURCES    - Not enough buffer to be allocated.\r
-  EFI_SUCCESS             - FV is consistent and cache is allocated.\r
-  EFI_VOLUME_CORRUPTED    - File system is corrupted.\r
-\r
---*/\r
-;\r
-\r
-#endif\r