]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c
Update to fix minor coding style issues.
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / FwVol / FwVolRead.c
index 59df02e11d1cb33506908c0331184e2025c7fd73..81e3ad349e9dd038246848a08745adfec565e5fd 100644 (file)
@@ -1,23 +1,16 @@
-/*++\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
+/** @file\r
+  Implements functions to read firmware file\r
 \r
-  FwVolRead.c\r
+Copyright (c) 2006 - 2008, Intel Corporation. <BR>\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
-Abstract:\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
-  Implements read firmware file\r
-\r
---*/\r
+**/\r
 \r
 #include <DxeMain.h>\r
 \r
@@ -42,23 +35,19 @@ Required Alignment    Alignment Value in FFS       Alignment Value in
 UINT8 mFvAttributes[] = {0, 4, 7, 9, 10, 12, 15, 16}; \r
 \r
 \r
-STATIC\r
+\r
+/**\r
+  Convert the FFS File Attributes to FV File Attributes\r
+\r
+  @param  FfsAttributes              The attributes of UINT8 type. \r
+\r
+  @return The attributes of EFI_FV_FILE_ATTRIBUTES\r
+\r
+**/\r
 EFI_FV_FILE_ATTRIBUTES\r
 FfsAttributes2FvFileAttributes (\r
   IN EFI_FFS_FILE_ATTRIBUTES FfsAttributes\r
   )\r
-/*++\r
-\r
-  Routine Description:\r
-    Convert the FFS File Attributes to FV File Attributes\r
-    \r
-  Arguments:\r
-    FfsAttributes   -   The attributes of UINT8 type.\r
-    \r
-  Returns:\r
-    The attributes of EFI_FV_FILE_ATTRIBUTES\r
-    \r
---*/\r
 {\r
   FfsAttributes = (EFI_FFS_FILE_ATTRIBUTES)((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT) >> 3);\r
   ASSERT (FfsAttributes < 8);\r
@@ -67,6 +56,53 @@ FfsAttributes2FvFileAttributes (
 }\r
 \r
 \r
+\r
+/**\r
+  Given the input key, search for the next matching file in the volume.\r
+\r
+  @param  This                       Indicates the calling context. \r
+  @param  Key                        Key is a pointer to a caller allocated \r
+                                     buffer that contains implementation specific \r
+                                     data that is used to track where to begin \r
+                                     the search for the next file. The size of \r
+                                     the buffer must be at least This->KeySize \r
+                                     bytes long. To reinitialize the search and \r
+                                     begin from the beginning of the firmware \r
+                                     volume, the entire buffer must be cleared to \r
+                                     zero. Other than clearing the buffer to \r
+                                     initiate a new search, the caller must not \r
+                                     modify the data in the buffer between calls \r
+                                     to GetNextFile(). \r
+  @param  FileType                   FileType is a pointer to a caller allocated \r
+                                     EFI_FV_FILETYPE. The GetNextFile() API can \r
+                                     filter it's search for files based on the \r
+                                     value of *FileType input. A *FileType input \r
+                                     of 0 causes GetNextFile() to search for \r
+                                     files of all types.  If a file is found, the \r
+                                     file's type is returned in *FileType.  \r
+                                     *FileType is not modified if no file is \r
+                                     found. \r
+  @param  NameGuid                   NameGuid is a pointer to a caller allocated \r
+                                     EFI_GUID. If a file is found, the file's \r
+                                     name is returned in *NameGuid.  *NameGuid is \r
+                                     not modified if no file is found. \r
+  @param  Attributes                 Attributes is a pointer to a caller \r
+                                     allocated EFI_FV_FILE_ATTRIBUTES.  If a file \r
+                                     is found, the file's attributes are returned \r
+                                     in *Attributes. *Attributes is not modified \r
+                                     if no file is found. \r
+  @param  Size                       Size is a pointer to a caller allocated \r
+                                     UINTN. If a file is found, the file's size \r
+                                     is returned in *Size. *Size is not modified \r
+                                     if no file is found. \r
+\r
+  @retval EFI_SUCCESS                Successfully find the file. \r
+  @retval EFI_DEVICE_ERROR           Device error. \r
+  @retval EFI_ACCESS_DENIED          Fv could not read. \r
+  @retval EFI_NOT_FOUND              No matching file found. \r
+  @retval EFI_INVALID_PARAMETER      Invalid parameter\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 FvGetNextFile (\r
@@ -75,51 +111,8 @@ FvGetNextFile (
   IN OUT     EFI_FV_FILETYPE               *FileType,\r
   OUT        EFI_GUID                      *NameGuid,\r
   OUT        EFI_FV_FILE_ATTRIBUTES        *Attributes,\r
-  OUT        UINTN                          *Size\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
   EFI_STATUS                                  Status;\r
   FV_DEVICE                                   *FvDevice;\r
@@ -224,6 +217,47 @@ Returns:
 }\r
 \r
 \r
+\r
+/**\r
+  Locates a file in the firmware volume and\r
+  copies it to the supplied buffer.\r
+\r
+  @param  This                       Indicates the calling context. \r
+  @param  NameGuid                   Pointer to an EFI_GUID, which is the \r
+                                     filename. \r
+  @param  Buffer                     Buffer is a pointer to pointer to a buffer \r
+                                     in which the file or section contents or are \r
+                                     returned. \r
+  @param  BufferSize                 BufferSize is a pointer to caller allocated \r
+                                     UINTN. On input *BufferSize indicates the \r
+                                     size in bytes of the memory region pointed \r
+                                     to by Buffer. On output, *BufferSize \r
+                                     contains the number of bytes required to \r
+                                     read the file. \r
+  @param  FoundType                  FoundType is a pointer to a caller allocated \r
+                                     EFI_FV_FILETYPE that on successful return \r
+                                     from Read() contains the type of file read.  \r
+                                     This output reflects the file type \r
+                                     irrespective of the value of the SectionType \r
+                                     input. \r
+  @param  FileAttributes             FileAttributes is a pointer to a caller \r
+                                     allocated EFI_FV_FILE_ATTRIBUTES.  On \r
+                                     successful return from Read(), \r
+                                     *FileAttributes contains the attributes of \r
+                                     the file read. \r
+  @param  AuthenticationStatus       AuthenticationStatus is a pointer to a \r
+                                     caller allocated UINTN in which the \r
+                                     authentication status is returned. \r
+\r
+  @retval EFI_SUCCESS                Successfully read to memory buffer. \r
+  @retval EFI_WARN_BUFFER_TOO_SMALL  Buffer too small. \r
+  @retval EFI_NOT_FOUND              Not found. \r
+  @retval EFI_DEVICE_ERROR           Device error. \r
+  @retval EFI_ACCESS_DENIED          Could not read. \r
+  @retval EFI_INVALID_PARAMETER      Invalid parameter. \r
+  @retval EFI_OUT_OF_RESOURCES       Not enough buffer to be allocated.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 FvReadFile (\r
@@ -235,44 +269,6 @@ FvReadFile (
   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
   EFI_STATUS                        Status;\r
   FV_DEVICE                         *FvDevice;\r
@@ -367,6 +363,35 @@ Returns:
 }\r
 \r
 \r
+\r
+/**\r
+  Locates a section in a given FFS File and\r
+  copies it to the supplied buffer (not including section header).\r
+\r
+  @param  This                       Indicates the calling context. \r
+  @param  NameGuid                   Pointer to an EFI_GUID, which is the \r
+                                     filename. \r
+  @param  SectionType                Indicates the section type to return. \r
+  @param  SectionInstance            Indicates which instance of sections with a \r
+                                     type of SectionType to return. \r
+  @param  Buffer                     Buffer is a pointer to pointer to a buffer \r
+                                     in which the file or section contents or are \r
+                                     returned. \r
+  @param  BufferSize                 BufferSize is a pointer to caller allocated \r
+                                     UINTN.\r
+  @param  AuthenticationStatus       AuthenticationStatus is a pointer to a \r
+                                     caller allocated UINT32 in which the \r
+                                     authentication status is returned. \r
+\r
+  @retval EFI_SUCCESS                Successfully read the file section into \r
+                                     buffer. \r
+  @retval EFI_WARN_BUFFER_TOO_SMALL  Buffer too small. \r
+  @retval EFI_NOT_FOUND              Section not found. \r
+  @retval EFI_DEVICE_ERROR           Device error. \r
+  @retval EFI_ACCESS_DENIED          Could not read. \r
+  @retval EFI_INVALID_PARAMETER      Invalid parameter.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 FvReadFileSection (\r
@@ -378,34 +403,6 @@ FvReadFileSection (
   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
   EFI_STATUS                        Status;\r
   FV_DEVICE                         *FvDevice;\r
@@ -413,7 +410,6 @@ FvReadFileSection (
   EFI_FV_FILE_ATTRIBUTES            FileAttributes;\r
   UINTN                             FileSize;\r
   UINT8                             *FileBuffer;\r
-  EFI_SECTION_EXTRACTION_PROTOCOL   *Sep;\r
   FFS_FILE_LIST_ENTRY               *FfsEntry;\r
  \r
   if (NULL == NameGuid || Buffer == NULL) {\r
@@ -456,17 +452,7 @@ FvReadFileSection (
   // Use FfsEntry to cache Section Extraction Protocol Inforomation\r
   //\r
   if (FfsEntry->StreamHandle == 0) {\r
-    //\r
-    // Located the protocol\r
-    //\r
-    Status = CoreLocateProtocol (&gEfiSectionExtractionProtocolGuid, NULL, (VOID **)&Sep);\r
-    //\r
-    // Section Extraction Protocol is part of Dxe Core so this should never fail\r
-    //\r
-    ASSERT_EFI_ERROR (Status);\r
-\r
-    Status = Sep->OpenSectionStream (\r
-                    Sep,\r
+    Status = OpenSectionStream (\r
                     FileSize,\r
                     FileBuffer,\r
                     &FfsEntry->StreamHandle\r
@@ -474,28 +460,20 @@ FvReadFileSection (
     if (EFI_ERROR (Status)) {\r
       goto Done;\r
     }\r
-\r
-    FfsEntry->Sep = Sep;\r
-  } else {\r
-    //\r
-    // Get cached copy of Sep\r
-    //\r
-    Sep = FfsEntry->Sep;\r
   }\r
 \r
   //\r
   // If SectionType == 0 We need the whole section stream\r
   //\r
-  Status = Sep->GetSection (\r
-                  Sep,\r
-                            FfsEntry->StreamHandle,\r
-                            (SectionType == 0) ? NULL : &SectionType,\r
-                            NULL,\r
-                            (SectionType == 0) ? 0 : SectionInstance,\r
-                            Buffer,\r
-                            BufferSize,\r
-                            AuthenticationStatus\r
-                            );\r
+  Status = GetSection (\r
+             FfsEntry->StreamHandle,\r
+             (SectionType == 0) ? NULL : &SectionType,\r
+             NULL,\r
+             (SectionType == 0) ? 0 : SectionInstance,\r
+             Buffer,\r
+             BufferSize,\r
+             AuthenticationStatus\r
+             );\r
 \r
   //\r
   // Close of stream defered to close of FfsHeader list to allow SEP to cache data\r
@@ -507,3 +485,4 @@ Done:
   return Status;\r
 }\r
 \r
+\r